JMeter:响应断言失败时跳转至Loop Controller继续循环至指定次数
实现断言失败后跳转至Loop Controller循环的方法
核心思路
借助JMeter的Test Action Sampler和If Controller,结合断言生成的结果变量,实现断言失败时直接跳转到Loop Controller的下一次循环,直到达到预设的最大循环次数。
具体配置步骤
假设你的测试结构是:Loop Controller → select category请求 → 响应断言,按以下步骤调整:
给响应断言设置引用变量
- 选中「select category」的响应断言,在面板的「引用名称」输入框中填写变量名(比如
category_assert_ok)。断言成功时该变量值为true,失败时为false。
- 选中「select category」的响应断言,在面板的「引用名称」输入框中填写变量名(比如
添加If Controller到请求之后
- 在「select category」请求下方添加If Controller,设置条件为:
${__jexl3("${category_assert_ok}" == "false",)},用于判断断言是否失败。
- 在「select category」请求下方添加If Controller,设置条件为:
在If Controller内添加Test Action Sampler
- 在If Controller中添加Test Action Sampler,将「Action」设置为「Go to next iteration of current loop」。这个动作会让JMeter直接跳转到当前Loop Controller的下一次循环开头,跳过后续步骤。
确认Loop Controller的循环次数
- 给Loop Controller设置好需要的最大循环次数(比如
3),即使每次断言都失败,循环也会在达到次数后停止。
- 给Loop Controller设置好需要的最大循环次数(比如
注意事项
- 确保If Controller的「Interpret Condition as Variable Expression?」选项处于勾选状态,否则条件表达式无法正确解析。
- 可添加Debug Sampler查看
category_assert_ok变量的值,验证断言结果是否正确传递。
内容的提问来源于stack exchange,提问作者user3400540
相关产品推荐
相关产品推荐

