jmeter學習指南之響應斷言和beanshell斷言
一、響應斷言
1、什麼是響應斷言?
在jmeter中最常用的斷言方法是“響應斷言”,它是通過檢查sampler的請求內容和響應結果中是否匹配指定的字串來判斷結果是否正確。
響應斷言簡單實用,能夠解決工作中的大部分問題。
尤其是在jmeter4.0版本中在響應斷言中加入了Request Headers、Request Data,使得能夠對請求頭和請求體進行斷言,滿足了多樣性的斷言需求,非常方便。
2、使用響應斷言
響應斷言的使用非常簡單,通常需要關注如下三點:
“要測試的響應欄位”
指我們要進行斷言的內容所在的位置,分為request和response兩大塊,根據實際情況選擇即可(最常用的是響應文字)
“模式匹配規則” (此處提到的1和3對應上圖中的數字)
控制上圖中的“1”如何匹配“3”
"包括"--1包括3,支援正則; “匹配”--1完全匹配3,支援正則;
“Equals”--1完全匹配3中的文字內容,不支援正則,且大小寫敏感;“Substring”--1包括3中的文字內容,不支援正則,且大小寫敏感;
“否”、“或者”--跟前面四個選項結合使用,分別用於邏輯取反、取或。
“要測試的模式”
這裡填寫我們要進行斷言的內容,可以新增多個模式,可以使用變數、文字、正則表示式(在“包括”和“匹配”模式下)。
jmeter視訊:https://edu.51cto.com/course/14305.html
二、BeanShell斷言
1、什麼是BeanShell斷言?
BeanShell斷言可以使用beanshell指令碼來執行斷言檢查,可以用於更復雜的個性化需求,使用更靈活,功能更強大,但是要能夠熟練使用beanshell指令碼。
在這裡除了可以使用beanshell的內建變數外,主要通過Failure和FailureMessage來設定斷言結果。
Failure = false;-----表示斷言成功,
FailureMessage = "……"; ----自定義的成功資訊
Failure = true;-----表示斷言失敗,
FailureMessage = "……";-----自定義的失敗資訊。
下面看一個簡單的示例:
其中指令碼內容如下:
if ("200".equals(""+ResponseCode) == false )
{
// 響應碼不等於200時,設定斷言失敗,並輸出失敗資訊
Failure=true ;
FailureMessage ="Response code was not a 200 response code it was " + ResponseCode + "." ;
print ( "the return code is " + ResponseCode); // this goes to stdout
log.warn( "the return code is " + ResponseCode); // this goes to the JMeter log file
} else {
// 響應碼等於200時,設定斷言成功,並輸出成功資訊
Failure=false;
FailureMessage = "Return true, and the response code was " + ResponseCode;
}
}