Jmeter/校驗響應json數據是否正確

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數據,方便操作。
二、對於斷言結果,我們是是通過FailureFailureMessage來設置斷言結果:

  • Failure = false;  表示斷言成功
  • Failure = true;  表示斷言失敗
  • FailureMessage = “自定義返回斷言結果消息”;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章