是否可以处理测试用例中的异常?我有两种我想要跟踪的故障:测试无法运行,测试运行但输出错误。如果我需要引发异常以使我的测试失败,我如何区分这两种失败类型?所以说我有以下内容:
*** Test Cases ***
Case 1
Login 1.2.3.4 user pass
Check Log For this log line
如果我无法登录,则Login
关键字会引发ExecutionError
。如果日志文件不存在,我也会得到ExecutionError
。但是如果日志文件确实存在且该行不在日志中,我应该得到OutputError
。
我可能希望立即在ExecutionError
上测试失败,因为这意味着我的测试没有运行,并且有一些问题需要在环境或测试用例中修复。但在OutputError
上,我可能想继续测试。它可能只涉及单个输出,测试可能有助于继续检查输出的其余部分。
如何做到这一点?
答案 0 :(得分:2)
Robot有几个用于处理错误的关键字,例如Run keyword and ignore error,可用于运行可能失败的另一个关键字。来自文档:
此关键字返回两个值,因此第一个是字符串 通过或失败,具体取决于执行关键字的状态。该 第二个值是关键字的返回值或接收的值 错误信息。请参阅运行关键字和返回状态如果您是 对执行状态感兴趣。
话虽这么说,编写一个调用Login关键字的基于python的关键字可能会更容易,因为处理多个异常会更容易。
答案 1 :(得分:0)
您可以使用类似的东西
${err_msg}= Run Keyword And Expect Error * <Your keyword>
Should Not Be Empty ${err_msg}
您可以尝试几种不同的变体
Run Keyword And Continue On Failure
,Run Keyword And Expect Error
,Run Keyword And Ignore Error
用于上面的第一条语句。
上面第二条语句的选项是Should Be Equal As Strings
,Should Contain
,Should Match
。
您可以在Robot keywords
上浏览更多内容