如何在jmeter内的多个线程组之间共享/传递变量而不使用beanshellAssert

s5a0g9ez  于 2023-02-12  发布在  Shell
关注(0)|答案(1)|浏览(123)

我声明了1个用户定义的变量(A=等待),并且我在测试计划中有2个线程组。当第一个线程组完成其执行时,我将值更改为“go”(A=go)使用beanshell后处理器。现在,在第二个线程组中,我希望(一)应取更新值(意思是“go”而不是“wait”)但是我不能在第二个线程组中选择更新的值。我没有使用任何正则表达式提取器,只需要使用和更新用户定义的变量。
我尝试了beanshell前处理器和后处理器。首先我创建了1个beanshell采样器,在其中我改变了值(vars.put(“A1”,“go”);)然后我在第一个线程组中创建了1个beanshell后处理器(${__setProperty(A,${A1})}),然后在第二个线程组中添加了BeanShell预处理器以获取值(${__property(A)})
我还使用beanshellAssert将变量传递给下一个线程组,但下一个线程组没有捕获更新后的值。

flvlnr44

flvlnr441#

如果你不想使用脚本-看看线程间通信插件
有一个示例测试计划显示了如何共享变量。
接下来请注意,从JMeter 3.1开始,建议使用JSR223测试元素和Groovy语言编写脚本,在Groovy中,您应该避免内联JMeter Functions or Variables
因此:
1.在第一线程组中:

props.put('A', 'go')

1.在第二螺纹组中:

go = props.get('A')

或者,如果您喜欢某个函数:

${__P(A,)}

演示:

相关问题