參考:http://jmeter.apache.org/usermanual/component_reference.html#assertions
背景
在測試過程中,我們需要對某個請求的結果進行判定。
比如我們搜索“你好”,請求發送成功,返回響應碼也是200,但是並不能說明返回的響應就是對的,我們可能還需要判定響應結果包含“你好”。這個時候,我們就需要用到Assertion。
Web測試常用的斷言
Response Assertion:對Web請求響應結果進行驗證。
Duration Assertion:判斷是否在給定的時間內收到響應結果。
Size Assertion:判斷響應結果是否包含正確數量的byte。可以定義等於、大於、小於或者不等於等等。
添加斷言示例
1. 添加斷言
添加方法:在需要驗證結果的Sampler上右鍵,Add –> Assertions –> Response Assertion
下圖就表示響應文本包含 hello 就算Pass。
Apply to : 需要應用斷言的部分。
Response Field to Test:需要驗證的響應部分。
Text Response:從服務器返回的響應文本。不包括 HTTP Header。
Response Code:響應碼。比如 200.
Response Message:響應信息。比如 OK。
Pattern Matching Rules:匹配規則。
Contains:上面選中的部分包含下面的正則表達式就算Pass
Matches:上面選中的整個部分匹配下面的正則表達式就算Pass。
Equals:上面選中的整個部分和下面的字符串相等就算Pass。不支持正則表達式,同時對大小寫敏感。
Substring:上面選中的部分包含下面的字符串就算Pass。不支持正則表達式,同時對大小寫敏感。
Not:勾選上之后,會對前面選擇的進行反轉。比如Matches + Not 就是不匹配就算Pass。
Patterns to Test:需要匹配的正則表達式或字符串。這里可以添加多項。每一項會分開進行驗證。如果一條驗證失敗,后邊的不會再進行驗證。
按照上面的方法,我們在 search_你好請求的結果加上斷言:你好fsdlgggg。這樣斷言結果應該是Fail的。
在 search_helloworld請求結果加上斷言:hello。這樣斷言結果應該是Pass的。
2. 添加監聽
在Thread Group 上右鍵 , Add –> Listeners –> Assertion Results。
3. 運行
點擊運行按鈕運行測試計划。
4. 查看結果
可以看到 search_你好 顯示為紅色感嘆號,同時點開有 Response Assertion 。點擊 Response Assertion 可以看到具體內容。
search_helloworld 則是綠色的通過。
在 Assertion Results 監聽里面,可以看到所有監聽的情況。