机器人框架:异常处理

时间:2015-09-10 19:35:49

标签: testing robotframework

是否可以处理测试用例中的异常?我有两种我想要跟踪的故障:测试无法运行,测试运行但输出错误。如果我需要引发异常以使我的测试失败,我如何区分这两种失败类型?所以说我有以下内容:

*** Test Cases ***
Case 1
    Login            1.2.3.4    user    pass
    Check Log For    this log line

如果我无法登录,则Login关键字会引发ExecutionError。如果日志文件不存在,我也会得到ExecutionError。但是如果日志文件确实存在且该行不在日志中,我应该得到OutputError

我可能希望立即在ExecutionError上测试失败,因为这意味着我的测试没有运行,并且有一些问题需要在环境或测试用例中修复。但在OutputError上,我可能想继续测试。它可能只涉及单个输出,测试可能有助于继续检查输出的其余部分。

如何做到这一点?

2 个答案:

答案 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 FailureRun Keyword And Expect ErrorRun Keyword And Ignore Error用于上面的第一条语句。

上面第二条语句的选项是Should Be Equal As StringsShould ContainShould Match

您可以在Robot keywords

上浏览更多内容