BeanShell PostProcessor 可对url请求参数、请求返回的结果进行处理赋值等操作;
步骤:

BeanShell PostProcessor 对url 返回的json进行提取:
json的数据格式为:{"data":{"total":5,"list":[{"enabled":true,"lastLoginTime":00,"name":"超级管理员","id":1,"state":"Normal","username":"admin"},{"enabled":true,"lastLoginTime":1,"name":"普通管理员","id":2,"state":"Normal","username":"adminment"},}
1、采用import org.json.* 进行处理:
使用 org.json必须引入的包:下载
下载的包放到jmeter目录下的lib目录中,记得重启jmeter
import org.json.*;
String response_data = prev.getResponseDataAsString(); //url返回的数据
JSONObject data_obj = new JSONObject(response_data);
String diaryList_str = data_obj.get("data").get("list").toString();
JSONArray diaryList_array = new JSONArray(diaryList_str);
String resultName ="";
for(int i=0;i<diaryList_array.length();i++){
JSONObject diaryList_obj = new JSONObject(diaryList_array.get(i).toString());
String recordItems = diaryList_obj.get("name").toString();
resultName ="resultName"+i;
vars.put(resultName,recordItems);
}
2、采用 import com.alibaba.fastjson.* 进行处理:
使用com.alibaba.fastjson必须引入的包:下载
下载的包放到jmeter目录下的lib目录中,记得重启jmeter
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
String response_data = prev.getResponseDataAsString(); // //获取url返回值
JSONObject data_obj = JSON.parseObject(response_data);
String json=data_obj.get("data").toString();
JSONObject jso=JSON.parseObject(json);//json字符串转换成jsonobject对象
JSONArray jsarr=jso.getJSONArray("list");//jsonobject对象取得数组
String str2="";
for(int i=0;i<jsarr.size();i++){
JSONObject ao=jsarr.getJSONObject(i);//jsonarray对象通过getjsonobjext(index)方法取得数组里面的jsonobject对象
String vString=ao.getString("name");//jsonobject对象通过key直接取得String的值
if (vString == null){
vString=ao.getString("username");
}
str2 = "answer_"+i;
vars.put(str2,vString);
}