【问题标题】:How to record the timestamp of an XML request in SoapUI and use it in an assertion?如何在 SoapUI 中记录 XML 请求的时间戳并在断言中使用它?
【发布时间】:2018-07-08 10:47:29
【问题描述】:

我在 SoapUI NG Pro 中有一个测试用例,包含以下步骤:

  1. 启动进程的 POST REST 请求
  2. 我检查进程开始日期是否已记录到数据库表中的 JDBC 请求
  3. 延迟(模拟进程运行所需的时间)
  4. 我检查结束日期和持续时间是否已记录到表中的 JDBC 请求

我想捕获 POST 请求的时间戳,以便在步骤 2 和 4 的断言中使用。

我在网上环顾四周,有些人提到使用事件,而另一些人提到使用脚本测试步骤,但我无法让任何一个工作。

我可以获取 POST 响应时间戳,但我正在寻找特别是请求时间戳。我还注意到请求日志中有一个时间戳,但我还是不知道如何访问它。

任何帮助将不胜感激。可能还值得一提的是,我使用的是 JavaScript 而不是 Groovy。

【问题讨论】:

  • “特别是在寻找请求时间戳”——这是什么意思?如果您想为POST 请求测试步骤花费时间,那么可以得到它。你想要那个吗?顺便说一句,groovy 脚本是 SoapUI 的最佳组合。
  • 是的,这就是我要找的。我以前有一些 JavaScript 经验,并使用它作为我的脚本语言开始了我的项目。不幸的是,此时切换到使用 Groovy 工作量太大。
  • 请检查答案,看看是否有帮助。

标签: groovy soapui assertions ready-api


【解决方案1】:

您可以为 Soap 请求测试步骤添加 Script Assertion,并添加以下语句以显示所用时间。

log.info messageExchange.response.timeTaken

如果您希望上面的值在其他步骤中可以访问,那么使用下面(将值存储到测试用例级别,以便在同一测试用例的其他步骤中轻松访问测试用例属性):

context.testCase.setPropertyValue('TIME_TAKEN', messageExchange.response.timeTaken.toString())

在后面的步骤中,使用属性扩展读取测试用例级别的属性值

def timeTaken = context.expand('${#TestCase#TIME_TAKEN}') as Integer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多