XPath的說法如何讓我的XPath斷言我的XML響應,如果沒有URL在其聲明的命名空間,同樣會去腳本斷言沒有命名空間
<data contentType="image/png" contentLength="1143">iVBORw0KGgAEAAA0vr3J9P0uQmCC</data>
這是我得到的
XPath的說法如何讓我的XPath斷言我的XML響應,如果沒有URL在其聲明的命名空間,同樣會去腳本斷言沒有命名空間
<data contentType="image/png" contentLength="1143">iVBORw0KGgAEAAA0vr3J9P0uQmCC</data>
這是我得到的
在SOAPUI可以使用XPath
即使有該節點上沒有命名空間的定義(您的命名空間中的<data>
元素的父節點可能定義)。在你的問題目前還不清楚你想要做什麼,因此,例如,如果你想查詢contentLenght
屬性的值您<data>
元素,您可以使用後續XPath
來獲取值:
//data/@contentLength
如果你有一個測試步驟要求在響應<data>
,當你問你想和斷言在常規測試步驟可以與後續的代碼做到這一點:
def content = context.expand('${YourTestRequestName#response#//data/@contentLength}')
log.info content
assert content.equals("1143"), "ASSERT FAIL"
相反,如果你有XML內容的字符串你可以這樣做:
def data = '<data contentType="image/png" contentLength="1143">iVBORw0KGgAEAAA0vr3J9P0uQmCC</data>'
def xmlHolder = new com.eviware.soapui.support.XmlHolder(data)
def contentLength = xmlHolder.getNodeValue("//data/@contentLength")
log.info contentLength
assert content.equals("1143"), "ASSERT FAIL"
最後,如果你有一個測試步驟請求時,它也有可能使這個添加XPath Match
斷言在您的測試步驟的要求,你可以在後續圖像中看到:
希望這可以幫助,
一個父元素可能有申報命名空間,並且向下流到孩子。
在一個簡單的XPath斷言,您可以使用「任何」命名空間://*:data
,它沒有聲明。
@albcliff當我們提取像$ {步驟#迴應#// * [本地名稱()= 「血紅素」] //}節點它提取命名空間以及例如<先生:條目的xmlns:MR =「HTTP: //www.example.com「>名稱 www.udzial.com 當原始值沒有此響應中的mr –
2018-02-07 06:53:55