我是groovy脚本和soap UI的新手。我在测试步骤中添加了脚本断言。无论如何,当我运行测试用例时,脚本断言都没有运行。我必须手动运行它以验证我的回答是正确的。 有人可以帮我吗? 我的常规脚本测试断言:
import groovy.json.JsonSlurper
//grab response
def response = messageExchange.response.responseContent
//Convert to JsonSluper to access data
def list = new JsonSlurper().parseText(response)
//check delegates are in one session per timeslot
for (i = 0; i < list.size(); i++) {
// find all items for this delegate in this timeslot
def itemsForThisDelegateInThisTimeslot = list.findAll {element -> element.delegateId == list[i].delegateId && element.agendaItemId== list[i].agendaItemId}
log.info(list[i].delegateId)
// there should not be more than 1
if(itemsForThisDelegateInThisTimeslot.size() > 1) {
log.info(list[i].delegateId + "Delegate already assigned to a workshop at same time");
//Assert fail in execution
throw new Error ('Fail')
}
}
答案 0 :(得分:1)
首先,此脚本断言中没有断言。查找Groovy断言。
如果您“断言”脚本是通过还是失败,则需要类似...
assert (response.contains('Something from the response'));
或
assert (someBooleanVar == true);
如果通过,则步骤变为绿色。如果失败,它将变为红色。
恕我直言,当步骤失败时,您似乎抛出了异常。我不会以这种方式使用异常。有一个例外可以捕获并报告代码问题。不是测试失败。
关于异常,请查找Groovy Try and Catch。
对于运行(或不运行)测试用例时的运行。我怀疑它正在运行,但是由于您未声明任何内容,因此看不到结果。
是否注意到屏幕底部的“脚本日志”选项卡?测试步骤运行时,所有log.info语句都将位于此处。我建议清除该日志(在“脚本日志”窗口中右键单击...),然后再次运行测试用例,并在“脚本日志”中查看一些日志消息。