我试图在bean外壳的if条件中评估一个不等于,但逻辑似乎是正确的。我没有得到预期的结果。
这是针对jmeter中的bean shell后处理器
r = ctx.getPreviousResult().getResponseCode();
if (!r.equals(200))
{
log.info("vin IS --> "+"${vin}");
p.println(r +","+ "${vin}" + ",");
}
我打算只打印200个响应代码,但它也打印200个响应代码。
在此先感谢您的帮助
答案 0 :(得分:1)
代码:
如果(!r.equals(200))
应该是:
if(!r.equals(“ 200”))
顺便说一句,您不应该再使用Beanshell了,而是按照以下方式使用JSR223测试元素+ Groovy:
答案 1 :(得分:1)
您正在将String与Integer进行比较,您需要先将其转换为Integer,例如:
r = Integer.parseInt(ctx.getPreviousResult().getResponseCode());
您要将JMeter Variables内联到脚本中,因为变量可能解析为导致编译失败或意外行为的变量,所以它不是很安全。此外,在使用Groovy的情况下,变量将只解析一次或与GString templates / compilation caching功能发生冲突。因此,请考虑更改:
log.info("vin IS --> "+"${vin}");
到
log.info("vin IS --> "+vars.get("vin"));