Jmeter获取接口值并设置为变量及json提取器获取数组中的返回值

一 Jmeter获取接口值并设置为变量

测试过程中遇到接口返回值在后续的多个接口中均被调用,通过json提取器获取到的变量只能用在下一个接口中,此时使用BeanShell PostProcessor(BeanShell 后置处理程序)设置为全变量即可完成目标,以下介绍2种方式:
本例流程:“开始游戏-结束游戏-获取奖品”,其中开始游戏生成batch_id,获取奖品时引用该值。
设置流程如下:

1.添加HTTP Requst请求:“添加-取样器-HTTP请求”,并设置请求参数

[图片]

[图片]

从开始游戏的运行结果可以看到返回batch_id
[图片]

2.使用json提取器提取batch_id

2.1 选择需要提取的HTTP请求,添加json提取器:“添加-后置处理器-json提取器”

[图片]

2.2 设置json提取器的值

Names of created variables:输出变量名称
JSON Path expressions:$.data.batch_id(获取batch_id)
Default Values:获取失败时输出默认值
[图片]

3.添加BeanShell PostProcessor(BeanShell 后置处理程序)

3.1 在HTTP Request同级或下级添加,右键“添加-后置处理器-BeanShell PostProcessor”

[图片]

3.2 方法一:设置BeanShell PostProcessor(BeanShell 后置处理程序)

[图片]

//存为变量batch_id,供后面的接口使用
vars.put("batch_id",vars.get("batch_id"));

3.3 方法二:设置BeanShell PostProcessor(BeanShell 后置处理程序)为全局变量

[图片]

4.添加引用“batch_id” 的结束游戏和获取奖品2个请求

4.1结束游戏:可以直接输入json提取器中的值

[图片]

4.2 方法一:获取奖品引用:${batch_id}

[图片]

4.3 方法二:获取奖品引用:${__P(batch_id,)}

[图片]

运行结果获取到batch_id的值:
在这里插入图片描述

注意json提取器一定要放在HTTP 请求的下级,否则变量获取不到值;

二 json提取器获取数组中的返回值

上例中结束游戏返回av_id在数组award中:
[图片]

json提取器获取av_id的值:$.data.award[0].av_id (由于award是数组,数组从0开始故增加[0])
[图片]

获取奖品引用:
[图片]

运行结果:
[图片]

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值