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

Karate框架Schema多值校验:验证city.area.status为ACTIVE/INACTIVE

解决方案

没问题,Karate内置了专门处理枚举值校验的语法,完全能满足你的需求,不用依赖#string类型。最直接的方式是在Schema里用#in操作符来限定city.area.status的有效值范围。

步骤1:修改你的Schema.json

把status字段的固定值"ACTIVE"替换为#in ['ACTIVE', 'INACTIVE'],这样就能校验该字段只能是这两个值中的一个:

{
  "name": "#string",
  "city":{
    "area": {
      "type": "#string",
      "status": "#in ['ACTIVE', 'INACTIVE']"
    }
  }
}

步骤2:使用修改后的Schema进行校验

保持你原来的校验逻辑不变,现在match each语句会自动校验city.area.status是否在指定的有效值列表里:

* def Response = call read('testResponse.json')
* def objectCatSchema = read('citySchema.json')
* match each Response.hits.hits[*]._source == objectCatSchema

额外说明

如果之后需要扩展有效值,只需要在#in的数组里添加新值即可。如果需要更复杂的校验逻辑(比如大小写不敏感匹配),也可以自定义校验函数,但对于你的需求来说,#in是最简单高效的方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:11:04