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

如何在jMeter中使用每次调用时递增的计数器?,jmeter,Jmeter,本质上,我希望在我的负载测试中有一个特定于用户的计数器(每个用户都有自己的计数器,初始化为1),但在整个测试执行过程中每次调用时都会递增 换言之,我希望以下行为远离我的柜台: 请求1: <item position="${POSITION_CTR}"... > //Counter is 1 <item position="${POSITION_CTR}"... > //Counter is 2 despite same request //计数器为1

本质上,我希望在我的负载测试中有一个特定于用户的计数器(每个用户都有自己的计数器,初始化为1),但在整个测试执行过程中每次调用时都会递增

换言之,我希望以下行为远离我的柜台:

请求1:

<item position="${POSITION_CTR}"... >      //Counter is 1
<item position="${POSITION_CTR}"... >      //Counter is 2 despite same request
//计数器为1
//尽管有同样的要求,计数器还是2
请求2:

<item position="${POSITION_CTR}"... >      //Counter is 3
//计数器是3
请求3:

<item position="${POSITION_CTR}"... >      //Counter is 4
//计数器是4
我已尝试使用uu计数器(TRUE,POSITION_CTR)功能。不幸的是,无论我调用它多少次,这都会导致值为“1”。我考虑过在每个请求之后使用BeanShell后处理器以编程方式递增计数器值,但是使用计数器两次(应该是唯一的)的请求将具有相同的计数器值


我还尝试使用计数器(Config元素),但似乎与_Counter()有相同的问题。如果您有任何建议,我们将不胜感激。

您可以尝试使用“BeanShell后处理器”中的_setProperty()来增加值。但要小心,它将反映到测试计划中的所有线程

例如,在BeanShell后处理器中使用以下命令:

__setProperty("counter", "${__javaScript(${__property(counter)} + 1}
您还可以尝试使用var.put,如下所示:

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

谢谢你的回复。根据jMeter文档:属性与变量不同。变量是线程的局部变量;属性对于所有线程都是公共的,需要使用_P或_属性函数来引用。因此,我认为属性不是适合我的用例的正确方法。我需要每个用户都有自己的计数器。正如我在最初的文章中提到的,使用beanshell后处理器的问题是,如果我在一个请求中使用计数器变量两次或多次,计数器将只增加一次,并且计数器在所有情况下都是相同的。