尝试使用 Wiremock 作为虚拟化 SOAP 服务的工具。
请求映射标准如下所示:-
映射标准:
{
"request":{
"method":"POST",
"urlPattern":"/myServices/mycontent.asgx",
"headers":{
"SOAPAction":{
"contains":"#SearchMyContent"
}
},
"bodyPatterns":[{
**"matchesXPath":"//data:MyContentItemCode[contains(text(), 'SD_12345')] and //MyContentItemCode[contains(text(), 'SD_22222')]",**
"xPathNamespaces":{
"SOAP-ENV": "http://schemas.xmlsoap.org/soap/envelope/",
"data":"http://www.ins.com/insi/1.0/insi-data",
"msg":"http://www.ins.com/insi/1.0/insi-messaging",
"nc":"http://www.ins.com/insi/1.0/insi-non-compliant",
"soapenv":"http://schemas.xmlsoap.org/soap/envelope/",
"srvc":"http://www.ins.com/insi/1.0/insi-services"
}
}]
},
"response":{
"status":200,
"headers":{
"Content-Type":"text/xml;charset=utf-8"
},
"body":"encoded_XML_body"
}
}
出于安全原因,我无法在此处发布整个 SOAP 服务请求,但下面是 SOAP 服务的一小段,它必须与映射条件中的 xpath 匹配
<srvc:MyContentItemCodeList>
<data:MyContentItemCode>SD_12345</data:MyContentItemCode>
<data:MyContentItemCode>SD_22222</data:MyContentItemCode>
</srvc:MyContentItemCodeList>
如您所见,我正在尝试匹配映射条件中的“ data:MyContentItemCode ”标签。但是,wiremock 不识别/支持这一点。这可能是因为 xpath 返回一个布尔值。我的问题是 - 有没有办法匹配 Wiremock 中的布尔值。
我在这里没有在 Wiremock 文档中找到示例:- http://wiremock.org/docs/request-matching/
当我将映射发布到wiremock服务器时,它确实发布成功但是当我尝试访问wiremock服务器时,我没有得到我的虚拟化响应(即不考虑请求匹配)
对此的任何帮助/指示将不胜感激。