一、线程组1提取要传递的值
设置全局变量,变量值在函数助手setProperty中设置:
添加BeanShell取样器
BeanShell取样器中设置要使用的全局变量:
二、线程组2 获取全局变量
通过函数助手property获取:
获取的全局变量,写入请求中
三、总结:
在JMeter中跨越线程组传值主要有以下几种方法:
-
使用属性(Property):
- 在源线程组中,使用BeanShell后置处理器或JSR223后置处理器设置属性。例如,使用
props.put("parameterName", "parameterValue");
来设置属性。 - 在目标线程组中,使用
${__P(parameterName)}
来获取属性值并使用。
- 在源线程组中,使用BeanShell后置处理器或JSR223后置处理器设置属性。例如,使用
-
使用JMeter变量(借助BeanShell共享变量):
- 在源线程组中,创建一个BeanShell Sampler或在取样器的BeanShell后置处理器中定义一个全局变量,例如
JMeterContextService.getContext().getVariables().put("sharedVariable", "value");
。 - 在目标线程组中,使用相同的BeanShell Sampler或后置处理器获取这个共享变量,例如
String sharedValue = JMeterContextService.getContext().getVariables().get("sharedVariable");
。
- 在源线程组中,创建一个BeanShell Sampler或在取样器的BeanShell后置处理器中定义一个全局变量,例如
-
使用JSON提取器和BeanShell Sampler:
- 在源线程组中,使用JSON提取器提取需要的值。
- 使用BeanShell Sampler将提取的值保存为JMeter属性,例如
${__setProperty(P_city,${city},)}
。 - 在目标线程组中,使用
${__property(P_city,,)}
来获取属性值。
-
使用正则表达式提取器和BeanShell PostProcessor:
- 在源线程组中,使用正则表达式提取器提取需要的值。
- 使用BeanShell PostProcessor调用
__setProperty
函数设置属性,例如${__setProperty(requesttoken,${token},)}
。 - 在目标线程组中,使用
${__P(requesttoken)}
来获取属性值。
这些方法可以帮助你在JMeter的不同线程组之间传递参数,确保测试的连贯性和数据的准确性。
标签:__,组中,线程,BeanShell,使用,Jmeter,传值,属性 From: https://blog.csdn.net/Queen077/article/details/143628139