【问题标题】:SoapUI Groovy Script that sets test case property not reflected in LoadUI设置测试用例属性的 SoapUI Groovy 脚本未反映在 LoadUI 中
【发布时间】:2014-12-26 22:56:30
【问题描述】:

我正在使用 LoadUI 2.6.8 和 SoapUI 5.0。

我已经能够将属性传输到测试用例属性中,这些属性在 LoadUI 中的 SoapUI 运行器之间成功传递,如下所述:http://www.loadui.org/soapui-integration/passing-along-testcase-properties.html

我遇到的问题是我通过这样的 Groovy 脚本设置的属性之一:

def tc = testRunner.testCase.testSuite.getTestCaseByName("Auth and Start Up")
tc.setPropertyValue("Cookie","$jsesid")

没有在 LoadUI 中更新(当 groovy 脚本运行时),因此没有正确传递。

我必须使用 groovy 脚本,因为 cookie 是作为响应标头的一部分进来的,并且正常的属性传输步骤不允许我进行传输。

有没有人遇到过这种情况?对为什么会发生这种情况有任何见解吗? 谢谢!

更新:我设法通过更新身份验证 API 响应以将 cookie 包含为响应正文的一部分(而不仅仅是标头)来解决此问题,因此我能够使用似乎有效的财产转移步骤。不过,这仍然是一种解决方法。

【问题讨论】:

  • 如果您在测试用例选项中使用“维护 HTTP 会话”选项,它会自动为您传递 Cookie。
  • 感谢您的提示,我试过了,但没有任何改变。该测试在 SoapUI 中运行良好,但一旦我在 LoadUI 中运行它就不行了。它似乎采用了在 SoapUI 的测试用例中设置的属性值,即使 groovy 脚本在 LoadUI 中成功运行,该值也没有更新......就好像脚本的那部分永远不会运行或被忽略。而且我知道脚本的其余部分运行良好,因为我在同一脚本中为同一测试用例中的其余调用设置了 cookie 标头,它们都运行成功。
  • 假设您正在尝试传递实际会话 Cookie,您无法使用 setPropertyValue 设置它们。看到这个:siking.wordpress.com/2013/07/25/soapui-cookie-management
  • 在下面查看我的答案(评论太长了)

标签: groovy soapui loadui


【解决方案1】:

感谢 SiKing 的链接,我想我实际上是在尝试找出 cookie 时遇到的,我最终通过使用脚本手动设置标题来设法使其工作。为了测试这是否是 cookie 问题,我使用了另一个属性。我在 groovy 脚本中添加了以下行:

tc.setPropertyValue("testprop","blah")

在 SoapUI 中运行它,属性值设置正常。然后,我将 SoapUI 测试用例中的测试用例属性“testprop”的值手动更改为“a”并保存了项目。

在 LoadUI 中,我运行了 SoapUI Runner,尽管 groovy 脚本运行良好,但该属性的输出显示为“a”。我玩得越多,我就越认为它是 LoadUI 中的某种错误:(

【讨论】:

  • 现在的问题是,如果这是一个错误,那么如果我只知道该属性应该在 groovy 脚本中设置的值,如何解决它? (即不能使用属性转移步骤)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-19
  • 1970-01-01
  • 2018-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多