2011-06-23 46 views
18

我正在使用线程组数量为5的线程组与HTTP请求。Jmeter当前线程数?

在我想包括与线程数的值,例如一个参数的请求,

"pageno": ${threadno} 

我想获得像${threadno}线程编号。

我该怎么做?

回答

-2

${__threadNum}不能很好地工作孤单。

您将需要使用$ {__ eval($ {__ threadNum})}。 尝试使用此:

int threadNum=ctx.getThreadGroup().getNumThreads(); 

CTX是JmeterContext

+3

为什么你需要EVAL多少?记录的'__threadNum'工作得很好。此外,线程数与当前线程号不同。 –

13

虽然上述${__threadNum}将内JMeter的很多地方工作,你需要到别的地方使用它是不允许的,如,Pre/Post-Processors中的脚本元素。

这个答案解释了如何在jMeter的这样一个脚本中获取线程数或者线程数。

要获取当前线程的编号(在你的案例中为5),使用ctx.getThreadNum()将得到线程的编号。

要获得jMeter正在使用的线程总数,可以使用ctx.getThreadGroup().getNumThreads()ctx.getThreadGroup().getNumberOfThreads()来表示总活动线程数。

https://jmeter.apache.org/api/org/apache/jmeter/threads/JMeterContext.html#getThreadNum() https://jmeter.apache.org/api/org/apache/jmeter/threads/AbstractThreadGroup.html

+0

有没有好的理由不使用'$ {__ threadNum}'函数? –

+0

是的:至少有两个空格:a)GUI的输入框在jMeter元素内形成:有'$ {__ threadNum}'就足够了。但是b)还有脚本区域,主要是JSR223/groovy:需要编程方法'ctx.getThreadNum()'。在程序上,不用预先咀嚼的“变量”,人们几乎可以随心所欲地做出决定。 – Franta