如何在JMeter 5.2.1中参数化线程数
我有一个JMeter 5.2.1项目,在安装线程中,我生成的属性名为如何在JMeter 5.2.1中参数化线程数,jmeter,Jmeter,我有一个JMeter 5.2.1项目,在安装线程中,我生成的属性名为threadgroupname1numberofthreads,threadgroupname2numberofthreads,等等,其值表示整数 现在,我希望访问名为ThreadGroupName1、ThreadGroupName2等线程组中的这些属性,以参数化线程数。我尝试了类似于${props.get(threadName+“-NumberOfThreads”)}的方法,但由于threadName的计算结果为standar
threadgroupname1numberofthreads
,threadgroupname2numberofthreads
,等等,其值表示整数
现在,我希望访问名为ThreadGroupName1
、ThreadGroupName2
等线程组中的这些属性,以参数化线程数。我尝试了类似于${props.get(threadName+“-NumberOfThreads”)}
的方法,但由于threadName
的计算结果为standardjmeterengine
而失败
另外,我尝试使用ctx
但是ctx.getThread()
和ctx.getThreadGroup()
但是它们的计算结果为null
到目前为止,对我来说“有效”的是${\uuujexl3(props.get(“threadgroupname1numberofthreads”)}
,但我希望它由线程组的名称参数化
有可能这样做吗
这是threadName
返回的standardjmeterengine
错误吗
更新:事实上,提供参数化线程数的最简单的“解决方案”是${p(threadgroupname1numberofthreads)}
,我想要的是生成这个键threadgroupname1numberofthreads
,类似于${MyCurrentGroupName}-NumberOfThreads
,有效地提供了一种具有抽象方法的方法,如
int GetNumberOfThreads(string threadGroupName)
{
return properties.get(threadGroupName + "-NumberOfThreads";
}
类似地,我希望在恒定吞吐量计时器中使用此模式以及另一个前缀,如-Rpm
您可以使用的getThreadNum
获取线程数(增量,因为它以0开头)
我不认为您可以在的“线程数”字段中使用任何线程,所以这不是您可以通过UI执行的操作。如果你相信这是每个人都需要的,你可以考虑提高一个 作为一种解决方法,您可以
${__groovy(ctx.getThreadNum() == 0 && vars.getIteration() == 1,)}
这样,每个线程组通常以1个线程开始,但是该线程将读取您之前定义的属性,并根据需要添加尽可能多的线程 你试过我的解决方案了吗?@user7294900,是的,谢谢你,但它不起作用,或者我想我无法理解。我会把问题更新得更清楚。@user7294900,我明白你的意思了。我想要当前的线程组名称;在索引上传递信息会很麻烦。无论如何,
ctx.getThreadNum()
返回0。我想当我尝试使用它时,ctx
尚未创建。谢谢,我认为它必须工作,所以我接受你的答案。但因为我需要在每个组中添加元素,我认为这对我来说太过分了。我将直接使用这些值。我将添加一个增强请求。
${__groovy(ctx.getThreadNum() == 0 && vars.getIteration() == 1,)}
SampleResult.setIgnore()
2.upto(props.get(ctx.getThreadGroup().getName() + '-NumberOfThreads') as int, { ctx.getThreadGroup().addNewThread(0, ctx.getEngine()) })