设置Jmeter全局javascript对象
我有一个简单的目标:设置Jmeter全局javascript对象,javascript,jmeter,Javascript,Jmeter,我有一个简单的目标: var apple = { type: "macintosh", color: "red", getInfo: function(int){ return "test" + int; } } 在Jmeter中,我想将这个对象放入一个全局变量中,该变量允许我访问这个对象 我试过: vars.putObject(“测试”,苹果)(在预处理器中,因此在所有断言之前) var test=vars.getObject(“test”)(
var apple = {
type: "macintosh",
color: "red",
getInfo: function(int){
return "test" + int;
}
}
在Jmeter中,我想将这个对象放入一个全局变量中,该变量允许我访问这个对象
我试过:
vars.putObject(“测试”,苹果)代码>(在预处理器中,因此在所有断言之前)
var test=vars.getObject(“test”)代码>(在所有断言中)
但函数似乎是以字符串形式铸造的,因此我不能在断言中使用它
如何做到这一点?在JMeter中,您可以使用Java语言添加对象
public class apple {
String type = "macintosh";
String color = "red";
public String getInfo(){
return "test";
}
};
var a = new apple();
vars.putObject("a",a);
稍后再获取并使用其方法:
var a = vars.getObject("a");
log.info(a.getInfo());
你也可以
< p>如果你正在寻找一个“全局”的解决方案,你需要考虑JMeTm属性而不是JMUM变量,以使用<代码> PROP> <代码>速记,而不是<代码> VARS。根据用户手册章节:
get()和put()方法只支持带有字符串值的变量,但也有getObject()和putObject()方法可用于任意对象。JMeter变量是线程的本地变量,但可由所有测试元素(不仅仅是Beanshell)使用。
如果需要在线程之间共享变量,则可以使用JMeter属性
例如,在一个测试元素中:
props.put('test', apple)
在另一个线程组中(也可以在另一个线程组中)
还要注意,由于Groovy的性能比其他脚本选项要好得多,请查看指南以了解更多详细信息
var apple = props.get('test')
log.info(apple.getInfo(1))