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

如何在Karate中用retry until等待数组指定字段变为COMPLETED

在Karate中实现重试直到指定挑战状态变为COMPLETED

因为Karate的retry until语法不支持直接使用JsonPath表达式,所以我们可以改用原生JavaScript逻辑来遍历数组、定位目标条目并判断状态,具体代码如下:

Given url BASEURL
And path '/v2/mobilebackend/v2/member/me/summary'
And param lastKnown = latest
And retry until 
"""
var instances = response.challengeInstanceSummary.challengeInstances;
for (var i = 0; i < instances.length; i++) {
  var instance = instances[i];
  if (instance.displayName === 'Downtime Measurement' && instance.challengeStatus === 'COMPLETED') {
    return true;
  }
}
return false;
"""
When method get
Then status 200

关键说明:

  • 用JS循环遍历challengeInstances数组,精准定位displayName为Downtime Measurement的条目
  • 只有当该条目的challengeStatus等于COMPLETED时,返回true终止重试;否则返回false继续重试

可选的重试配置:

如果需要自定义重试间隔和最大次数,可以在retry until前添加以下配置:

# 每次重试间隔1秒
And retry interval 1000
# 最多重试10次,防止无限循环
And retry max 10

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 04:52:09