1. 程式人生 > >Jmeter(二十二) - 從入門到精通 - JMeter斷言 - 下篇(詳解教程)

Jmeter(二十二) - 從入門到精通 - JMeter斷言 - 下篇(詳解教程)

1.簡介

  斷言元件用來對伺服器的響應資料做驗證,常用的斷言是響應斷言,其支援正則表示式。雖然我們的通過響應斷言能夠完成絕大多數的結果驗證工作,但是JMeter還是為我們提供了適合多個場景的斷言元件,輔助我們來更好的完成結果驗證工作。在使用JMeter進行效能測試或者介面自動化測試工作中,經常會用到的一個功能,就是斷言,斷言相當於檢查點,它是用來判斷系統返回的響應結果是否正確,以此幫我們判斷測試是否通過。

2.預覽斷言

  首先我們來看一下JMeter的斷言,路徑:執行緒組(使用者)->新增->斷言;我們可以清楚地看到JMeter5中共有13個斷言(不包括jp@gc開頭的斷言,這個是巨集哥安裝的外掛),如下圖所示:

如果上圖您看得不是很清楚的話,巨集哥總結了一個思維導圖,關於JMeter5的斷言型別,如下圖所示: 

 

 

通過以上的瞭解,我們對斷言有了一個大致的瞭解和認識。下面巨集哥就給小夥伴或則童鞋們分享講解一些通常在工作中會用到的斷言。 

3.常用斷言詳解

這一小節,巨集哥就由上而下地詳細地講解一下常用的斷言。

3.1 HTML斷言

對響應類為XML型別的檔案進行斷言;

作用物件:針對sampler中的SOAP/XML-RPC Request而使用的斷言

1、我們先來看看這個 HTML斷言 長得是啥樣子,路徑:執行緒組 > 新增 > 斷言 > HTML斷言,如下圖所示: 

2、關鍵引數說明如下:

名稱:控制器的描述性名稱,顯示在左邊節點上,並用於命名事務 

註釋:控制器註釋資訊,非必填項 

Tidy Settings:Tidy 環境(Tidy是一個HTML語法檢查器和列印工具,可以將HTML轉換為XML型別的檔案)

Doctype:文件型別(可通過下拉框選擇不同文件型別→ omit疏忽遺漏的/auto動態的/strict嚴格的/loose)

Format:檔案格式(可選擇HTML/XHTML/XML三種不同型別的檔案格式來檢查返回內容)

Errors only:誤差校正(能接受的最大值)

Error threshold:誤差/錯誤範圍(可選擇誤差/錯誤數量的範圍,最大值)

Warning threshold:警告範圍(可選擇誤差警告的數量範圍,最大值)

如果勾選“Error only”這裡忽略Warning,只對誤差作統計檢查;如果對返回內容的檢查結果不超過指定結果,則斷言通過,否則失敗。

Write JTidy report to file:寫入JTidy報告的檔案(JTidy是Tidy的一個java移植,可以將它當成一個處理HTML檔案的DOM解析器)

3.2MD5 Hex斷言

MD5是一種訊息摘要演算法,用以提供訊息的完整性保護,對返回的MD5結果進行斷言,使用簡單,直接跳入MD5值。執行伺服器響應的MD5雜湊並將其與給定的Md5雜湊進行比較。它非常適合您要檢查下載檔案是否完整的情況。

作用物件:針對引數型別為MD5Hex加密的引數的斷言

1、我們先來看看這個 MD5 Hex斷言 長得是啥樣子,路徑:執行緒組 > 新增 > 斷言 > MD5 Hex斷言,如下圖所示: 

2、關鍵引數說明如下:

名稱:控制器的描述性名稱,顯示在左邊節點上,並用於命名事務 

註釋:控制器註釋資訊,非必填項 

MD5Hex:將已被MD5加密的引數寫入其中,新增取樣器等其他元件

3.3 SMIME斷言

SMIME是一種多用途網際郵件擴充協議,相比於之前的SMAP郵件傳輸協議,增加了安全性,對郵件主題進行保護;

作用物件:針對採用了該種郵件傳輸協議的資訊

1、我們先來看看這個 SMIME斷言長得是啥樣子,路徑:執行緒組 > 新增 > 斷言 > SMIME斷言,如下圖所示: 

2、關鍵引數說明如下:

名稱:控制器的描述性名稱,顯示在左邊節點上,並用於命名事務 

