如何在soapUI中获取Web服务响应的值?

时间:2014-09-23 08:47:25

标签: java web-services soapui

我在soapUI中有2个依赖步骤。我想自动使用第一个响应中返回的值作为第二个请求。

我可以使用${FirstStep#Response}来引用整个第一个响应。 但是如何继续?

假设响应如下,我想提取标记Key的值:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body>
      <LoginResponse xmlns="http://schemas/WebServices">
         <Key>asdasdasd</Key>
      </LoginResponse>
   </s:Body>
</s:Envelope>

2 个答案:

答案 0 :(得分:2)

有两种方式:
1.使用上下文参考

e.g `context.expand( '${RestTestStep#Response//xpathToDataNeeded}')`
  1. 您可以使用XmlSlurper获取整个回复并进行解析。
  2. def responseXml = testRunner.testCase.testSteps["StepName"].testRequest.response.getResponseContent();
    def xmlSlurperObj = new XmlSlurper().parseText(responseXml );
    def xmlSlurperObj= new XmlSlurper().parseText(xml).declareNamespace(s:"http://schemas.xmlsoap.org/soap/envelope/");
    log.info xmlSlurperObj.Body.LoginResponse.Key.text();
    

    学习XmlSlurper

    的非常好的链接

答案 1 :(得分:1)

您可以使用属性扩展,如下所示:

${FirstStep#Response#//*:Key}

或许阅读documentation