JMeter中如何等待获取processStatus=Published的指定响应
JMeter文件上传后等待processStatus变为Published的实现方案
前置配置修正
先确认你的JSON Extractor配置存在一处细节问题:原JSON路径$.A.B.processStatus因B是数组类型,会返回数组而非单个字符串值,需调整为:
$.A.B[0].processStatus
同时确保JSON Extractor的引用名称设为processStatus(后续脚本将基于此变量名取值),匹配数字设为1(取第一个匹配项)。
While Controller的Groovy循环脚本
在While Controller的「条件」输入框中,使用以下Groovy脚本实现循环轮询直到状态为Published,同时添加超时避免无限循环:
// 定义超时阈值(单位:毫秒,示例为5分钟) def timeout = 300000 // 记录循环开始时间 def startTime = System.currentTimeMillis() // 获取JSON Extractor提取的最新状态值 def currentStatus = vars.get("processStatus") // 循环条件:状态未达标 且 未超时 return currentStatus != "Published" && (System.currentTimeMillis() - startTime) < timeout
关键注意事项
- 在While Controller内部必须添加HTTP请求,用于轮询接口获取最新状态,每次请求后JSON Extractor会自动更新
processStatus变量值 - 可在HTTP请求前添加Constant Timer,设置2000-5000ms的等待间隔,避免高频请求压垮服务器
- 若你在JSON Extractor中使用了其他变量名,需将脚本中的
processStatus替换为实际变量名
内容的提问来源于stack exchange,提问作者Smh
相关产品推荐
相关产品推荐