註釋:控制器註釋資訊,非必填項 

signature:簽名(可選擇對協議的簽名驗證狀態)

          Verify signature:驗證簽名

          Message not signed:沒有簽名訊息

Signer certificate:簽名證書(因為SMIME協議增加了安全傳輸,需要證書驗證)

          No check:不檢查

          Check values:檢查

Signer distinguished name:簽名證書者名稱(證書註冊者的名稱)

Sigmer email address:簽名者的郵件地址(註冊的郵件地址)

Issuer distinguished name:發行者名稱(由誰發行的證書)

Serial Number:證書序號

Certificate file:選擇證書檔案

Execute assertion message at position:執行斷言訊息的位置(在返回訊息的具體哪個位置執行斷言)

3.4XML斷言

XML(可擴充套件標記語言) 提供一種描述結構化資料的方法。與主要用於控制資料的顯示和外觀的 HTML 標記不同,XML 標記用於定義資料本身的結構和資料型別;

作用物件:判斷返回結果是否和xml的格式即<></>成對出現

1、我們先來看看這個 XML斷言長得是啥樣子,路徑:執行緒組 > 新增 > 斷言 > XML斷言,如下圖所示: 

2、關鍵引數說明如下:

名稱:控制器的描述性名稱,顯示在左邊節點上,並用於命名事務 

註釋:控制器註釋資訊,非必填項 

3.5 XML Schema斷言

亦可以稱為XML模型斷言/XML資料型別斷言;XML Schema 定義了兩種主要的資料型別:①xml document schema 文件架構 ;② 文件架構xml-schema xml模式

作用物件:返回結果為XML概要斷言的2中資料型別的訊息

1、我們先來看看這個 XML Schema斷言 長得是啥樣子,路徑:執行緒組 > 新增 > 斷言 > XML Schema斷言,如下圖所示: 

2、關鍵引數說明如下:

名稱:控制器的描述性名稱,顯示在左邊節點上,並用於命名事務 

註釋:控制器註釋資訊,非必填項 

檔名:載入檔名 ,(寫入需要斷言的檔名稱)

3.6 Bean Shell斷言

BeanShell是一種鬆散型別的指令碼語言(這點和JS類似),一種完全符合java語法的java指令碼語言,並且又擁有自己的一些語法和方法;

BeanShell斷言支援各種開發語言,本文介紹使用java編寫斷言,使用BeanShell斷言的好處是可以自由發揮,比如當斷言失敗,提示預期結果、實際結果,或者失敗時把結果輸出到日誌。

作用物件:針對sampler中的Bean Shell sampler而使用的斷言

1、我們先來看看這個 BeanShell斷言 長得是啥樣子,路徑:執行緒組 > 新增 > 斷言 > BeanShell斷言,如下圖所示: 

2、關鍵引數說明如下:

名稱:控制器的描述性名稱,顯示在左邊節點上,並用於命名事務 

註釋:控制器註釋資訊,非必填項 

Reset bsh.interpreter before each call:在每次呼叫Bean Shell之前重置bsh.interpreter類(bsh.interpreter是Bean Shell指令碼語言的一種類,也可以理解為一種解析器)

Parameters(String Parameters and String []bsh.args):String引數(String []bsh.args是主類main函式的形式引數,是一個String 物件陣列,可以用來獲取命令列使用者輸入進去的引數)

Script file:指令碼檔案(可以填入指令碼檔案路徑)

Script(see below for variables that are defined):參照下文定義的變數(使指令碼檔案參照定義的變數來執行)

4.小結

   好了,今天到這裡JMeter5的所有斷言基礎就介紹和分享完了,感謝您耐心的閱讀和一路支援巨集哥!!!

 

的肯定就是我進步的動力。如果你感覺還不錯,就請鼓勵一下吧!記得隨手點波  推薦  不要忘記哦!!!

別忘了點 推薦 留下您來過的痕跡

 

相關推薦

Jmeter() - 入門精通 - JMeter斷言 - 下篇教程

1.簡介   斷言元件用來對伺服器的響應資料做驗證,常用的斷言是響應斷言,其支援正則表示式。雖然我們的通過響應斷言能夠完成絕大多數的結果驗證工作,但是JMeter還是為我們提供了適合多個場景的斷言元件,輔助我們來更好的完成結果驗證工作。在使用JMeter進行效能測試或者介面自動化測試工作中,經常會用到的一個功

