Jmeter跨线程组传递变量

时间:2021-10-11 19:54:11

跨线程组传递变量只能通过属性来传递,并且属性只能传字符串变量。

如果想传数组变量,需要先将数组转化为字符串,在下一个线程组再转化为数组。

【注意】在使用时要注意线程组的执行顺序。需要勾选测试计划里的独立运行每个线程组按钮。

一、beanshell自带方法

props.put("变量名","值") 全局变量赋值
props.get("变量名") 获取全局变量
这里简单介绍一个例子,从线程组1里传递给线程组2 字符串:hao123。

 1)使用正则提取器提取出hao123,并且引用变量名为id。

Jmeter跨线程组传递变量

2)使用beanshell后置处理器,获取id,使用props.put()并且把id保存为一个全局变量,变量的名称为"idname",即jmeter的属性。

Jmeter跨线程组传递变量

 3)案例:如图使用第三种方法在下一个线程组2使用beanshell内置对象调用:${__BeanShell(props.get("idname"),)}

方法1:${__P(idname,)}

方法2:${__property(idname,,)}

方法3:${__BeanShell(props.get("idname"),)}

Jmeter跨线程组传递变量

4)查看结果树,取样器结果为hao123,调用成功。

Jmeter跨线程组传递变量

二、beanshell自带方法

jmeter自带函数__setProperty
${__setProperty(变量名,值} 全局变量赋值
在下个线程组里调用方法和上面那个方法一致。
Jmeter跨线程组传递变量

三、调用java方法

JMeterUtils.setProperty("变量名", "值") 全局变量赋值

Jmeter跨线程组传递变量