【问题标题】:soapUI - embbed XML in a request using groovysoapUI - 使用 groovy 将 XML 嵌入到请求中
【发布时间】:2013-08-30 19:00:00
【问题描述】:

我正在soapUI 上制作测试用例,在某些步骤中我会使用REST 请求并将XML 代码放在下方窗格中,类似于

<dataList>
    <data>
        3.1416
    </data>
    <data>
       5.11
    </data>
</dataList>

但我需要获取响应并将结果存储在响应的 XML 文本中,以验证 Web 服务是否正在执行正确的操作,然后使用接收到的结果发送更多请求。

谢谢大家!

【问题讨论】:

  • 你试过什么?这是您询问过的一个非常常见的操作,我认为之前可能在 stackoverflow 中回答过?
  • 其实我不知道如何从响应中获取值(尴尬:$)
  • 如果您不知道,那么最好的起点是http://www.soapui.org,请查看左侧的菜单。这是一个很好的起点。
  • 感谢 Abhishek 我开始查看那里的文档,我首先尝试了属性转移但不知道如何获取 xml 节点值

标签: xml web-services groovy soapui


【解决方案1】:

我可以使用属性和属性转移来解决这个问题

  1. 在“自定义属性”选项卡中向 TestCase 添加属性

  2. 添加属性转移步骤

    2.1 作为源选择带有响应的测试步骤,结果存储在哪里

    2.2 在属性下拉列表中选择ResponseAsXml

    2.3 在文本源中写入 xml 标签的路径,如: /dataList/数据

    2.4 作为目标选择添加了(1)的自定义属性的测试用例

    2.5 作为目标属性选择添加的自定义属性的名称。

非常感谢大家的及时回答:) 等我有更好的声誉,我会发布一些照片。

【讨论】:

    【解决方案2】:

    与您的测试套件一起使用的 Groovy 脚本测试步骤如下:

    def grUtils = new com.eviware.soapui.support.GroovyUtils(context)
    def holder = grUtils.getXmlHolder(
                   context.expand('${TestStep#Response#//node}'))
    
    println holder.getXml()
    
    //where TestStep = Your test Step where you get the response  
    //node = The xml node you want to pick. In your case it is "dataList"
    

    【讨论】:

    • 表达式 ${TestStep#Response#dataLis}' 得到错误 org.apache.xmlBeans.XmlException: error: Unexpected element: CDATA
    猜你喜欢
    • 1970-01-01
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-03
    相关资源
    最近更新 更多