工作中遇到的问题:从线程组-1里的某个请求的返回数据里取出某个值,然后将这个值给线程组-2里的某个请求用。
解决思路:从线程组-1的一个接口请求的返回json中取出id的值,然后给线程组-2的一个Get请求用,在这里我是选择用BeanShell来处理。
解决步骤:
1.在线程组-1里的需要取返回值数据的请求下加后置处理器,代码如下:
import org.json.*;
String response_data = prev.getResponseDataAsString();
JSONObject data_obj = new JSONObject(response_data);
String apps_str = data_obj.get("data").get("user").get("id").toString();
props.put("transfer_id",apps_str);
print(apps_str);
2.在线程组-2的需要用到id的Get请求下加前置处理器BeanShell PreProcessor,代码如下:
String transfer_id = props.get("transfer_id");
vars.put("transfer_id",transfer_id);
print(transfer_id);
3.把获取的变量写入到需要改参数的请求中,代码如下:
解释说明:
1、vars.get(String key):从jmeter中获得变量值
2、 vars.put(String key,String value):数据存到jmeter变量中
3、props.get("START.HMS"); 注:START.HMS为属性名,在文件jmeter.properties中定义
4、props.put("PROP1","1234");
5、getResponseDataAsString():获取响应信息
6、getResponseCode() :获取响应code
jmeter如何引入第三方的jar包:
1、首先将【commons-codec-1.9.jar】jar包放在jemeter文件夹下的lib/ext下面;
2、新建一个测试计划,同时将jar包导入在测试计划中即可.
网友评论