【发布时间】:2018-05-11 16:21:28
【问题描述】:
使用 SoapUI 5.2.1 和 Groovy。 TestCase 有 2 个测试步骤:
1) SOAP 请求“创建”
2) Groovy 脚本
目标是找出响应中是否包含确切的单词。例如,如果响应包含单词“yes”,则脚本应显示消息。
我通过简单的 if-else & .contains() 实现了它在我考虑 switch 以及我该如何做到这一点之后。
我在这里找到了旧的解决方案 Can switch use String.contains? 但这对我不起作用。我总是陷入默认
所以,我被卡住了。 现在的目标是使用 switch 查找响应中是否有确切的单词,因为将来会有很多不同的情况。
SOAP“创建”有响应,我们对此响应的正文部分感兴趣,因为脚本准确地提取了正文。
<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
【问题讨论】:
-
contains应该比.*word.*正则表达式更好。
标签: regex groovy soapui assertions