我想在 jmeter 中创建一个线程组来创建具有许多(例如 5000 个)设备的用户及其设备。
创建此测试我没有问题,我希望用户名和设备名按相关顺序排列。
1. user1--device1
2. user2--device2
3. user3--device3
我已经创建了测试,但要在同一个线程组中创建 5000 个用户和设备,我需要运行 5000 次迭代,每次迭代 3 个请求,使用 1 个线程,因为否则我有多个线程重复相同的用户名(例如有 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
我的问题是:是否有任何方法可以在线程之间共享循环计数器,以便创建具有多个线程(例如 20 个线程)的 5000 个用户/设备。 这将对我有很大帮助,因为创建用户只需一分钟,而不是等待 20 分钟。
非常感谢!
添加说明 例如我想要最多 9 个设备 (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()
函数在每次被调用时返回增加的值- 在“全局”模式下,计数器值在线程间共享
因此您应该能够根据需要使用尽可能多的线程,并且每个线程将使用下一个计数器值来创建具有多线程的用户和设备。
参见 How to Use a Counter in a JMeter Test有关使用“counter”配置元素和函数的综合信息的文章。
关于java - Jmeter线程组线程间共享计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38934550/