jmeter跨线程传输参数解决办法

工作中遇到的问题:从线程组-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包导入在测试计划中即可.

你可能感兴趣的:(jmeter跨线程传输参数解决办法)