简单点
${__setProperty(property name, property value, True/False)};
该函数用来给JMeter属性设置值,默认返回值为空字符串,所以函数在任何地方被调用都是有效的
Property Name
:要设置的属性名,必填Property Value
:要设置的属性的值,必填True/False
:原值是否要返回,非必填;当设置为“true”,将返回原始值
作用域
:跨线程组调用,可以在任意地方调用,但不能跟在import xxx后面
注
:该函数的参数无需使用双引号引用
${__P(property name, default value)}
属性函数,为用户在命令行使用属性定义。它不像__property函数那样有可以存值的变量,并且如果没有提供默认值,侧假定默认给1,原因是它对常见的测试变量(如循环、线程数、ramp up等)有效
Property Name
:要检索的属性名,必要属性
Default Value
:默认值,不填的话会默认设置1,非必要属性
作用域
:可跨线程使用
注
:因为该函数只允许使用两个参数,且必须使用逗号分隔,如果在第二个参数值中也存在逗号,需要使用“\”反斜线转义,否则函数无效
简单来说就是:
A线程中接口执行后通过后置处理器中的提取器将该接口的返回值提取出来,再使用后置处理器中的Bean Shell后置处理器
将提取的参数设置到jmeter属性中,如:
${__setProperty(msg, ${msg}, true)};
然后B线程中在想引用这个值的地方通过${__P(property name, default value)}
这个属性函数提取出来,如:
${__P(msg,)}
简单来说就是A线程中设置,B线程中引用,它们的作用域都是跨线程使用,完事儿!!!