39
votes

I am using a Thread Group with Number Of Threads = 5 with an HTTP request.

In the request I want to include a parameter with the value of the thread number, e.g.,

"pageno": ${threadno}

I want to get the thread number like ${threadno}.

How can I do that?

4

4 Answers

71
votes

The thread number is available as:

${__threadNum}

See: functions reference

34
votes

While the above-mentioned ${__threadNum} will work in many places within jMeter, you'll need to use something else where it is not allowed, e.g., script elements within Pre/Post-Processors.

This answer explains how to get thread number or count within such a script in jMeter.

To get the number of the current thread (out of 5 in your case) use ctx.getThreadNum() which will get the number of the thread.

To get the total number of threads being used by jMeter you can use ctx.getThreadGroup().getNumThreads() or ctx.getThreadGroup().getNumberOfThreads() for total active threads.

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

4
votes

For those looking for the number of active threads in the entire test plan, not just a particular ThreadGroup.

${__groovy(org.apache.jmeter.threads.JMeterContextService.getNumberOfThreads())}
-2
votes

${__threadNum} does not work well alone.

You will need use ${__eval(${__threadNum})}. Try to use this:

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

ctx is from JmeterContext