標籤:class 添加 tps string sonar 數組 介面 方式 com
1:前置條件
將fastjson-1.2.49.jar包置於jmeter的lib目錄下,並將該jar包添加到測試計劃的Library中;否則會報:Typed variable declaration : Class: JSONObject not found in namespace的錯誤
2:解析思路
利用beanshell擷取到json響應,然後通過JSONObject 和JSONArray 將數組解析,遍曆數組的length之後,提取參數值
我們需要解析如下的json響應,提取出中間的Name和population
//匯入json包
import org.json.*;
//擷取擷取請求的傳回值
String response_data = prev.getResponseDataAsString();
//日誌列印擷取請求的傳回值
log.info(response_data);
//將String類型的傳回值構造成JSONObject對象
JSONObject data_obj = new JSONObject(response_data);
//擷取作為下一個請求post的參數值Province(兩種方式)
//String Provincelist_str = data_obj.get("Province").toString();
JSONArray Provincelist_str = data_obj.getJSONArray("Province");
//log.info(Provincelist_str);
//擷取Province數組的長度
int len = Provincelist_str.length();
String strlen = Integer.toString(len);
vars.put("MessageNum",strlen);
log.info(strlen);
int i = 0;
for(;i < len;++i)
{
//擷取 data[ i ] 數組對象
JSONObject jsonTemp = (JSONObject)Provincelist_str.getJSONObject(i);
switch(i)
{
case 0:
//兩種提取參數的寫法
String NameItems = jsonTemp.getString("Name");
//String NameItems = jsonTemp.get("Name").toString();
//兩種列印參數的方法
//vars.put("Name_1", jsonTemp.getString("Name"));
vars.put("Name_1", NameItems);
log.info(NameItems);
}
}
加debug之後,發現提取到了兩組資料,分別是省份和人口,之後就可以在後續介面進行調用了
你還在為找不到可練習的介面而煩惱嗎?現在加入龍淵閣,手把手教你搭建屬於自己的介面測試環境!
點擊這裡進入史上最具活力的測試交流平台!
Jmeter(三十四)_Beanshell解析並提取json響應