參考《全棧效能測試修煉寶典JMeter實戰》第六章 JMeter 元件詳解中第六節斷言
斷言用來對伺服器的響應資料做驗證,常用的斷言是響應斷言,支援正規表示式。
一、BeanShell Assertion
用來訪問JMeter的屬性:
log物件,可以利用此物件寫日誌
SampleResult物件,從中獲取響應資料、響應碼等資訊,只讀
Respose物件,獲取響應資料,只讀
Failure,用來設定斷言成功與否,Boolean型別
FailureMessage,用來設定失敗資訊
ResponseData物件,湖區響應資料
ResponseCode,響應碼
ResponseMessage,響應資訊
ResponseHeaders,響應投資訊
RequestHeaders,請求頭資訊
SampleLabel,取樣器Label資訊
SamplerData,傳送給伺服器的資料
Ctx (JMeterContext),JMeter上下文資訊,從中可以獲取執行緒數、執行緒號等資訊
Vars(JMeterVariables),獲取JMeter中定義的變數,或者設定變數
(JMeterPoperties),獲取JMeter中的屬性,或者設定屬性
其他幾個方法:
getResponseDataAsString:從SampleResult獲取響應資料
getResponseCode:從SampleResult獲取響應訊息
getResponseMessage:從SampleResult獲取響應訊息
二、Compare Assertion
比較斷言,用來比較兩次取樣結果,支援正規表示式過濾。一般不建議使用,因為會消耗較多的資源,常用來除錯。Compare Assertion與Cpmparison Assertion Visualizer結合使用,前者進行設定,後者進行斷言結果顯示。
三、HTML Assertion
HTML斷言可以對HTML程式碼內容進行斷言,支援XHTML和XML。
在HTML斷言中利用JTidy來解析HTML程式碼,JTidy是HTML Tidy的Java實現版本,提供了HTML的語法檢查器。JTidy可以用來清除格式不好喝不對的HTML,還提供對整個HTML的DOM分析。
四、Size Assertion
驗證響應資料Size大小,主要引數說明:
Apply to:斷言應用範圍
Main sample and sub-samples:斷言部分包括主Sample與子Sample
Main sample only:斷言部分僅僅是主Sample
Sub-samples only:斷言部分僅僅是子sample
JMeter Variable:斷言部分是JMeter變數
Response Size Field to Test:那部分響應域參與斷言
Full Response:全部響應資訊
Response Headers:響應頭資訊,比如Http協議的頭資訊
Response Body:響應主體內容部分,比如http協議HTML程式碼中的Body部分
響應程式碼:響應程式碼
響應資訊:響應資訊
Size to Assert:斷言時Size的閾值設定
五、XML Schema Assertion
XML Schema,可擴充套件標記語言架構師以可擴充套件標記語言(標準通用標記語言的子集)為基礎的,它用於可替代文件型別定義,一份XML schema檔案描述了可擴充套件標記語言文件的結構。作用是定義一份XML文件的合法組建群,就像文件型別定義的作用一樣,一份XML Schema定義:
可以出現在文件裡的元素
可以出現在文件裡的屬性
哪些元素是子元素
子元素的順序
子元素的數量
一個元素是否能包含文字,或應該是空的
元素和屬性的資料型別
元素和屬性的預設值和固定值
六、XML Assertion
用來驗證響應資料是正確的XML格式。
七、XPath Assertion
對返回的XML格式資訊進行斷言
八、Duration Assertion
持續時間斷言,驗證取樣器執行測試消耗掉的時間,可以針對取樣器與子取樣器,時間單位是毫秒
九、響應斷言
判斷返回內容中內容
十、其他斷言元件
SMIME Assertion
對加密和簽名的郵件進行斷言
MD5Hex
對返回的MD5結果進行斷言,使用簡單,直接跳入MD5值
JSR223斷言
規範請求,是指向JCP提出心中一個標準化技術規範的正式請求