Karate框架:如何存储contains检查结果或实现多条件contains匹配?
问题解答
1. 将contains检查的布尔结果存入变量
可以实现,在Karate中需借助karate.match()方法获取匹配结果的布尔值,示例代码如下:
* def expected = """ [ {name: "name1", group: "groupX" }, {name: "name2", group: "groupY" } ] """ * def myVariable = karate.match(foo.response contains expected).pass
karate.match()会返回包含pass属性的对象,该属性值即为匹配结果的布尔值(true代表匹配成功,false代表匹配失败)。
2. 在match语句中实现匹配"this"或"that"的逻辑
可以通过两种方式实现:
方式一:使用any of简洁语法
这是Karate推荐的写法,直接指定多个匹配选项:
* def possibility1 = [{name: "name1", group: "groupX"}, {name: "name2", group: "groupY"}] * def possibility2 = [{name: "name1", group: "groupY"}, {name: "name2", group: "groupX"}] * match foo.response contains any of [possibility1, possibility2]
方式二:结合karate.match()与逻辑运算符
若需要更灵活的逻辑判断,可以分别获取两个匹配结果,再通过布尔运算符组合:
* def possibility1 = [{name: "name1", group: "groupX"}, {name: "name2", group: "groupY"}] * def possibility2 = [{name: "name1", group: "groupY"}, {name: "name2", group: "groupX"}] * def match1 = karate.match(foo.response contains possibility1).pass * def match2 = karate.match(foo.response contains possibility2).pass * assert match1 || match2
内容的提问来源于stack exchange,提问作者John W
相关产品推荐
相关产品推荐

