【JMeter】threadNum:将接口查询结果列表按顺序赋值给各线程

【软件测试行业现状】2023年了你还敢学软件测试?未来已寄..测试人该何去何从?【自动化测试、测试开发、性能测试】

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

如果按编程思维来说,这个问题并不难。只需要把前面的结果保存到一个数组变量中,后面的用户(即线程组中的单个线程)逐一从该数组变量中取值即可。

小酋开始的思路也是如此,但最后发现要实现这个功能,非常复杂。如果大家不信,可以试试看,如果有简单的实现方式,可以留言告诉小酋。

最后,小酋最后通过__threadNum该函数很容易解决了上述的问题。

下面谈谈具体的思路

1、假如我们前一请求的查询列表结果如下
【JMeter】threadNum:将接口查询结果列表按顺序赋值给各线程_第1张图片

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

【JMeter】threadNum:将接口查询结果列表按顺序赋值给各线程_第2张图片

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

【JMeter】threadNum:将接口查询结果列表按顺序赋值给各线程_第3张图片

4、通过正则表达式提取器对查询结果取值(该提取器的具体用法参见之前文章)

【JMeter】threadNum:将接口查询结果列表按顺序赋值给各线程_第4张图片

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

【JMeter】threadNum:将接口查询结果列表按顺序赋值给各线程_第5张图片

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

【JMeter】threadNum:将接口查询结果列表按顺序赋值给各线程_第6张图片

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

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

【JMeter】threadNum:将接口查询结果列表按顺序赋值给各线程_第7张图片

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

【JMeter】threadNum:将接口查询结果列表按顺序赋值给各线程_第8张图片 【JMeter】threadNum:将接口查询结果列表按顺序赋值给各线程_第9张图片

思考几个问题:

现实中我们的查询列表请求还会带上page(页数),PageSize(分页条数),此时我们的用户(线程)要保证取值唯一,PageSize与线程数该如何赋值?
如果我们要保证每轮每个用户(线程)取值都是唯一的,page该如何利用起来?
性能测试场景中,碰到查询列表结果数据不够,该如何处理? .

下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

【JMeter】threadNum:将接口查询结果列表按顺序赋值给各线程_第10张图片

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

 【JMeter】threadNum:将接口查询结果列表按顺序赋值给各线程_第11张图片

文档获取方式:

这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

【JMeter】threadNum:将接口查询结果列表按顺序赋值给各线程_第12张图片

你可能感兴趣的:(技术分享,软件测试,jmeter)