首页 > 解决方案 > 将数据从 XML 响应传输到 SoapUI 属性

问题描述

我对 SoapUI(开源版本)和 REST 非常陌生。我们有一个 ERP 系统,它通过 Web 服务使用 REST,以允许第三方应用程序与其通信。我正在使用 SoapUI 来测试这些调用是如何工作的。我使用用户名和密码为我的会话获取令牌。我在 SoapUI 中使用了 Property Transfer 来设置用户名和密码。结果在 XML 中:

<MGRestTokenResponse xmlns="http://schemas.datacontract.org/2004/07/" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
   <Message>success</Message>
   <Token>--I WANT THIS DATA--</Token>
</MGRestTokenResponse>

当我使用 Property Transfer 来获取令牌时,我能得到的最好的方法就是存储整个 XML 输出。经过大量谷歌搜索,我能想出的唯一解决方案是在后续步骤中,使用以下 Groovy 代码:

def content = context.expand('${Set Test Properties#sectoken}')
def xml = new XmlSlurper().parseText(content)
def token = xml.getAt("Token")
testRunner.testCase.getTestStepByName("Set Test Properties").setPropertyValue("sectoken",token.toString())

这是从 SoapUI 中的 XML 响应中提取数据的正确/首选方法吗?我应该对“目标”设置下方的文本字段做些什么吗?我假设这个过程与 JSON 类似(将 Slurper 换成 Json)。

我已经进行了很多测试,我需要使用 SoapUI,并且我想确保我正确使用了该工具。

标签: xmlgroovysoapuiopen-source

解决方案


这应该可以通过属性转移测试步骤来实现。我提出这个的原因是我发现它对系统内存的负担比 groovy 脚本少。

如果您添加了属性测试步骤,则以下内容应该能够转移您正在寻找的属性。

在此处输入图像描述

请让我知道这可不可以帮你


推荐阅读