Soap 如何从拆卸脚本中的响应打印atribute值

Soap 如何从拆卸脚本中的响应打印atribute值,soap,groovy,soapui,Soap,Groovy,Soapui,如果断言失败,我想从响应中打印属性值。错误响应示例: <soapenv:Body> <ns0:Fault xmlns:ns1="http://www.w3.org/2003/05/soap-envelope" xmlns:ns0="http://schemas.xmlsoap.org/soap/envelope/"> <faultcode>OSB-382500</faultcode> <faultstring>M

如果断言失败,我想从响应中打印属性值。错误响应示例:

<soapenv:Body>
  <ns0:Fault xmlns:ns1="http://www.w3.org/2003/05/soap-envelope" xmlns:ns0="http://schemas.xmlsoap.org/soap/envelope/">
     <faultcode>OSB-382500</faultcode>
     <faultstring>Mandatory Parameter Customer Type cannot be empty (uuid: 1f8b9637-11b1-47ea-9ebd-3abf2fda950e)</faultstring>
     <detail>
        <ns0:Fault xmlns:ns0="http://group.vodafone.com/contract/vfo/fault/v1" xmlns:ns2="http://group.vodafone.com/contract/vho/header/v1" xmlns:ns3="http://group.vodafone.com/schema/common/v1" xmlns:ns6="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns7="http://www.w3.org/2005/08/addressing">
           <ns6:Timestamp>2017-08-16T20:44:27.15+05:30</ns6:Timestamp>
           <ns6:ErrorCode>500</ns6:ErrorCode>
           <ns0:Name/>
           <ns0:Severity>Critical</ns0:Severity>
           <ns0:Category>Technical</ns0:Category>
           <ns0:ReasonCode>ReasonCode</ns0:ReasonCode>
           <ns0:Message>Service Callout Failure</ns0:Message>
        </ns0:Fault>
     </detail>
  </ns0:Fault>
</soapenv:Body>

我正在使用context.expand从groovy的响应中获取数据, 比如说


def hotel=context.expand(“${SearchHotels#Response#declare namespace ns1=\'someNamespace\';declare namespace ns2=\'someNamespace2\';//ns2:SearchHotelsResponse[1]/ns1:TWS#HotelList[1]/ns1:HotelList[1]})
我使用了以下语句:

def req = it.name; message[k] = context.expand('${'+req+'#Response#declare namespace ns0=\'http://group.vodafone.com/contract/vfo/fault/v1\'; //ns0:Message}')

它成功了。

你能使用这里为你的另一个问题提供的代码片段吗?@Rao,我有一个测试套件,里面有60-70个测试步骤。在每个测试步骤的脚本断言中都使用了我前面问题中的代码片段。但是这个代码片段,我在TestSuite的拆卸脚本中使用。所以我想要一个脚本,它可以在拆卸脚本中使用,它可以从所有测试步骤中提取数据,并相应地将该属性值写入excel.Ok。但是所有测试步骤是否都得到相同类型的响应(遵循相同的模式)?是的,所有响应都遵循相同的模式;message[k]=context.expand('${'+req+'#Response#declare namespace ns0=\'http://group.vodafone.com/contract/vfo/fault/v1\“;//ns0:Message}”)
def req = it.name; message[k] = context.expand('${'+req+'#Response#declare namespace ns0=\'http://group.vodafone.com/contract/vfo/fault/v1\'; //ns0:Message}')