我有幾個 XML 檔案。使用wiremock,我希望根據其中一個欄位選擇其中一個檔案。
我的映射 JSON 檔案當前如下所示:
{
"priority": 1,
"request": {
"method": "POST",
"url": "/PAXGetEntitlement",
"bodyPatterns" : [ {
"equalToXml" : "<RNUM>AE767818</RNUM>"
} ]
},
"response": {
"status": 200,
"headers": {
"Content-Type": "text/xml"
}
}
}
我要挑選的檔案的頂部(和相關)部分('AE767818-get-entitlement.xml')如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns:getEntitlementDataResponse xmlns:ns="http://remote.interfaces.dataretrievalservices.pax.curam">
<ns1:Document xmlns:ns1="http://remote.interfaces.paxdataretrievalservices.pax.curam">
<GetEntitlementDetailsResponse>
<ResponseHeader>
<SessionID>PAX1600425562</SessionID>
<VersionNumber>1.0</VersionNumber>
<CompletionIndicator>true</CompletionIndicator>
<RNUM>AE767818</RNUM>
<CRN />
<EventMessages />
</ResponseHeader>
當我從 Postman 發送請求時,我收到一條回復說“正文不匹配”。
我的印象是(似乎不正確)我只需要在 equalToXml 引數中指定 1 個欄位即可獲得匹配,但 Wiremock 抱怨我沒有指定檔案的整個正文。
我哪里錯了?
uj5u.com熱心網友回復:
如果屬性值是有效的 XML 并且在語意上等于預期的 XML 檔案,則認為匹配。 來自 XML 相等檔案。這意味著請求的整個正文必須與該值匹配。
相反,我們可以使用xpath 匹配來僅在單個欄位匹配時進行匹配。像下面這樣的東西應該可以作業:
...
"bodyPatterns" : [ {
"matchesXPath" : {
"expression": "/soapenv:Envelope/soapenv:Body/ns:getEntitlementDataResponse/ns1:Document/GetEntitlementDetailsResponse/ResponseHeader/RNUM/text()",
"equalTo": "AE767818"
}
} ]
...
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/525012.html
標籤:xml嘲弄邮差线模
下一篇:命名空間元素的正確XPath?