Jmeter() - 入門精通 - JMeter監聽器 -下篇教程

1.簡介   監聽器用來監聽及顯示JMeter取樣器測試結果,能夠以樹、表及圖形形式顯示測試結果,也可以以檔案方式儲存測試結果,JMeter測試結果檔案格式多樣,比如XML格式、CSV格式。預設情況下,測試結果將被儲存為xml格式的檔案,檔案的字尾: ".jtl"。另外一種儲存格式為CSV檔案,該格式的好處就

Jmeter(一) - 入門精通 - JMeter邏輯控制器 - 下篇教程

1.簡介 Jmeter官網對邏輯控制器的解釋是:“Logic Controllers determine the order in which Samplers are processed.”。 意思是說,邏輯控制器可以控制取樣器(samplers)的執行順序。由此可知,控制器需要和取

Jmeter(四) - 入門精通 - JMeter定時器 - 下篇教程

1.簡介   使用者實際操作時,並非是連續點選,而是存在很多停頓的情況,例如:使用者需要時間閱讀文字內容、填表、或者查詢正確的連結等。為了模擬使用者實際情況,在效能測試中我們需要考慮思考時間。若不認真考慮思考時間很可能會導致測試結果的失真。例如,估計的可支撐使用者數偏小。在效能測試中,訪問請求之間的停頓時間被

Jmeter(八) - 入門精通 - JMeter後置處理器 -下篇教程

1.簡介   後置處理器是在發出“取樣器請求”之後執行一些操作。取樣器用來模擬使用者請求,有時候伺服器的響應資料在後續請求中需要用到,我們的勢必要對這些響應資料進行處理,後置處理器就是來完成這項工作的。例如系統登入成功以後我們需要獲取SessionId,在後面的業務操作中伺服器會驗證這

Jmeter() - 入門精通 - JMeter邏輯控制器 - 終篇教程

1.簡介 Jmeter官網對邏輯控制器的解釋是:“Logic Controllers determine the order in which Samplers are processed.”。 意思是說,邏輯控制器可以控制取樣器(samplers)的執行順序。由此可知,控制器需要和取

Jmeter(一) - 入門精通 - JMeter斷言 - 上篇教程

1.簡介   最近由於巨集哥在搭建自己的個人部落格可能更新的有點慢。斷言元件用來對伺服器的響應資料做驗證,常用的斷言是響應斷言,其支援正則表示式。雖然我們的通過響應斷言能夠完成絕大多數的結果驗證工作,但是JMeter還是為我們提供了適合多個場景的斷言元件,輔助我們來更好的完成結果驗證工作。在使用JMeter進

Jmeter(四) - 入門精通 - JMeter函式 - 中篇教程

1.簡介   在效能測試中為了真實模擬使用者請求,往往我們需要讓提交的表單內容每次都發生變化,這個過程叫做引數化。JMeter配置元件與前置處理器都能幫助我們進行引數化,但是都有侷限性,為了幫助我們能夠更好地進行引數化,JMeter提供了一組函式來幫助我們引數化生成需要的資料,這些函式可以函式助手面板來進行編

Jmeter(八) - 入門精通 - Jmeter Http協議錄製指令碼工具-Badboy1教程

1.簡介    在使用jmeter自動錄製指令碼時會產生很多無用的請求,所以推薦使用badboy錄製指令碼之後儲存為jmx檔案,在jmeter中開啟使用。因此巨集哥在這裡介紹一下Badboy這款工具,本來打算不做介紹了,原因是因為這款工具已經不在維護和更新了,但是考慮到有些童鞋們不能手擼測試指令碼,

Jmeter(九) - 入門精通 - Jmeter Http協議錄製指令碼工具-Badboy2教程

1.簡介   上一篇文中已經對Badboy做了一個基本上詳細完整的介紹,這一篇巨集哥帶你們實戰一下,這一篇主要講解和分享:錄製和執行指令碼、引數化 首先讓我們使用N模式錄製一個指令碼,測試用例編號為:1.1.1 成功的釋出僅有文字主題。  2錄製指令碼 1. 建立名為1 Log in的Suite,

Jmeter() - 入門精通 - JMeter邏輯控制器 - 中篇教程

1.簡介 Jmeter官網對邏輯控制器的解釋是:“Logic Controllers determine the order in which Samplers are processed.”。 意思是說,邏輯控制器可以控制取樣器(samplers)的執行順序。由此可知,控制器需要和取

