【问题标题】:Get Header from Request in SoapUI groovy script从 SoapUI groovy 脚本中的请求中获取标头
【发布时间】:2014-01-21 06:51:30
【问题描述】:

我想从 SoapUI 请求中获取“Accept”标头的值。然后我想将它存储在 TestCase 属性中。

这就是我试图通过 Groovy 脚本 TestStep 做的事情:

//Get Accept Header from request (if Accept Header does not exist default to empty string)
def acceptHeader = context.testCase.getTestStepAt(0).testRequest.requestHeaders.get("Accept", "")

//Set Accept Header Value to current TestCase properties
testRunner.testCase.setPropertyValue("acceptHeaderSet", acceptHeader)

TestCase 的第一个 TestStep 是一个 REST 请求,第二个 TestStep 是提到的脚本。

每次运行 TestCase 时都会设置默认值(似乎没有找到任何标题)

知道发生了什么吗?这是 SoapUI 工具中的错误吗?

提前致谢。

【问题讨论】:

    标签: groovy http-headers soapui


    【解决方案1】:

    这对我有用: testRunner.getResults()[0].getRequestHeaders()["接受"]

    这仅在您运行整个测试用例时才有效,否则将无法获得任何结果。也许您的方法遇到了类似的问题。

    【讨论】:

      【解决方案2】:

      我会尝试使用属性来解决这种情况。只需定义属性(例如在项目级别),然后更改其值。就像这里描述的Script access to properties

      【讨论】:

      • 感谢您的评论,但这对我来说不是一个合适的解决方案,因为: - 我使用了一个动态属性,它会自动为标题随机生成一个值。 - 在下一步中,我需要知道为标头设置了哪个值,以发出另一个具有相同值的请求。
      • 可能我不了解问题的复杂性,但您可以在请求之前设置属性值,将其转移到下一步,更改(或读取值)。无论如何,这是一个非常有趣的问题。
      • 非常聪明的反应。我更改了测试以遵循您建议的方法。谢谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-18
      • 2010-12-19
      • 1970-01-01
      相关资源
      最近更新 更多