Karate 空手道:匹配JSON数组响应,其中每个命中的数组顺序不同
我有一个场景,其中响应数组的一部分是来自子API的响应。 子API响应如下所示,但没有具体顺序。我需要检查父API中是否存在子API响应(与子API中元素的顺序无关)。我遵循这个思路,但在我的案例中它不起作用Karate 空手道:匹配JSON数组响应,其中每个命中的数组顺序不同,karate,Karate,我有一个场景,其中响应数组的一部分是来自子API的响应。 子API响应如下所示,但没有具体顺序。我需要检查父API中是否存在子API响应(与子API中元素的顺序无关)。我遵循这个思路,但在我的案例中它不起作用 * def response1 = """ { "array1": [ { "element": { "id": "A1", "array11": [
* def response1 =
"""
{
"array1": [
{
"element": {
"id": "A1",
"array11": [
{
"uid": "u123",
"gid": [
"g1"
]
}
]
}
},
{
"element": {
"id": "A2",
"array11": [
{
"uid": "u124",
"gid": [
"g2"
]
}
]
}
}
]
}
"""
* def response2 =
"""
{
"array1": [
{
"element": {
"id": "A2",
"array11": [
{
"uid": "u124",
"gid": [
"g2"
]
}
]
}
},
{
"element": {
"id": "A1",
"array11": [
{
"uid": "u123",
"gid": [
"g1"
]
}
]
}
}
]
}
"""
这是一行:)
你猜怎么着,你不必总是匹配纯JSON,使用子节就可以了
但也要阅读文档的这一特定部分:
下面的示例:请添加一个编程语言标记,否则语法突出显示将不起作用。谢谢@Peter Thomas。在我的例子中,我需要检查子api响应的大小,如果数组的大小>1,那么我只需要匹配父api响应中的那些元素。若子API只返回一个数组,那个么将不会在父API中填充该数组。所以我制作了一个JS函数来检查responseStatus和子api响应的大小。如何在JS函数中使用
包含
?@JCK Karate不鼓励您在JS中进行匹配
或包含
,这是故意的。你的考试似乎太复杂了。也许是时候你问一个新问题了,保持它的具体性,请尝试使用更简单的例子,并尊重这里试图帮助你的人的时间我没有过度复杂化,我没有找到空手道的方法来点它,所以我使用JS。有空手道的方法吗?@JCK只是我的看法。无论如何,我不明白你的问题,所以我建议你用一个具体的例子问一个新问题。或者等待其他人提供我错过的任何东西
* match response2.array1 contains response1.array1