Jmeter性能测试学习笔记(四)——beanshell解析json返回数据并填充到下一接口中使用

使用场景:
无法使用json提取器或者正则表达式取出多个数据时,便使用beanshell脚本来获取返回值并逐层解析。下面是个例子:
待解析数据的格式:
在这里插入图片描述
beanshell处理思路:
先获取到整个返回值,然后获取到JSON对象,获取到JSON对象后采用getString获取指定键值名称的节点值。若整个JSON还有嵌套的JSON,则获取为JSONArray,JSONArray解析到内部节点需要沿用前面的思路。总之,获取到JSONObject层后使用getString。
(如上结构图,第1行和22行大括号是第0层Json,data所包括区域是第1层json,使用JSONObject,exercises节点包括区域是第二层json且是个含有内置节点的,使用JSONArray,array作为数组,访问使用下标,而某个具体下标获取后也是个json即如图例如行8-12大括号部分,但此时该层json不再有内置节点,所以此时也是使用jsonobject)

beanshell处理脚本的具体代码如下:

import com.alibaba.fastjson.*;
prev.setDataEncoding("UTF-8");
String response = prev.getResponseDataAsString(); // 得到接口响应结果response
JSONObject jsonObject = JSONObject.parseObject(response); // 定义json对象
// 取响应结果中的data可以通过getJSONObject来获取
// list 需要通过getJSONArray来取
log.info("下面开始执行解析获取json值");

String  examId = jsonObject.getJSONObject(
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值