在SoapUI模拟服务响应脚本中,我需要使用请求中的值

时间:2010-12-30 09:42:50

标签: xml web-services groovy request soapui

在SoapUI模拟服务响应脚本中,我需要使用请求中的值。我试图获得value_2以在响应中使用它。

e.g。 SOAPUI模拟服务收到以下请求:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                   xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
                   xmlns:ns1="urn:company:test">
   <SOAP-ENV:Body>
      <ns1:field_1 xmlns="urn:company:test">
         <field_2>
            <field_3>value_1</field_3>
         </field_2>
         <field_4>
            <field_5>
               <field_6>value_2</field_6>
            </field_5>
         </field_4>
          <field_4>
            <field_5>
               <field_6>value_3</field_6>
            </field_5>
         </field_4>
      </ns1:field_1>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

我访问了以下链接,但它对我不起作用。

Access the request XML in a SOAP UI mock response script

SoapUI getting request parameters in mock service script

我也尝试过以下行并失败。

def req = new XmlSlurper().parseText(mockRequest.requestContent)
context.theValue = req.field_1.field_4.field_5.field_6

另请注意,我使用的是Basic Version(非Pro)

你能帮我解决这个问题吗?

谢谢,Tony

1 个答案:

答案 0 :(得分:0)

你可以尝试:

println req.Body.field_1.field_4*.field_5.field_6

那应该打印出来

[value_2, value_3]