【发布时间】:2011-09-21 02:03:07
【问题描述】:
我在 HTTP 请求中使用线程数 = 5 的线程组。
在请求中我想包含一个带有线程号值的参数,例如,
"pageno": ${threadno}
我想得到像${threadno}这样的线程号。
我该怎么做?
【问题讨论】:
标签: multithreading jmeter
我在 HTTP 请求中使用线程数 = 5 的线程组。
在请求中我想包含一个带有线程号值的参数,例如,
"pageno": ${threadno}
我想得到像${threadno}这样的线程号。
我该怎么做?
【问题讨论】:
标签: multithreading jmeter
【讨论】:
虽然上述${__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
【讨论】:
${__threadNum} 函数?
${__threadNum} 就足够了,是的。但是 b) 还有脚本区域,主要是 JSR223/groovy:需要编程方法 ctx.getThreadNum()。而不是预先咀嚼的“变量”,以编程方式,一个人有权做几乎任何事情。
log.info("thread(${__threadNum})")
对于那些在整个测试计划中寻找活动线程数的人,而不仅仅是特定的线程组。
${__groovy(org.apache.jmeter.threads.JMeterContextService.getNumberOfThreads())}
【讨论】:
${__threadNum} 单独工作不好。
您将需要使用 ${__eval(${__threadNum})}。 尝试使用这个:
int threadNum=ctx.getThreadGroup().getNumThreads();
ctx 来自 JmeterContext
【讨论】:
__threadNum 作为记录工作得很好。另外,线程数与当前线程数不一样。