Jmeter中有3个方法用来获取属性值:
props.getProperty(propName),
${__property(propName)}
${__P(propName)}
试验了下,在JSR223 Sampler中使用以上3个方法获取属性值的情况
返回结果如下:
这里看到,在jmeter属性列表里没有'password'这个属性时,使用${__property('password')}去获取属性值,因为属性不存在,返回属性名;
当用props.setProperty()方法设置好'password'的值后,再用${__property('password')}方法去获取属性值,结果返回password这个键值,并没有返回对应的属性值。
接下来做如下设置:
返回结果:
这里可以看到使用${__P('password')}方式去获取属性值是行得通的。
总结:{__property()}在JSR223 Sampler中获取属性值行不通,用props.getProperty()最稳妥,其次是{__P()}方法也行得通。为什么会这样?