当前请求body
{
"serialNo": "${__UUID}",
"sourceSystem": "30001",
"masterDatas": [
{
"companyCode": "101",
"companyName": "AAAAAAAAA",
"ecode": "${__time(,)}",
"ename": "${__time(,)}",
"customerType": "4",
"isactive": "Y",
"outIsactive": "Y",
"provinceName": "广东省",
"cityName": "深圳市",
"districtName": "南山区",
"customerAddressDetail": "测试地址",
"post": "514471",
"mobil": "",
"phone": "0000000000",
"contactName": "AAAAA",
"remark": "AAAAAA"
}
]
}
想获取当前请求body中,masterDatas数值中,ecode的值,并且设置为自定义参数,传递给下个接口使用
后置操作>>选择后置脚本,选择beanshell
beanshell脚本如下
import com.lq.test.json;
import com.lq.test.json_lib;
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.config.Argument;
import org.json.JSONObject;
import org.json.JSONArray;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import net.sf.json.JSONArray;
import net.minidev.json.JSONArray;
import net.minidev.json.JSONObject;
import net.minidev.json.JSONValue;
Arguments arguments = sampler.getArguments();
Argument arg = arguments.getArgument(0);
//获取请求body值
String body = arg.getValue();
//打印body
log.info("RequestBody>>>>>" + body);
// 将JSONObject对象转换为JSON字符串
JSONObject jsonString = JSON.parseObject(body);
log.info("jsonString为>>>>>" + jsonString);
//获取json中数组masterDatas
JSONArray masterDatas = jsonString.getJSONArray("masterDatas");
log.info("masterDatas为>>>>>" + masterDatas);
// 循环遍历数组中的每个元素,获取数组中ecode值,并设置为环境变量
for (Object data : masterDatas) {
String ecode = ((Map)data).get("ecode").toString();
vars.put(${__metersphere_env_id}+"ecode",ecode);
log.info("ecode为>>>>>" + ecode);
}
查看控制台
给下个接口引用参数