使用SoapUI 5.2.1和Groovy. TestCase有2个测试步骤:
1)SOAP请求“创建”
2)Groovy脚本
目标是查找响应中是否包含确切的单词。例如,如果响应包含单词“yes”,脚本应显示消息。
我通过简单的if-else & .contains()实现了它,在我考虑了switch和如何用这种方法实现它之后。
我在这里找到了旧的解决方案Can switch use String.contains?,但它对我不起作用。我总是陷入 * 默认 *
**所以,我被卡住了。**现在的目标是使用switch查找响应中是否包含确切的单词,因为将来会有很多不同的情况。
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
2条答案
按热度按时间vs3odd8k1#
如果您想检查响应中是否存在预期的内容,这里是最好的方法之一。
采用这种方法
步骤如下:
1.对于Soap请求测试步骤,添加“包含”Assert。
1.提供
${#TestCase#EXPECTED_CONTENT}
形式的值作为预期内容。1.在测试用例级别中,添加一个自定义属性
EXPECTED_CONTENT
,并提供当前测试用例所需的字符串值。同样,在不同的测试中,您可以使用不同的字符串作为预期值。好的一面是你永远不需要修改Assert,只需要改变测试用例级别的属性值,不是很简单吗?
nfzehxib2#
使用闭包,例如