Jmeter获取接口值并设置为变量及json提取器获取数组中的返回值
·
一 Jmeter获取接口值并设置为变量
测试过程中遇到接口返回值在后续的多个接口中均被调用,通过json提取器获取到的变量只能用在下一个接口中,此时使用BeanShell PostProcessor(BeanShell 后置处理程序)设置为全变量即可完成目标,以下介绍2种方式:
本例流程:“开始游戏-结束游戏-获取奖品”,其中开始游戏生成batch_id,获取奖品时引用该值。
设置流程如下:
1.添加HTTP Requst请求:“添加-取样器-HTTP请求”,并设置请求参数
![[图片]](https://i-blog.csdnimg.cn/blog_migrate/b0c0489c63300cb3be0e7d63990b7d48.png)
![[图片]](https://i-blog.csdnimg.cn/blog_migrate/23b5a288112dcaede8ef69c381ee0995.png)
从开始游戏的运行结果可以看到返回batch_id
![[图片]](https://i-blog.csdnimg.cn/blog_migrate/78a3652bc254554568e8ad607ec9b87c.png)
2.使用json提取器提取batch_id
2.1 选择需要提取的HTTP请求,添加json提取器:“添加-后置处理器-json提取器”
![[图片]](https://i-blog.csdnimg.cn/blog_migrate/72adb730069e6adad1f3648743626b31.png)
2.2 设置json提取器的值
Names of created variables:输出变量名称
JSON Path expressions:$.data.batch_id(获取batch_id)
Default Values:获取失败时输出默认值
![[图片]](https://i-blog.csdnimg.cn/blog_migrate/476c1aaf6e93a7850fae3c821b492991.png)
3.添加BeanShell PostProcessor(BeanShell 后置处理程序)
3.1 在HTTP Request同级或下级添加,右键“添加-后置处理器-BeanShell PostProcessor”
![[图片]](https://i-blog.csdnimg.cn/blog_migrate/7c5ceb1851ed6b8fb44c5de3e7fdebde.png)
3.2 方法一:设置BeanShell PostProcessor(BeanShell 后置处理程序)
![[图片]](https://i-blog.csdnimg.cn/blog_migrate/5ab5355af00d37db7d86231d83cb9e33.png)
//存为变量batch_id,供后面的接口使用
vars.put("batch_id",vars.get("batch_id"));
3.3 方法二:设置BeanShell PostProcessor(BeanShell 后置处理程序)为全局变量
![[图片]](https://i-blog.csdnimg.cn/blog_migrate/4f2f78af9b850a85e7f843a17a62a989.png)
4.添加引用“batch_id” 的结束游戏和获取奖品2个请求
4.1结束游戏:可以直接输入json提取器中的值
![[图片]](https://i-blog.csdnimg.cn/blog_migrate/5f998d5bdb92bc9ab177c830465dc777.png)
4.2 方法一:获取奖品引用:${batch_id}
![[图片]](https://i-blog.csdnimg.cn/blog_migrate/24438efe62b9193cd49d732ad2c4cc0e.png)
4.3 方法二:获取奖品引用:${__P(batch_id,)}
![[图片]](https://i-blog.csdnimg.cn/blog_migrate/de250de2bc2c8128a278a22e985898cb.png)
运行结果获取到batch_id的值:

注意json提取器一定要放在HTTP 请求的下级,否则变量获取不到值;
二 json提取器获取数组中的返回值
上例中结束游戏返回av_id在数组award中:
![[图片]](https://i-blog.csdnimg.cn/blog_migrate/e0f5480d6f4b634219a13b232f8db2db.png)
json提取器获取av_id的值:$.data.award[0].av_id (由于award是数组,数组从0开始故增加[0])
![[图片]](https://i-blog.csdnimg.cn/blog_migrate/5084c438d48412e840874310dfca3e0f.png)
获取奖品引用:
![[图片]](https://i-blog.csdnimg.cn/blog_migrate/9489b331e123473a74c536ee7a572e0e.png)
运行结果:
![[图片]](https://i-blog.csdnimg.cn/blog_migrate/ac9ca1cf10c2254dec914937d8703191.png)
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)