Jmeter将接口查询结果列表按顺序赋值给各线程

Jmeter做性能测试会遇到这么一个场景:后面的请求需要根据前面的查询列表结果通过正则表达式提取器取值后赋值,而后面用户的赋须是唯一的,此值必时该如何做?

只需要把前面的结果保存到一个数组变量中,后面的用户(即线程组中的单个线程)逐一从该数组变量中取值即可。

通过 __threadNum该函数很容易解决了上述的问题。

1、假如我们前一请求的查询列表结果如下

图片

2、此时要用3个用户(线程)执行测试,迭代一轮

图片

3、我们在Jmeter中新建一【http请求】,实现请求查询列表

图片

4、通过正则表达式提取器对查询结果取值

图片

5、新建一【JAVA请求】,名字直接为 ${ID} (即上面取值的变量)方便我们后续查看结果。

图片

6、最后添加一监听器【查询结果树】,运行后(如下)我们看到三个用户(线程)的取值一样。

图片

这里可能大家第一时间想到的是对前面查询列表结果的取值做处理,但要实现很复杂。仔细看上面截图中线程组的每个线程都有编号(如 线程组 1-3),那我们是不是可以在这上面想办法?

7、在正则表达式提取器中,使用${__threadNum}作为匹配数字的值。

图片

8、最后我们再来运行下,看看取值结果(如下),即完美解决了将接口查询结果列表按顺序赋值给各用户,保证各用户赋值唯一的问题。

图片

图片

思考几个问题:

现实中我们的查询列表请求还会带上page(页数),PageSize(分页条数),此时我们的用户(线程)要保证取值唯一,PageSize与线程数该如何赋值?

如果我们要保证每轮每个用户(线程)取值都是唯一的,page该如何利用起来?

性能测试场景中,碰到查询列表结果数据不够,该如何处理?

学习资料/接口/项目等需要领取:需要+\/ →it7411

最新软件测试+进阶测试全套【自学资料包】

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沈伟-GodGreat

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值