Jmeter - Beanshell 获取响应结果(json数据)中某个字段的值

jmeter http请求响应报文为 json格式, 数据如下:

DataFunc([{"TID":"1264","retCode":"17"},{"TID":"1270","retCode":"17"},{"TID":"1253","retCode":"17"},{"TID":"1252","retCode":"17"},{"TID":"1251","retCode":"17"},{"TID":"1250","retCode":"17"},{"TID":"1249","retCode":"17"},{"TID":"1259","retCode":"17"},{"TID":"1258","retCode":"17"},{"TID":"1269","retCode":"17"},{"TID":"1255","retCode":"17"},{"TID":"1268","retCode":"17"},{"TID":"1267","retCode":"17"},{"TID":"1257","retCode":"17"},{"TID":"1266","retCode":"17"},{"TID":"1256","retCode":"17"},{"TID":"1265","retCode":"17"}])

1、导入 net.sf.json.* 所需要的包:json-lib-2.4-jdk15.jar

2、TID这个json数组的信息是下一个请求所需要的request信息中的一部分。

那么在‘优先级计算’这个sampler上添加一个 BeanShell PostProcessor, 就可以获取这段json信息, 然后通过vars.put("result ",Arrays.toString(result) ); 将信息保存到全局变量中。
Arrays.toString(result) 返回指定数组内容的字符串表示形式。

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

String response_data = prev.getResponseDataAsString();
String response_data1 = response_data.substring(9,response_data.length()-1);
JSONArray tidArray = JSONArray.fromObject(response_data1);
System.out.println(tidArray.size());
String [] result = new String[tidArray.size()];
for(int i=0;i<tidArray.size();i++){
    JSONObject obj = tidArray.getJSONObject(i);
    String tid = obj.get("TID").toString();
    result[i]=tid;   
}
vars.put("result",Arrays.toString(result));
vars.get("result");

3、输出如下:

image.png

4、多个节点,如下处理:

 {
"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
  }
  ]
  }
 ]
}

}
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);
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,087评论 19 139
  • 1 引言 这估计是目前国内能找到的相对比较全面的JMeter自动化测试介绍了吧。希望能给予您一点帮助。 1.1 J...
    __yanyan阅读 15,732评论 1 45
  • 冷静的处理事情,太重要了。可能只是说说就知道冷静的重要性了; 任何突发情况出现,首先就要冷静,冷静的分析事情的来龙...
    理思明阅读 672评论 0 0
  • 结婚二十二年的大表弟和大表弟媳妇,育有三个女儿,刚过完二十岁生日的大女儿在武汉传媒学院读播音专业,年满八岁的双胞胎...
    冬歌阅读 3,681评论 0 6
  • 张东辉,焦点初级第43期坚持原创分享第117天(2017.12.27) “假如我有一双翅膀,我想去蓝天飞翔,听太阳...
    星悦传奇阅读 269评论 0 0