我正在使用JMeter 3.2,我有一个beanshell后处理器,其中它在正则表达式(来自先前的HTTP请求)${FollowupBDays}
中向外面添加一个数字。这是后处理器的片段:
int FollowupBDays1 = Integer.parseInt(vars.get("FollowupBDays"))+4;
基本上,正则表达式${FollowupBDays}
返回一个整数值Ex:3
,在BeanShell后处理器中,我使用正则表达式将数字添加到正则表达式输出中,即3+4
从后处理器上面一行。如果正则表达式返回空值,即正则表达式的输出返回值
,因为后处理器在尝试添加 + 4
时返回错误,我想跳过BeanShell后处理器。 / p>
您是否可以让我知道在正则表达式${FollowupBDays}
返回输出
时可以添加到If控制器以跳过BeanSshell后处理器的条件
我通过将if控制器添加到BeanShell后处理器来尝试以下条件,并且该条件始终跳过后处理器,而不管正则表达式返回的值如何,即当值是3
或{{1时}}:
答案 0 :(得分:0)
不可能为后处理器设置任何控制器,包括If Controller。
但是,在后处理器本身的代码中,变量不是整数时,您应该处理这种情况。最好的方法是捕获异常:
int FollowupBDays1 = -1;
try {
FollowupBDays1 = Integer.parseInt(vars.get("FollowupBDays"))+4;
} catch(NumberFormatException e) { /* remains -1 */ }
或者,您可以在分配变量之前检查在If控制器中尝试使用的条件:
String FollowupBDaysAsString = vars.get("FollowupBDays");
if(!" ".equals(FollowupBDaysAsString))
{
int FollowupBDays1 = Integer.parseInt(FollowupBDaysAsString)+4;
}