使用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
答案 0 :(得分:1)
如果您想检查响应中是否存在预期内容,这是最佳方法之一。
采用这种方法
以下是步骤:
${#TestCase#EXPECTED_CONTENT}
视为预期内容。EXPECTED_CONTENT
并提供当前测试用例所需的字符串值。同样,您可以在不同的测试中使用不同的字符串作为预期值。 很好的部分是你永远不必修改断言,只需更改测试用例级属性值即可。不简单吗?