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"
如有必要,您可能希望为轮询请求添加一个计时器
希望对您有所帮助!
- 您的正则表达式提取器正在应用于 两个 请求,您可能希望将其移动为其中一个请求的子项,请参阅 JMeter Scoping Rules - The Ultimate Guide 文章了解更多详情
- 如果您在 JSON format it makes more sense to use JSON Extractor
中收到回复
如果您需要重复请求直到它提供预期的响应:
- 将它放在Loop Controller 下并将循环次数设置为您想要的任何最大尝试次数。勾选
infinite
或输入 -1
如果你想永远循环
- 添加 If Controller 并将 __jexl3() expression 如
${__jexl3(${Status}==0 && ${Code}==15,)}
放在那里
- 添加 Flow Control Action 采样器作为 If 控制器的子级并将其设置为
Break Current Loop
我有一个 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"
如有必要,您可能希望为轮询请求添加一个计时器
希望对您有所帮助!
- 您的正则表达式提取器正在应用于 两个 请求,您可能希望将其移动为其中一个请求的子项,请参阅 JMeter Scoping Rules - The Ultimate Guide 文章了解更多详情
- 如果您在 JSON format it makes more sense to use JSON Extractor 中收到回复
如果您需要重复请求直到它提供预期的响应:
- 将它放在Loop Controller 下并将循环次数设置为您想要的任何最大尝试次数。勾选
infinite
或输入-1
如果你想永远循环 - 添加 If Controller 并将 __jexl3() expression 如
${__jexl3(${Status}==0 && ${Code}==15,)}
放在那里 - 添加 Flow Control Action 采样器作为 If 控制器的子级并将其设置为
Break Current Loop
- 将它放在Loop Controller 下并将循环次数设置为您想要的任何最大尝试次数。勾选