如何在jMeter中使用每次调用时递增的计数器?

时间:2015-11-26 00:36:02

标签: jmeter

基本上,我想在我的负载测试中有一个特定于用户的计数器(每个用户获得自己的计数器,初始化为1),但每次在测试执行期间调用它时都会递增。

换句话说,我想从我的柜台出来以下行为:

请求1:

<item position="${POSITION_CTR}"... >      //Counter is 1
<item position="${POSITION_CTR}"... >      //Counter is 2 despite same request

请求2:

<item position="${POSITION_CTR}"... >      //Counter is 3

请求3:

<item position="${POSITION_CTR}"... >      //Counter is 4

我试图使用__counter(TRUE,POSITION_CTR)函数。不幸的是,无论我多少次调用它,都会产生值“1”。我考虑使用BeanShell Post处理器以编程方式在每次请求后递增计数器值,但是然后使用计数器两次(应该是唯一的)的请求将具有相同的计数器值。

我还试图使用Counter(配置元素),但似乎与__counter()有相同的问题。任何建议都会非常感激。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用“BeanShell PostProcessor”中的__setProperty()来增加值。但要小心,它会反映在测试计划中的所有线程中。

例如,在下面的BeanShell PostProcessor中使用:

__setProperty("counter", "${__javaScript(${__property(counter)} + 1}

您也可以尝试使用var.put,如下所示:

vars.put("counter", "${__javaScript(${counter} + 1}