如何使用Robot Framework

时间:2017-04-24 15:40:11

标签: python-2.7 robotframework

我在测试用例下有一个测试列表。是否可以使用Robot框架执行嵌套测试用例。有人可以用小例子指导我如何运行嵌套测试用例。如果我是学习者,那么提问的方式是愚蠢的,请忽略。

Test Suite 
----------
---- Test case   
          Check if unix process 1 is running   - PASS / FAIL
          Check if unix process 2 is running   - PASS / FAIL
          Check if unix process 3 is running   - PASS / FAIL

4 个答案:

答案 0 :(得分:2)

运行重复性测试步骤的一种方法是使用数据驱动的测试 - a link to the user guide 考虑这个例子:

*** Test Cases***
Test case
    [Templete]    Check if the unix process is running
    Subtest1    proc1
    Subtest2    proc2

*** Keywords ***
Check if the unix process is running
    [Arguments]   ${process name}
    # the keyword implementation

运行Test Case时,Subtest1Subtest2将使用相应的参数执行,并且它们将具有单独的PASS / FAIL状态 - 因此如果Subtest1失败, Subtest2无论如何都会运行。

答案 1 :(得分:1)

您不能让一个测试用例运行不同的测试用例。您可以做的是创建一个关键字,并从测试用例中调用该关键字。

在您的情况下,您可以创建名为&#34的关键字;检查unix进程是否正在运行",并将其传递给ID或名称或类似名称。您可以运行该关键字,如果失败,则可以在不在该测试中运行任何更多关键字的情况下使测试失败。同一文件中的任何其他测试仍将运行。

答案 2 :(得分:1)

Tanmay的答案很好,应该足以满足大多数用例。

作为替代方案,您还可以利用Run Keyword And Return Status,它只捕获它执行的子关键字的通过/失败状态。我有一些大型测试用例,其中有许多原子步骤,可能会或可能不会成功,我希望将一个运行的eval发布到报告的消息列(使用Set Test Message关键字)。

答案 3 :(得分:0)

是的你可以。以下是一个例子

*** Settings ***
Library  BuiltIn

*** Test Cases ***
TC01
   Log To Console    1
   Log To Console    2

就是这样。当您运行测试用例时,您将在控制台上获得输出,如下所示:

1 2

但是,这不是推荐的设计,因为当您想要使用不同的数据集编写相同的测试时,它会引入更多的类型。

建议的方法是 -

你也可以运行这样的东西。

测试套件

***** Test Cases*****
Test Case Name

***** Keywords *****
----------
---- Test Case Name
     Run Keyword And Continue on Failure    Check if unix process 1 is running
     Run Keyword And Continue on Failure    Check if unix process 2 is running
     Run Keyword And Continue on Failure    Check if unix process 3 is running 

这将确保执行所有测试。如果任何一个测试失败,它也将失败测试用例。