jmeter 解析json

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36350532/article/details/83619891

1. 在测试计划中导入json.jar 包

2.新建一个BeanShell PostProcessor

3. 代码如下

import org.json.JSONObject;  //需要在测试计划中导入包 json.jar
import org.json.JSONArray;

//获取请求返回值。注意此处只能获取到String类型;
String response_data = prev.getResponseDataAsString(); 
log.info("response_data------>"+response_data);
//将String类型的返回值构造成JSONObject对象,才可使用Java对象的方法对其进行操作;
JSONObject data_obj = new JSONObject(response_data);


//String StrData = data_obj.get("data").toString();  //获取响应结果中参数data值; 
//Log中显示的字段顺序会与“response_data”中的字段顺序有差异,JSON串的正确与否无关字段顺序;
//log.info("StrData------>"+StrData); 

JSONArray data_array = data_obj.getJSONArray("data"); //获取响应结果中参数data值; data为数组
log.info("data_array------>"+data_array.toString()); 
int len = data_array.length(); //获取data数组的长度
String strlen = Integer.toString(len);
log.info("strlen------>"+strlen);

String violationId_0 = "2279663"; //没有扣分的违章
for(int i = 0;i <len;i++){
    JSONObject jsonTemp = (JSONObject)data_array.getJSONObject(i); 
    //log.info("jsonTemp------>"+jsonTemp.toString());
    String violationId = jsonTemp.get("violationId").toString();
    log.info("violationId_"+i+"------>"+violationId); 
    if(violationId.equals(violationId_0)){
        log.info("jsonTemp------>"+jsonTemp.toString());
        String backendId = jsonTemp.get("backendId").toString();
//        String locationId = jsonTemp.get("locationId").toString();
//        String violationCode = jsonTemp.get("violationCode").toString();
        String realDegree = jsonTemp.get("realDegree").toString();
        String fine = jsonTemp.get("fine").toString();
        String cooperPoundage = jsonTemp.get("cooperPoundage").toString();
        JSONArray jsonArray = new JSONArray();
        JSONObject jsonObj = new JSONObject();
        jsonObj.put("violationId",violationId);
        jsonObj.put("backendId",backendId);
//        jsonObj.put("locationId",locationId);
//        jsonObj.put("violationCode",violationCode);
        jsonObj.put("realDegree",realDegree);
        jsonObj.put("fine",fine);
        jsonObj.put("cooperPoundage",cooperPoundage);
        log.info("jsonObj-->"+jsonObj.toString());
        jsonArray.put(jsonObj);
        log.info("jsonArray-->"+jsonArray.toString());
        vars.put("violationInfos",jsonArray.toString());
        break;
    }else{
        continue;    
    }
}
 

猜你喜欢

转载自blog.csdn.net/qq_36350532/article/details/83619891