在jmeter中,设置属性值分为1)在脚本中设置 2)在组件上设置,不同的地方要使用不同的方法去设置,否则不会生效。
一、通常,在脚本中要使用props.setProperty(propName, propValue), props.put(propName, propValue) 方法来设置,具体是在BeanShell 或JSR223脚本中使用。
props.setProperty("prop1", "value1");
def val = props.getProperty("prop1");
log.info("property prop1 value: " + val);
这里,要注意的是,这两个方法里的属性值必须是字符串类型,否则会报错。这两个方法不能在jmeter组件中直接使用,只能在jmeter脚本组件:Beanshell,JSR223中使用。
二、如果要在jmeter普通组件中设置属性,要使用jmeter内置函数{__setProperty(propName,propValue, 是否返回原始值)},然后要在组件中获取属性值要用函数{__P(propName)}或${__property(propName)}来获取


换成{__P("login_name")}, 读取到的属性值为


这里要注意的是,{__P()}, {__property()}两个函数里的属性名都要用双引号引起来,否则也会报错。


这里得到的是1,是因为jmeter对找不到属性的情况,都会默认返回一个值1。
三、设置好属性后,怎么获取属性值
在脚本中,使用props.get("属性名") 或props.getProperty("属性名");
在jmeter组件中,使用{__P("属性名")}, {__property("属性名")}
这虽然是jmeter一个很小的知识点,但是也要搞清楚,记牢它。
总结:jmeter中,有关属性的操作分为在jmeter组件和在jmeter脚本组件上,对于前者要用jmeter的内置函数{__setProperty(propName, propValue)}, 或者用props.setProperty(propName,propValue), props.put(propName, propValue), 获取也分两类,在脚本中用props.get("属性名"), props.getProperty("属性名"), 在jmeter组件中,用{__P("属性名")}, ${__property("属性名")}。即一个用内置函数,一个用方法。jmeter的props.setProperty()本质就是java方法。所以只能用在脚本组件中。