在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

回到顶部