Jmeter线程组在线程之间共享计数器

Gue*_*135 6 java jmeter

我想在 jmeter 中创建一个线程组来创建用户及其具有许多(例如 5000 个)设备的设备。

我可以毫无问题地创建此测试,并且我希望用户和设备的名称按相关顺序排列。

1. user1--device1 
2. user2--device2
3. user3--device3
Run Code Online (Sandbox Code Playgroud)

我已经创建了测试,但要在同一线程组中创建 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
Run Code Online (Sandbox Code Playgroud)

我的问题是:是否有任何方法可以在线程之间共享循环计数器,以便使用多个线程(例如 20 个线程)创建 5000 个用户/设备。这对我有很大帮助,因为创建用户只需一分钟,而不是等待 20 分钟。

非常感谢!

http://pastebin.com/S1izFC9r

添加了解释,例如我想要最多 9 个设备 (counter_max),但我想用 3 个线程运行它。我希望结果是这样的

  1. 线程1--用户1-设备1
  2. 线程2--用户2--设备2
  3. 线程3--用户3--设备3
  4. 线程1--用户4--设备4
  5. 线程2--用户5--设备5
  6. 线程3--用户6--设备6
  7. 线程1--用户7--设备7
  8. 线程2--用户8--设备8
  9. 线程3--用户9--设备9

Dmi*_*i T 4

我认为你可以在“全局”模式下使用__counter()函数来实现它,例如:${__counter(FALSE,)}

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

计数器全局演示

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

有关使用“计数器”配置元素和函数的全面信息,请参阅如何在 JMeter 测试文章中使用计数器。