我在Jmeter写了一个脚本如下:
vars.put("status","0");
if(vars.get("status") == "1"){
__setProperty(totalAmount, ""+ (Integer.parseInt(${__property(totalAmount)}) + 150))};
}
else{
AssertionResult.setFailureMessage("incorrect status");
AssertionResult.setFailure(true);
}
totalAmount是全局变量。即使status设置为0,它也会将总量增加150。 可能是什么问题?请帮忙。我是Jmeter&的新手。 Groovy的。
答案 0 :(得分:1)
不要在Groovy脚本中直接使用JMeter Functions and/or Variables:
所以请将您的代码更新为:
vars.put("status","0");
if(vars.get("status") == "1"){
props.put(totalAmount, (props.get('totalAmount') as int) + 150)
}
else{
AssertionResult.setFailureMessage("incorrect status");
AssertionResult.setFailure(true);
}
整个JVM的JMeter属性为全局,因此如果您曾设置该属性 - 它将具有该值,直到您更新它或重新启动JMeter。因此,如果要开始“清理”,则需要将属性值设置为零,如:
props.put('totalAmount', '0')
或完全删除它:
props.remove('totalAmount')
有关在JMeter中使用Groovy脚本的更多信息,请参阅Apache Groovy - Why and How You Should Use It文章。