由于有些特殊需求需要在线程组之间调用变量,这里就总结一下几种常用方法(只是个人会的)。
在使用时要注意线程组的执行顺序,需要勾选测试计划里的独立运行每个线程组按钮。还需要注意设置全局变量的后置处理器应该是在第一个线程组(即提取局部变量的那个线程组)。
一、beanshell自带方法
props.put("变量名","值") 全局变量赋值
props.get("变量名") 获取全局变量

二、jmeter自带函数__setProperty
${__setProperty(变量名,值} 全局变量赋值

${__property(变量名)} 全局变量提取

${__P(变量名)} 等同于${__property(变量名)}

三、调用jar包里的方法
JMeterUtils.setProperty("变量名", "值") 全局变量赋值

四、使用jmeter插件
利用两个前置跟后置处理器的插件,可以使上下两个线程组传递某一个变量。
通过后置处理器把对应的一个变量值放到FIFO Queue里,然后下个线程组加上前置处理器,再从Queue里把这个变量值重新再赋值给另外一个变量名。

最后,可以通过在工作台添加Property Display元件来查看是否设置成功了全局变量,也可以直接用debugsampler来看。都是可以的。
