Jmeter中支持很多種格式的斷言,下面舉例記錄下幾種常用斷言的用法。
本次測試接口的期望返回參數如下:
{ "code":"53012463", "success":false, "message":"測試成功", "data":null }
一、響應斷言
響應斷言模式匹配規則:
- 包括(Contains):如果響應中包含了指定的字符串,判斷為成功,支持正則表達式匹配
- 匹配(Matches):如果響應完全匹配指定的字符串,判斷為成功,支持正則表達式相等
- 相等(Equals):如果響應完全匹配指定的字符串,判斷為成功,不支持正則表達式子字符串
- 字符串(Substring):如果響應中包含了指定的字符串,判斷為成功,不支持正則表達式
響應斷言的匹配規則都比較簡單,下面圖片中的例子是用的“字符串匹配”。
二、Json斷言
下圖中的例子只勾選了Additionally assert value,意思是$.code的值與我填入的值一致才能斷言通過。如果要使用正則斷言的話需要勾選Match as regular expression。這個地方設置斷言的時候需要注意下。
json路徑表達式 $.code 代表json中的code字段值, $.code取出來的值是“53012463”
JsonPath詳細用法:https://github.com/json-path/JsonPath
三、BeanShell斷言
下面的簡單例子是直接在beanshell面板上寫腳本來判斷的,判斷接口響應數據中是否包含我們期望的code值。
BeanShell腳本定義了下列變量:
Read/Write: Failure, FailureMessage, SampleResult, vars, props, log.
ReadOnly: Response[Data|Code|Message|Headers], RequestHeaders, SampleLabel, SamplerData, ctx
以上三種斷言方法基本可以滿足平時工作需要了,以后用到其他的斷言方式再補充~