我正在运行JMeter beanshell采样器测试,之后我有一个if控制器,如果最后一个JMeter样本没问题就应该运行。
我有这个工作,但是,我必须确保如果第一次测试失败,则需要将其更改为pass但不会继续使用if控制器。
我尝试在测试的响应断言中勾选忽略状态复选框,并添加一个BeanShell PostProcessor,将先前的测试响应更改为OK。这些不是选项,因为它会导致继续使用if控制器。
所以: - 如果测试通过继续,如果控制器 - 完成 - 如果测试失败,则更改为pass但跳过控制器
关于如何实现这一目标的任何建议?
由于
答案 0 :(得分:2)
我建议您按如下方式设计测试:
添加Counter配置元素并将其配置如下:
1
1
N
添加Beanshell PostProcessor作为第一个测试的子项,并将下一个代码放入其“脚本”区域
int test = Integer.parseInt(vars.get("N"));
if (test == 1 && !prev.isSuccessful()) {
prev.setSuccessful(true);
}
在第一次测试后添加如果控制器并使用以下条件:
${JMeterThread.last_sample_ok} && "${N}" != 1
所以
N
如果符合以下条件,Controller将执行嵌套采样器:
有关正确条件执行JMeter采样器的更多信息,请参阅How to use JMeter's 'IF' Controller and get Pie指南。
答案 1 :(得分:0)
您可以定义一个单独的变量来控制if控制器,或者在if控制器的条件被评估之后将变量从失败中更改为传递。