在Jmeter中,如何使用beanshell采样器变量设置可变数量的线程?
在JMeter中,我有一个线程组,我想使用jmeter变量控制运行多少个线程。在线程组中,我将线程数设置为${numThreads}
。我有一个安装线程组,它具有一个带有以下内容的bean
shell采样器(该采样器始终在主测试线程组之前运行):
vars.put("numThreads","5");
如果我numThreads
在设置线程组中的用户定义变量config元素中进行设置,它将使用正确数量的线程。但是我想使用我在bean
shell采样器中定义的变量来控制它,但是它不起作用。我可以看到正在创建变量,并且可以在日志中打印该值,但是当我使用bean
shell采样器时,线程组不能正确创建5个线程(它创建0个线程)。我唯一能想到的是它们都创建变量,但也许用户定义的config元素会将其创建为整数类型?当我调试变量的类型时,无论它是在用户定义的parms配置中还是在bean
shell采样器中进行设置,它都将显示为字符串。
log.debug(vars.get("numThreads").getClass().getName()); // this prints java.lang.String for both
为什么线程组不能基于bean shell变量创建正确数量的线程?
回答:
好吧,我知道了。看起来变量是特定于线程的,而属性是整个测试的全局变量。因此,当我的主线程组启动时,在设置线程组中设置变量超出了范围。现在我在setupgroup
beanshell中设置属性,并在主线程组中使用以下属性:
设置线程组beanshell:props.put(“ threadCount”,“ 3”);
在主线程组中,我可以使用以下命令启动正确数量的线程:$ {__ P(threadCount)}
仍然不知道用户定义的变量config元素为何起作用-它必须生成属性,而不是变量或其他内容。
以上是 在Jmeter中,如何使用beanshell采样器变量设置可变数量的线程? 的全部内容, 来源链接: utcz.com/qa/425359.html