Re 运行 在 jmeter 中使用 IF 控制器的请求

Re Running a request in jmeter using IF controller

我有一个 http 请求,如果代码执行正确,它的响应会给我以下信息: "Status":“0”和"Code":“15” else "Status" : "1" 和 "Code": "", 然后 重新运行上述请求。如果不是"Status":"0"和"Code":"15",那么应该停止重新运行上面的getSubmission Data请求,执行下一个请求。

如何使用 if 控制器?

这需要一段时间控制器

虽然控制器基本上检查条件直到满足,然后让线程移动到后续步骤

我的测试计划建议

将 HTTP 请求放在 while 循环控制器的外部和内部

使用正则表达式提取器关联 "Status":

下面提供 while 控制器表达式

当你运行测试时,直到status_C变为0,while控制器会一直轮询那个请求。您可以包含其他条件语句,包括更多变量,例如 "Code"

如有必要,您可能希望为轮询请求添加一个计时器


希望对您有所帮助!

  1. 您的正则表达式提取器正在应用于 两个 请求,您可能希望将其移动为其中一个请求的子项,请参阅 JMeter Scoping Rules - The Ultimate Guide 文章了解更多详情
  2. 如果您在 JSON format it makes more sense to use JSON Extractor
  3. 中收到回复
  4. 如果您需要重复请求直到它提供预期的响应:

    • 将它放在Loop Controller 下并将循环次数设置为您想要的任何最大尝试次数。勾选 infinite 或输入 -1 如果你想永远循环
    • 添加 If Controller 并将 __jexl3() expression${__jexl3(${Status}==0 && ${Code}==15,)} 放在那里
    • 添加 Flow Control Action 采样器作为 If 控制器的子级并将其设置为 Break Current Loop