Jmeter(五) - 入門精通 - JMeter匯入自定義的Jar包教程

1.簡介   原計劃這一篇是介紹前置處理器的基礎知識的,結果由於許多小夥伴或者童鞋們在微信和部落格園的短訊息中留言問如何引入自己定義的Jar包呢???我一一回復告訴他們和引入外掛的Jar包一樣的道理,一通百通。但是感覺他們還是很迷糊很迷惘,因此在這裡穿插一篇匯入自定義的Jar包。還有另外一個原因就是前置處理器

Jmeter(六) - 入門精通 - JMeter前置處理器教程

1.簡介   前置處理器是在發出“取樣器請求”之前執行一些操作。如果將前置處理器附加到取樣器元件,則它將在該取樣器元件執行之前執行。前置處理器最常用於在取樣器請求執行前修改其設定,或更新未從響應文字中提取的變數。前置處理器主要是用來處理請求前的一些準備工作,比如引數設定、環境變數設定等

Jmeter(七) - 入門精通 - JMeter後置處理器 -上篇教程

1.簡介   後置處理器是在發出“取樣器請求”之後執行一些操作。取樣器用來模擬使用者請求,有時候伺服器的響應資料在後續請求中需要用到,我們的勢必要對這些響應資料進行處理,後置處理器就是來完成這項工作的。例如系統登入成功以後我們需要獲取SessionId,在後面的業務操作中伺服器會驗證這

Jmeter(九) - 入門精通 - JMeter監聽器 -上篇教程

1.簡介   監聽器用來監聽及顯示JMeter取樣器測試結果,能夠以樹、表及圖形形式顯示測試結果,也可以以檔案方式儲存測試結果,JMeter測試結果檔案格式多樣,比如XML格式、CSV格式。預設情況下,測試結果將被儲存為xml格式的檔案,檔案的字尾: ".jtl"。另外一種儲存格式為CSV檔案,該格式的好處就

Jmeter(三) - 入門精通 - Jmeter Http協議錄製指令碼工具-Badboy3教程

1.簡介   Badboy為方便自動化資料靈活性,以及指令碼的重用,減少工作量;為此提供了指令碼引數化的功能,這一篇文章巨集哥以度娘搜尋的關鍵字“北京-巨集哥”進行引數化為例,巨集哥帶領你們實戰一下如何使用Badboy的引數化功能。 2.指令碼錄製   經過上一篇文章的學習想必大家對B

Jmeter(三四) - 入門精通進階篇 - 引數化教程

1.簡介   前邊三十多篇文章主要介紹的是Jmeter的一些操作和基礎知識,算是一些初級入門的知識點,從這一篇開始我們就來學習Jmeter比較高階的操作和深入的知識點了。今天這一篇主要是講引數化,其實前邊或多或少的介紹過類似的知識點,知識沒有系統的講解,由於這個在實際工作中用到比較多而且經常用到,所以巨集哥今

Jmeter(三五) - 入門精通進階篇 - 關聯教程

1.簡介   上一篇中介紹瞭如果想要同時傳送多條請求,那麼怎樣才能讓每條資料某些請求引數改變呢。這就用到了jMeter引數化。在實際測試場景中,我們往往還有這樣的需求,登入後伺服器響應的token作為下次請求的引數,這就是所謂的引數關聯。   當請求之間有依賴關係,比如一個請求的入參是另一個請求返回的資料

Jmeter(三) - 入門精通 - 測試計劃Test Plan的元件教程

1.簡介 上一篇中巨集哥已經教你如何通過JMeter來建立一個測試計劃(Test Plan),那麼這一篇我們就將JMeter啟動起來,建立一個測試計劃(Test plan),然後巨集哥給大家介紹一下測試計劃(Test Plan)有哪些元件組成的。 2.測試計劃(Test Plan)要素 本節主要描述

Jmeter(五) - 入門精通 - 建立網路計劃實戰和建立高階Web測試計劃教程

1.簡介   上一篇中巨集哥已經將其的理論知識介紹了一下,這一篇巨集哥就帶著大家一步一步的把上一篇介紹的理論知識實踐一下,然後再說一下如何建立高階web測試計劃。 2.網路計劃實戰   通過上一篇的學習,巨集哥將其分類為:     (1)不需要登入驗證身份就可以操作的。     (2)需要登入驗證身份之後才