我在测试用例下有一个测试列表。是否可以使用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
答案 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
时,Subtest1
和Subtest2
将使用相应的参数执行,并且它们将具有单独的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
这将确保执行所有测试。如果任何一个测试失败,它也将失败测试用例。