如何使用 Robot Framework 从测试套件运行特定的测试用例

Posted

技术标签:

【中文标题】如何使用 Robot Framework 从测试套件运行特定的测试用例【英文标题】:How to run specific test cases from a test suite using Robot Framework 【发布时间】:2014-09-20 05:35:21 【问题描述】:

我是 Robot 的新手,正在学习编写逻辑和测试用例。

我有一个测试套件“mytestsuite.robot”,其中有很多测试用例。我的一个测试用例中有几个错误。

由于我不想再次运行整个测试套件,如何只运行那个特定的测试用例?

文件 mytestsuite.robot

testcase1
....
....
testcase2
....
....
testcase3
....
....
testcase4
....
....

假设测试用例 3 失败,我只想重新运行测试用例 3。

我尝试使用:

pybot mytestsuite.robot -t testcase3

但我得到一个错误。

【问题讨论】:

【参考方案1】:

您想使用选项-t--test,但选项在文件名之前放在文件名之前而不是之后。这应该有效:

robot -t testcase1 mytestsuite.robot

用户指南中标题为Starting test execution 的部分中介绍了命令行参数的顺序,并且还可以在带有--help 选项的命令行中使用(例如pybot --help

请注意,特定文件名是可选的。您只能使用: 机器人 -t testcase1 .

在哪里“。”表示查找包含指定测试的所有文件。机器人会努力寻找具体的测试。

您还可以在测试名称的开头或结尾使用 willcard 作为 *,以轻松匹配测试或运行多个测试。

机器人 -t "testcase1*" 。

将匹配当前文件夹中所有以“testcase1”开头的测试。

用户指南中有一个标题为Selecting test cases 的部分涵盖了这个主题。

【讨论】:

【参考方案2】:

如果您想在 Robot Framework 中运行 single 测试用例,请使用以下示例。

语法:robot -t "Test Case Name" Test Suite Name 示例:robot - t "PON Type Test Case" Aquarium_Project.robot

如果您想在 Robot Framework 中运行所有测试用例,请使用以下示例

语法:robot Test Suite Name 示例:robot Aquarium_Project.robot

【讨论】:

【参考方案3】:

如果您使用具有设置和拆卸的__init__.robot 文件,如果您具有如下嵌套目录结构,则不能直接从测试文件调用测试:

|-- foo
    |-- bar.robot

并且bar.robot文件有一个名为baz的测试用例,在这种情况下,你可以这样做:

robot --test 'foo.bar.baz' foo

嵌套更深:

|-- foo
    |-- bar
        |-- baz.robot

robot --test 'foo.bar.baz.*' foo

您可以使用*(星号)运行 foo.bar.baz 套件中的所有测试用例。

【讨论】:

【参考方案4】:

迟到的帖子,但如果有人在将来寻找这个,你也可以使用Tags 的概念。使用 Robot Framework,您可以标记您的测试套件和测试用例。对于您的问题,我将限制自己使用基于测试的标签。休息时,您可以阅读 - https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#tagging-test-cases

在您的情况下: 文件 mytestsuite.robot

testcase1
...
...
testcase2
...
...
testcase3
[Tags] | temp
...
...
testcase4
...
...

您可以向任何测试用例添加多个标签。使用--include(也用作-i)机器人选项来指定要运行的标签。在这种情况下:

robot --include temp mytestsuite.robot

robot --i temp mytestsuite.robot

【讨论】:

以上是关于如何使用 Robot Framework 从测试套件运行特定的测试用例的主要内容,如果未能解决你的问题,请参考以下文章

Robot Framework自动化测试第一个用例

如何定制 Robot Framework 的测试报告

如何在 Robot Framework 测试用例的命令行参数中传递 Tab?

基于Robot Framework实现网络自动化测试

Selenium GRID:并行运行多个 Robot Framework 测试套件

Robot Framework 测试套件目录如何精确工作?