空手道 DSL - 使用重试直到检查数组,直到所有项目中都存在特定的键值对[重复]
Posted
技术标签:
【中文标题】空手道 DSL - 使用重试直到检查数组,直到所有项目中都存在特定的键值对[重复]【英文标题】:Karate DSL - Using retry until to check an array until a specific key-value pair is present in all items [duplicate] 【发布时间】:2021-11-12 06:59:42 【问题描述】:所以我有一个结构与下面的示例类似的响应。 Key2 最终将更改为一个值,这意味着我的测试可以继续,所以我想通过使用 retry until 确保 Key2 的所有值最终都是“测试”。我尝试按照文档进行操作,但运气不佳。
"Array": [
"Key1": "Value1",
"Key2": "Test"
,
"Key1": "Value1",
"Key2": "Test"
]
任何帮助都会很棒。谢谢。
解决方案:
And retry until karate.match("each response.Array contains Key2: 'Test' ").pass
【问题讨论】:
下一次,请尊重那些试图帮助您并使您的 JSON 格式正确且有效的人。现在不是。 【参考方案1】:试试这个,了解它的工作原理,然后你就会知道该怎么做:
* def response =
"""
"Array": [
"Key1": "Value1",
"Key2": "Test"
,
"Key1": "Value1",
"Key2": "Test"
]
"""
* def result = karate.match("each response..Key2 == 'Test'")
* assert result.pass
【讨论】:
感谢您的评论。首先为我的格式错误的 json 道歉。 response..Key2 也会捡起埋在树里的任何钥匙,对吧?我有相同的键嵌套更深,代表不同的东西,所以理想情况下我想忽略它,只检查 Array[*].Key2 级别的键。 @SDewar 试试看。然后根据需要阅读文档,搜索“json path” 干杯。使以下工作可靠。 - 然后重试直到 karate.match("each response.Array contains Key2: 'Test' ").pass - 以防万一其他人遇到同样的问题。以上是关于空手道 DSL - 使用重试直到检查数组,直到所有项目中都存在特定的键值对[重复]的主要内容,如果未能解决你的问题,请参考以下文章
空手道 DSL 框架是不是能够将 POST 请求作为 url 编码格式传递?
RxSwift - 使用 maxCount 重试网络请求直到成功