如何在Groovy中使用with with with switch

时间:2017-11-28 09:09:58

标签: regex groovy soapui assertions

使用SoapUI 5.2.1和Groovy。 TestCase有2个测试步骤:

1)SOAP请求“创建”

2)Groovy脚本

目标是找出答案中是否有确切的字词。例如,如果响应包含单词“yes”,则脚本应显示消息。

我通过简单的if-else& .contains()在我考虑切换之后,我怎么能这样做。

我在这里找到了旧解决方案 Can switch use String.contains? 但它对我不起作用。我总是陷入默认

所以,我被困了。 现在的目标是找出使用开关的响应中是否有确切的单词,因为将来会有很多不同的情况。

SOAP“create”有响应,我们对此响应的Body部分感兴趣,因为脚本完全提取了body。

<env:Body>
 <data ...>
  <transactions>
   <next_step>yes</next>
   <message>that word</message>
  </transactions>
 </data>
</env:Body>

Groovy脚本

response = context.expand('$create#Response#://env:Body}')

switch (response)
{
 case ~/.*word.*/:
  log.info "found"
  break
 case ~/.*damn.*/:
  log.info "found that shouldn't be found"
  break
 default:
  log.info "doesn't work"
}

response.toClass()java.lang.String

1 个答案:

答案 0 :(得分:1)

如果您想检查响应中是否存在预期内容,这是最佳方法之一。

采用这种方法

  • 不需要额外的groovy脚本测试步骤。
  • 您可以将不同的字符串检查为预期内容。

以下是步骤:

  1. 对于Soap Request测试步骤,添加“Contains”Assertion。
  2. 将值${#TestCase#EXPECTED_CONTENT}视为预期内容。
  3. 在测试用例级别,添加自定义属性EXPECTED_CONTENT并提供当前测试用例所需的字符串值。同样,您可以在不同的测试中使用不同的字符串作为预期值。
  4. 很好的部分是你永远不必修改断言,只需更改测试用例级属性值即可。不简单吗?