You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JMeter中循环执行采样器直到获取指定JSON响应结果?

JMeter实现轮询采样器直到JSON字段状态为success的方案

1. 提取响应中的polling_status字段

给需要轮询的采样器添加JSON Extractor后置处理器:

  • 右键目标采样器 → 后置处理器 → JSON Extractor
  • 配置参数:
    • 引用名称:polling_status
    • JSON Path表达式:$.data.polling_status
    • 匹配数字:1(取第一个匹配结果)
    • 缺省值:inprogress(避免提取失败时变量为空)

2. 用While Controller控制轮询循环

添加While Controller逻辑控制器,并将采样器和JSON Extractor移入其中:

  • 右键线程组 → 逻辑控制器 → While Controller
  • 设置循环条件:
    ${__jexl3("${polling_status}" != "success",)}
    
    该表达式会在polling_status不等于success时持续执行循环内的采样器。

3. 配置轮询间隔(推荐)

为避免高频请求压垮服务器,添加固定定时器:

  • 右键While Controller → 定时器 → 固定定时器
  • 设置「线程延迟(毫秒)」:例如5000(即每5秒轮询一次,可根据业务调整)

4. 添加循环终止保护(可选)

防止因异常导致无限循环,可搭配计数器设置最大轮询次数:

  • 右键While Controller → 配置元件 → 计数器
    • 引用名称:polling_count
    • 起始值:1,递增:1,最大值:20(最多轮询20次)
  • 修改While Controller的条件为:
    ${__jexl3("${polling_status}" != "success" && ${polling_count} < 21,)}
    

5. 验证执行逻辑

运行测试计划后,通过「查看结果树」确认:

  • 每次采样后polling_status变量会被更新
  • 当polling_status变为success时,循环终止,自动执行后续采样器

内容的提问来源于stack exchange,提问作者karthikeyan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 20:50:28