【发布时间】:2020-06-03 17:55:33
【问题描述】:
我有一个场景,其中父 API 响应的一部分来自子 API。如果子 API 响应(它是动态的)只有一个数组元素,则无需匹配父 API 响应中的那个,if array size > 1 那么我需要从索引 1 开始匹配父 API 响应。
* def child = {"array1":[{"mbr1":{"id":"A1"}},{"mbr2":{"id":"A2"}}]}
子 api 响应没有特定的顺序,array1 可以有 "n" 数组元素的数量(mbr1,mbr2,mbr3, etc)
如果子 API 响应如上所示,则父 API 响应如下所示:
* def parent = {"parent":{"muid":"1234"},"elg":[{"EID":"E123"},{"members":[{"mbr2":{"id":"A2"}}]}]}
因此,只有在满足上述条件时,才会填充父 API 响应到最终子 API 响应。 如果子 API 只返回一个元素,那么父 API 响应将如下所示:
* def parent = {"parent":{"muid":"1234"},"elg":[{"EID":"E123"}]}
那么,如果孩子返回 200 OK 并且孩子数组长度 > 1,我该如何进行匹配以查看孩子是否存在于父母中? 所以我正在寻找以下场景的解决方案:
if (child responseStatus == 200){
if (child.array1.length > 1){
for (i = 1;i <= child.array1.length; i++){
parent.elg[1].members[i] contains child.arrays1[i]
}
}
}
【问题讨论】:
标签: karate