Karate API:如何实现响应值的大小写不敏感匹配或多值OR验证
问题描述
我从API获取了如下JSON响应,原本写了代码验证每个响应的深层状态是否为Completed:
* match each response contains deep {Status:'Completed'}
但当状态是小写的completed时验证失败,该怎么解决?另外,如果要验证每个状态是Open或In-Progress,该怎么实现?
响应示例:
[ { "id": "1", "Status":"Completed" }, { "id": "2", "Status":"completed" }, { "id": "3", "Status":"In-Progress" }, { "id": "4", "Status":"Open" } ]
解决方案
1. 处理大小写不匹配的问题
要让验证忽略Status值的大小写,改用正则表达式的不区分大小写模式来匹配:
* match each response contains deep {Status:/Completed/i}
这里的/Completed/i是正则写法,i标记表示忽略大小写,不管是大写、小写还是混合大小写的completed都能匹配成功。
2. 验证状态为Open或In-Progress
如果要确保每个状态只能是Open或In-Progress,可以用多选项匹配规则:
* match each response contains deep {Status: 'Open' || Status: 'In-Progress'}
如果需要忽略这两个值的大小写,同样用正则的方式:
* match each response contains deep {Status:/Open/i || Status:/In-Progress/i}
内容的提问来源于stack exchange,提问作者Vinod
相关产品推荐
相关产品推荐

