Karate 空手道-匹配两个动态响应
我必须将我的WebService响应与其下游服务进行比较。但是,我的响应和下游响应中的ID不相同。我在下面给出了示例回复。同样,一个是REST服务,另一个是SOAP服务,但是我可以进行类型转换(这不是问题) MyWebService响应:Karate 空手道-匹配两个动态响应,karate,Karate,我必须将我的WebService响应与其下游服务进行比较。但是,我的响应和下游响应中的ID不相同。我在下面给出了示例回复。同样,一个是REST服务,另一个是SOAP服务,但是我可以进行类型转换(这不是问题) MyWebService响应: "myWebServiceResponse": { "webServiceSummary": { "service": { "serviceCd": "ABCD", "serviceDescription": "Checking Main
"myWebServiceResponse": {
"webServiceSummary": {
"service": {
"serviceCd": "ABCD",
"serviceDescription": "Checking Main Service",
"hypotheticalInd": "100.0",
"realInd": "200.0"
},
"includeServicesList": [
{
"serviceCd": "XYZ",
"serviceDescription": "Checking AddOn Service",
"hypotheticalInd": "50.0",
"realInd": "60.0"
},
{
"serviceCd": "PQRS",
"serviceDescription": "Checking SecondAddOn Service",
"hypotheticalInd": "100.0",
"realInd": "200.0"
}
]
}
现在,下面是下游服务响应。我不能使用“match contains”,因为myWebServiceResponse和DownstreamService中的ID不同,而且还有许多额外的参数。你可以看到下面
下游服务响应:
"myWebServiceResponse": {
"webServiceSummary": {
"service": {
"serviceCd": "ABCD",
"serviceDescription": "Checking Main Service",
"hypotheticalInd": "100.0",
"realInd": "200.0"
},
"includeServicesList": [
{
"serviceCd": "XYZ",
"serviceDescription": "Checking AddOn Service",
"hypotheticalInd": "50.0",
"realInd": "60.0"
},
{
"serviceCd": "PQRS",
"serviceDescription": "Checking SecondAddOn Service",
"hypotheticalInd": "100.0",
"realInd": "200.0"
}
]
}
"myDownstreamResponse": {
"webServiceDetail": {
"feature": {
"featureCd": "ABCD",
"featureName": "Checking Main Service",
"imaginaryInd": "100.0",
"actualInd": "200.0",
"extraInd1": "someRandomValue1",
},
"includefeatureList": [
{
"featureCd": "PQRS",
"featureName": "Checking SecondAddOn Service",
"imaginaryInd": "100.0",
"actualInd": "200.0",
"extraInd1": "someRandomValue1",
"extraInd2": "someRandomValue1"
},
{
"featureCd": "XYZ",
"featureName": "Checking AddOn Service",
"imaginaryInd": "50.0",
"actualInd": "60.0",
"extraInd1": "someRandomValue1",
"extraInd2": "someRandomValue1"
}
]
}
现在,我该如何匹配这两个回答?此外,您可以看到,很少有参数是随机的,无法通过逐行移动进行比较。仅为CD/指示灯分配相同的参数值。另外,我想知道如何根据一个主值提取和匹配参数。例如,我想使用“serviceCd”:“ABCD”并将所有与ABCD相关的参数与下游服务的参数进行比较。有关一个更简单的示例,可以让您更好地理解这个概念,尤其是
karate.map()
,它甚至可以用于嵌套的JSON结构,请参见此处:
并阅读以下文件:
谢谢你,彼得。抱歉再问一次;你能告诉我在GitHub中使用函数(x)和karate.map的第二部分的相关主题吗?我有点理解你在这里做了什么;但是我想了解更多关于这个概念的信息。我无法在Git中找到相关主题。非常感谢。@sandeephegde这里有一个提示-在github页面中,只需按CTRL+F并键入“karate.map”@sandeephegde您能确认上面的方法是否对您有效吗?