jmeter不僅適合用來做性能測試,也適合做一些頻繁的接口測試,這就避免不了對響應數據的校驗。
當我們需要驗證準確率時,就避免不了對響應結果進行校驗。
在這裏記錄一下腳本形式的校驗方法(BeanShell)
首先要對json進行校驗,我們需要一些依賴包,這裏我們用的是json.jar
,首先將相關包放置到我們的jmeter依賴庫路徑XXX\apache-jmeter-5.1.1\lib\
下,並且在Test plan
中引用它
然後我們是以腳本的方式校驗,自然要添加對應的Bean Shell Assertion
了
Add->Assertions->Bean Shell Assertion
有時候返回的數據並不一定是標準的JSON數據,此時我們在將字符串數據轉換成JSON數據前要先將其轉換成JSON規範。然後再通過對象去變量JSON數據進行對應的數據校驗。示例代碼如下:
import org.json.JSONObject;
import org.json.JSONArray;
boolean flag = false;
String resp_json = prev.getResponseDataAsString();
JSONObject data_obj = new JSONObject("{\"data\": " + resp_json + "}");
log.info("{\"data\": " + resp_json + "}");
JSONArray data_array = data_obj.getJSONArray("data");
int len = data_array.length();
for(int i = 0; i < len; i++){
JSONObject json_temp = (JSONObject)data_array.getJSONObject(i);
String index = json_temp.getString("index");
String leble = json_temp.getString("leble");
if(index.equals("1") && leble.equals("people")){
flag = true;
}
}
if(flag){
log.info("success");
Failure = false; //Assertion結果爲通過
FailureMessage = "人車識別成功,結果:人, index:1";
}else{
log.error("failure");
Failure = true; //Assertion結果爲不通過
FailureMessage = "人車識別失敗!";
}
總結
一、本質上響應數據是就是字符串,如果遇到不規範的響應數據,我們通過調整使其可以成功轉換成JSON數據,方便操作。
二、對於斷言結果,我們是是通過Failure
和FailureMessage
來設置斷言結果:
- Failure = false; 表示斷言成功
- Failure = true; 表示斷言失敗
- FailureMessage = “自定義返回斷言結果消息”;