机器人框架:如何区分由于常规测试步骤关键字失败与验证测试步骤失败导致的测试用例失败

时间:2018-06-07 04:21:14

标签: python robotframework

Robot Framework中的任何库都有两类关键字。用于执行常规测试步骤的关键字(例如Click Button)和验证某些内容的关键字(例如Table Column Should Contain)。后面的关键字通常有"应该"在他们中间。

我假设Robot Framework仅在报告中为执行的测试用例提供PASS或FAIL状态。如何区分由于测试步骤关键字导致的失败的FAIL测试用例与由于测试验证关键字导致的失败?

例如,计算器测试用例点击2, +, 2, =按钮,然后将答案4验证为最后一个关键字的一部分(例如Should Be Equal As Numbers)。如果在没有点击任何按钮的情况下失败,那么我将其视为"未能执行其实际验证" (我的结果处理脚本不会在这里记录错误)。但是,如果在实际验证结果时失败,那么它就是与测试用例相关的有效错误(我的结果处理脚本可以相应地执行操作,例如记录错误)。

如果根据我的要求(PASS,FAIL和FAIL_TO_VERIFY状态)没有生成结果文件的技术,那么我正在寻找一种处理结果或记录xml以确定失败类型的技术(FAIL vs FAIL_TO_VERIFY) )对于每个FAIL测试用例。

PS:我已经在我的结果处理脚本中找到了bug记录部分。因此,请将其视为超出上述问题的范围。

2 个答案:

答案 0 :(得分:1)

在这方面,机器人唯一提供的是为在测试设置期间失败的关键字提供唯一错误。如果您的测试设计为总是进行一系列设置,然后进行一组验证,那么这样做可以满足您的需求。

然而,根据我的经验,大多数测试都不是那样的。通常,测试将具有一些设置,一些验证,然后是更多步骤,然后是更多验证。最佳实践说不要写这样的测试,但有时它是不可避免的(或至少不方便)

一种可行的解决方法是创建自己的关键字"验证"就像"运行关键字",但将关键字包装在try / catch块中,然后设置标记或写入日志或返回自定义错误消息。

您的测试可能如下所示:

*** Test cases ***
Example
    open browser  http://example.com  chrome
    click button  submit
    verify   page title should be  Hello, world
    verify   page should contain   Welcome, internet visitor!

verify关键字然后会运行关键字,如果发生错误,它会捕获它,然后抛出一个新错误,例如&#34; "verification failed for "page title should be Hello, world": <actual error>

您还可以设置类似&#34;验证失败&#34;的标记。关于此关键字失败的测试然后,您将在报告中获得一个很好的统计信息,显示有多少测试具有此标记(因此,有多少测试由于验证失败而失败)。

答案 1 :(得分:0)

您可以在selenium2library中查看关键字注册失败时运行关键字,此关键字将允许在您的slenium2library关键字失败时执行任何其他关键字。所以你可以在这里调用你的错误报告关键字