jmeter----通过 beanshell提取json数组中某个字段的值

提取sample返回json数据中所有typeName字段对应的值,返回的json格式如下: 

jmeter----通过 beanshell提取json数组中某个字段的值_第1张图片

//导入包

import org.apache.jmeter.assertions;

import org.apache.jmeter.samplers.SampleResult;

import org.apache.jmeter.assertions.AssertionResult;

import com.alibaba.fastjson.JSONArray;

import com.alibaba.fastjson.JSONObject;


String response_data = prev.getResponseDataAsString();//获取接口返回的response数据

//log.info("response_data:"+response_data);  //用于调试值是否传入成功

JSONObject data_obj = JSONObject.parseObject(response_data);//转换成json

//判断code是否等于0 如果等于0 再取里面的字段


int code = data_obj.getIntValue("code"); //获取json中code的值

//log.info("code:"+code);  //用于调试值是否获取成功


if(code==0){

JSONArray rows = data_obj.getJSONObject("data").getJSONArray("rows");//提取json数组rows

String strRows = rows.toString();


//log.info("----------------------rows:"+ rows);  //用于调试值是否获取成功

//log.info("----------------------第一个值:"+ rows.get(0).get("number").toString());  //用于调试值是否获取成功

//log.info("----------------------rows.size():"+rows.size().toString());  //用于调试值是否获取成功



String[] result = new String[rows.size()];   //获取数组的长度要用size()


for(int i=0;i

    String number = rows.get(i).get("number").toString();   //提取json数组rows中 number的值

    log.info("----------------------number:"+number);  //用于调试值是否获取成功

    result[i] = number;

}


vars.put("result", Arrays.toString(result)); //将数组 result转化为字符串

log.info("----------------------result:"+ Arrays.toString(result));  //用于调试值是否获取成功


}

if((code == 0){

Failure = false; //设置成false 表示接口跑成功,在结果树中sample是绿色的

} else {

Failure = true;//直接判断失败,表示接口跑失败,在结果树中sample是红色的

}


你可能感兴趣的:(jmeter----通过 beanshell提取json数组中某个字段的值)