Jmeter中通过beanshell脚本解析HTTP请求的返回的json并作为下个请求的输入参数


准备工作:

将json-20160212.jar 放入jmeter的lib目录下, 或者在脚本中添加其所在的classpath

jar包可以通过maven获取:

<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20160212</version>
</dependency>


举例来说:

‘优先级计算’ 是一个http请求, 其返回结果为一段json:

{
  "priorityGroups": {
    "promotionId": 1364,
    "name": "促销03",
    "groups": [
      {
        "groupId": "a7358a0a-78a1-4418-bb7a-bb752e32295f",
        "items": [
          {
            "promotionId": 1364,
            "name": "促销03",
            "index": 1
          },
          {
            "promotionId": 1361,
            "name": "单品2",
            "index": 2
          },
          {
            "promotionId": 1358,
            "name": "单品促销-09-指定多个商品-N件X折-1358",
            "index": 4
          }
        ]
      }
    ]
  },
  "promotion": {
    "promotionId": 1364,
    "parentId": null,
    "customerId": 84,
    "name": "促销03",
    "subjectId": null,
    "from": 1470821215000,
    "to": 1470907615000,
    "enterType": 1,
    "hasCoupon": 1,
    "promoType": 2,
    "isTemplate": 0,
    "memo": null,
    "status": 1,
    "objectScopeId": 1069,
    "createBy": 394,
    "sourceId": 1364,
    "editStatus": null,
    "effectiveTime": 1470821215000,
    "createTime": 1470821155000
  }
}
其中, groups这个json数组的信息是下一个请求所需要的request信息中的一部分。

那么在‘优先级计算’这个sampler上添加一个 BeanShell PostProcessor, 就可以获取这段json信息,  然后通过vars.put("groups",strGroups); 将信息保存到全局变量中。

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

String jsonContent = prev.getResponseDataAsString();

JSONObject response = new JSONObject(jsonContent);
JSONArray groups = response.getJSONObject("priorityGroups").getJSONArray("groups");
String strGroups = groups.toString();
vars.put("groups",strGroups);

最后, 在下一个请求的request body中使用这段信息








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值