java – 线程之间的Jmeter线程组共享计数器

我想在jmeter中创建一个Thread Group来创建具有许多(例如5000)设备的用户及其设备.

我没有问题创建此测试,我希望以相关顺序拥有用户和设备的名称.

1. user1--device1 
2. user2--device2
3. user3--device3

我已经创建了测试但是要在同一个线程组中创建5000个用户和设备,我需要使用1个线程运行5000个迭代,每个3个请求,因为否则我有多个线程重复的相同用户名(例如3个线程) )

1. user1--device1 
2. user2--device2 
3. user3--device3 
4. user1--device1
5. user2--device2
6. user3--device3
7. user1--device1
8. user2--device2    
9. user3--device3

我的问题是:有没有办法在线程之间共享循环计数器,以便创建具有多个线程的5000个用户/设备(例如20个线程).
这对我很有帮助,因为不是等待20分钟,创建用户将是一分钟.

非常感谢!

http://pastebin.com/S1izFC9r

添加了我想要的解释例如maximun 9 devices(counter_max)但我想用3个线程运行它.我希望结果是这样的

> thread1 – user1-device1
> thread2 – user2 – device2
> thread3 – user3 – device3
> thread1 – user4 – device4
> thread2 – user5 – device5
> thread3 – user6 – device6
> thread1 – user7 – device7
> thread2 – user8 – device8
> thread3 – user9 – device9

最佳答案 我认为您可以在“全局”模式下使用
__counter()功能实现它,例如:${__ counter(FALSE,)}

> __counter()函数每次调用时都会返回递增的值
>在“全局”模式下,计数器值在线程间共享

《java – 线程之间的Jmeter线程组共享计数器》

因此,您应该能够根据需要使用尽可能多的线程,并且每个线程将使用下一个计数器值来创建具有多个线程的用户和设备.

有关使用“counter”配置元素和功能的全面信息,请参阅How to Use a Counter in a JMeter Test文章.

点赞