前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Jmeter(三十四)_Beanshell解析并提取json响应

Jmeter(三十四)_Beanshell解析并提取json响应

作者头像
飞天小子
发布2018-10-08 09:54:58
4.4K0
发布2018-10-08 09:54:58
举报

1:前置条件

将fastjson-1.2.49.jar包置于jmeter的lib目录下,并将该jar包添加到测试计划的Library中;否则会报:Typed variable declaration : Class: JSONObject not found in namespace的错误

2:解析思路

利用beanshell获取到json响应,然后通过JSONObject 和JSONArray 将数组解析,遍历数组的length之后,提取参数值

我们需要解析如下的json响应,提取出中间的Name和population

//导入json包 import org.json.*; //获取获取请求的返回值 String response_data = prev.getResponseDataAsString(); //日志打印获取请求的返回值 log.info(response_data); //将String类型的返回值构造成JSONObject对象 JSONObject data_obj = new JSONObject(response_data);

//获取作为下一个请求post的参数值Province(两种方式) //String Provincelist_str = data_obj.get("Province").toString(); JSONArray Provincelist_str = data_obj.getJSONArray("Province"); //log.info(Provincelist_str);

//获取Province数组的长度 int len = Provincelist_str.length(); String strlen = Integer.toString(len); vars.put("MessageNum",strlen);

log.info(strlen);

int i = 0;

for(;i < len;++i) { //获取 data[ i ] 数组对象 JSONObject jsonTemp = (JSONObject)Provincelist_str.getJSONObject(i);

switch(i)

{ case 0: //两种提取参数的写法 String NameItems = jsonTemp.getString("Name"); // String NameItems = jsonTemp.get("Name").toString();

// 两种打印参数的方法 // vars.put("Name_1", jsonTemp.getString("Name")); vars.put("Name_1", NameItems); log.info(NameItems);

} }

加debug之后,发现提取到了两组数据,分别是省份和人口,之后就可以在后续接口进行调用了

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-09-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1:前置条件
  • 2:解析思路
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档