Beanshell函数在if / else评估之前被调用

时间:2018-07-27 21:20:37

标签: jmeter

我创建了2个BeanShell函数myFoo1和myFoo2。

第一个函数必须在特定条件下执行,第二个函数应在不同条件下执行

问题在于我的JSR223Post处理器或BeanPost处理器

String code = ctx.getPreviousResult().getResponseCode();
if (code.contains("200") && (vars.get("abc1") != "Howdee")) {
    ${__BeanShell(myFoo1("print this"))}

}
else {
    ${__BeanShell(myFoo2("print this"))}
}

问题是在if / else评估之前调用beanShell函数myFoo1和myFoo2。

换句话说,myFoo1和myFoo2都被一个接一个地调用,并且如果/否则永远不会起作用,因此看起来在执行任何求值之前就执行了Bean函数调用。 我该如何解决?

1 个答案:

答案 0 :(得分:0)

从脚本中删除${__BeanShell(,然后直接以myFoo2("print this)的形式调用它:

String code = ctx.getPreviousResult().getResponseCode();
if (code.contains("200") && (vars.get("abc1") != "Howdee")) {
    myFoo1("print this);

}
else {
    myFoo2("print this);
}