假如有一个用例:
1.登陆
2.下单
3.对历史单评价
4.退出
情况一:当第1步执行失败时,我们希望用例不再执行,因为再执行也没有意义了,反而浪费时间;
情况二:当第2步执行失败时,我们希望能略过第2步操作,继续往下执行。
Katalon提供了Failure Handing功能,在Project菜单中的Setting选项中,可以设置全局的语句失败处理,如图
各选项含义如下:
此处的设置是对所有用例都生效的。但如果我们要同时兼容情况一和情况二,可以再手动对某行代码设置失败处理。只要在视图模式中右击某行代码,菜单中的Change failure handing即可指定单行的失败处理方式:
当在视图模式选择失败处理方式后,在代码模式也会改变对应代码,所以我们也可以直接在代码中修改失败处理方式。
全局和单行处理方式不同时以单行的为准。
回到开头的用例,情况一我们可以给登陆步骤设为Stop on Failure,情况二我们可以给下单步骤设为Continue on Failure。
另外,在运行Test Suites时(假如一个用例集有10个用例),如果第1个用例中的某行被设为Stop on Failure导致用例失败,不会影响第2个用例,第2个用例仍会执行。
Katalon的关键字大部分支持Failure Handing功能,另外Katalon还提供了强制停止用例的代码语句,以备特殊情况使用。举个例子,当页面某元素不是期望的值时,则停止用例执行:
import com.kms.katalon.core.exception.StepErrorException as StepErrorException String name = WebUI.getText(findTestObject('szh/div'), FailureHandling.STOP_ON_FAILURE)//获取文本执行失败时,停止用例执行 println('开始') if (name == '新闻') { println('元素存在且值正确') } else { throw new StepErrorException('The test case is forced to stop here!') println('本语句永远不会被打印') } println('元素值不对时本语句不会被打印')