Karate 空手道框架:在父API中查找子API响应(是动态的)
我有一个场景,其中父API响应的一部分来自子API。如果子API响应(是动态的)只有一个数组元素,则无需匹配父API响应中的数组元素,Karate 空手道框架:在父API中查找子API响应(是动态的),karate,Karate,我有一个场景,其中父API响应的一部分来自子API。如果子API响应(是动态的)只有一个数组元素,则无需匹配父API响应中的数组元素,如果数组大小>1,则需要从wards上的索引1匹配父API响应 * def child = {"array1":[{"mbr1":{"id":"A1"}},{"mbr2":{"id":"A2"}}]} 子api响应没有特定的顺序,array1可以有“n”个数组元素(mbr1、mbr2、mbr3等) 如果子API响应如上所示,则父API响应如下所示: * def
如果数组大小>1
,则需要从wards上的索引1匹配父API响应
* def child = {"array1":[{"mbr1":{"id":"A1"}},{"mbr2":{"id":"A2"}}]}
子api响应没有特定的顺序,array1
可以有“n”
个数组元素(mbr1、mbr2、mbr3等)
如果子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"}]}
那么,如果child返回200ok且子数组长度>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]
}
}
}
if(子响应状态==200){
如果(child.array1.length>1){
对于(i=1;i给你,请阅读文档:
给你,请阅读以下文件:
我不会再说了,但是您可以做一些工作来简化示例,创建一个简单的json,比如{a:[1,2]}
这有那么难吗?如果你不这样做,人们回答这个问题只会花更多的时间,或者人们不会再这么说,但是你可以做一些工作来简化这个例子,创建一个简单的json,比如{a:[1,2]}
这有那么难吗?如果你不这样做,人们回答问题只会花更多的时间,否则人们甚至不会尝试使用Anks@Peter Thomas。我已经更新了我的JSON。*def parentArray=parent.elg[1]如果子api响应只有一个元素,则.array1
将为null。我已向Qn添加了更多详细信息。Thanks@JCK请问一个新问题。我已经更新了我的JSON。*def parentArray=parent.elg[1]如果子api响应只有一个元素,则.array1
将为null。我已向Qn添加了更多详细信息。Thanks@JCK请问一个新问题
* def parentArray = parent.elg[1].array1
* def expected = child.array1.length > 1 ? child.array1 : parentArray
* match parentArray contains only expected