【问题标题】:In a SoapUI mock service response script i need to use a value from a request在 SoapUI 模拟服务响应脚本中,我需要使用请求中的值
【发布时间】:2010-12-30 09:42:50
【问题描述】:

在 SoapUI 模拟服务响应脚本中,我需要使用请求中的值。我正在尝试让 value_2 在响应中使用它。

例如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

另外请注意,我使用的是基本版(不是专业版)

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

谢谢,托尼

【问题讨论】:

    标签: xml web-services groovy request soapui


    【解决方案1】:

    你可以试试:

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

    应该打印出来

    [value_2, value_3]
    

    【讨论】:

    • 不幸的是,它会打印所有值 [value_1, value_2, value_3, etc]
    • 但它的工作方式如下: context.theValue = req.Body.field_1.field_4[0].field_5.field_6 ==* 非常感谢 *==
    • @Tony 是的...有多个匹配您的查询,所以您需要指定您想要的那个
    • @Tony 你不应该在你的输出中得到value_1,因为它与你的查询路径不匹配......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多