我已經在這個腳本斷言Xpath的錯誤而在soapUI的/常規斷言(通過響應XML斷言在常規方法的元素)
def holder = new XmlHolder(messageExchange.responseContentAsXml)
保持器的值是
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns0:SOME_SEARCHResponse xmlns:ns0="urn:AA:BBB:CCC:some_WS">
<ns0:some_ID>22222</ns0:Some_ID>
<ns0:some_ID>33333</ns0:Some_ID>
<ns0:Status>OK</ns0:Response>
...
...
下面是斷言方法,這是在腳本庫中
def assertions(xmlHolder, String... StringToAssert){
StringToAssert.each{
return xmlHolder.containsKey(StringToAssert)
}
}
我打電話斷言方法像下面從腳本assertion
assert true==context.Change.assertions(holder,"//ns0:Some_ID")
但接收下面的錯誤,我不明白錯誤來自哪裏。
net.sf.saxon.trans.XPathException: XPath syntax error at char 1 on line 2 in {\n[Ljava.lang.String}: Unexpected token "[" in path expression
編輯 @albciff意見後最終版本看起來像下面
def assertions(xmlHolder,String... stringToAssert){
def results = stringToAssert.collect{ element ->
return xmlHolder.containsKey(element)
}
return results.every{it==true}
//return results.contains(true)
}
變量名和參數名是最好的開始與小寫字母 –
@tim_yates感謝。我會改變的。任何關於錯誤的想法。 – user1207289
這可能會修復它 –