2010-07-13 145 views
1

我想测试并发性,并可靠地复制JMeter引起我注意的问题。如何在JMeter中每N个循环增加一个计数器?

我想要做的是设置一个唯一的标识符(当前时间以毫秒为单位,附加了一个计数器)并在循环之间递增计数器,但不在线程之间递增计数器。我的想法是,我设置的线程数是在增加和使用另一个之前相同标识符的数量。

如果我有3个线程为2的循环计数我想:

1. Unique ID: <current-time-in-millis>000000 
2. Unique ID: <current-time-in-millis>000000 
3. Unique ID: <current-time-in-millis>000000 
4. Unique ID: <current-time-in-millis>000001 
5. Unique ID: <current-time-in-millis>000001 
6. Unique ID: <current-time-in-millis>000001 

我使用通量控制器递增计数器,以及似乎他们应该工作的其他几件事情尝试,但有没有运气。这似乎是JMeter应该能够做的事情。有什么办法可以获得循环次数的值吗?

回答

1

您是否尝试过使用预处理器计数器元素上的“每个用户独立的跟踪计数器”选项?

我的理解是,这应该会给你一个单独的计数器为每个线程组。

+0

谢谢!我看过这个选项,并且确定我已经尝试过了。它现在似乎很完美。 – 2010-07-15 14:52:03

+0

很高兴它的工作 - 享受! – BlackGaff 2010-07-15 20:57:37

+0

我假设$ {__ counter(TRUE,counterVar)}每当它被调用来执行增量操作时也应该如此?在第一次调用计数器之后,您可以将变量引用为$ {counterVar},而不是增加计数。随后调用w /相同的变量名将会增加它。该方法不需要计数器元素。 – David 2011-10-03 21:41:42

2

Counter解决方案?

或使用__intSum

初始化变量(例如,在 “用户自定义变量”):

Name:  | Value 
------------+--------- 
LoopCounter | 0 

使用增量在任何你需要:

${__intSum(${LoopCounter},1,LoopCounter)} 

使用:

${LoopCounter}