在RobotFramework中,是否可以在For-Loop中运行测试用例?

Cas*_*iel 0 syntax for-loop keyword robotframework

所以我的问题可能具有句法性质,也许不是,但我对如何继续下一步毫无头绪.我正在编写一个关于Robot Framework的测试用例,我的最终目标是能够在循环中连续运行多个测试.

在下面的这种情况下,Log to Console调用工作正常,并输出作为参数传递的不同值.下一个调用"查询数据库和分析数据"也可以工作.

*** Test Cases ***
| For-Loop-Elements
| | @{Items} =                    | Create List | ${120} | ${240} | ${240} 
| | :FOR                          | ${ELEMENT} | IN | @{ITEMS}
| | | Log To Console              | Running tests at Voltage: ${ELEMENT}
| | | Query Database And Analyse Data
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用"查询数据库和分析数据"制作带有文档和标签的测试用例时,我得到错误:关键字名称不能为空,这使我认为当文件到达[文档标签]时,它不明白它是测试用例的一部分.这通常是我编写测试用例的方式.

请注意,缩进尝试匹配循环内部

*** Test Cases ***
| For-Loop-Elements
| | @{Items} =                    | Create List | ${120} | ${240} | ${240} 
| | :FOR                          | ${ELEMENT} | IN | @{ITEMS}
| | | Log To Console              | Running tests at Voltage: ${ELEMENT}

| | | Query Database And Analyse Data
| | | | [Documentation]           | Query DB.
| | | | [Tags]                    | query | voltagevariation

| | | Duplicates Test
| | | | [Documentation]           | Packets should be unique.
| | | | [Tags]                    | packet_duplicates | system
| | | | Duplicates

| | | Chroma Output ON
| | | | [Documentation]           | Setting output terminal status to ON
| | | | [Tags]                    | set_output_on | voltagevariation
| | | | ${chroma-status} =        | Chroma Output On | ${HOST} | ${PORT}
Run Code Online (Sandbox Code Playgroud)

现在这是一个语法问题,缩进问题,还是完全不可能做我想做的事情?如果你写了类似的案例,但是以不同的方式,请告诉我!

任何帮助或输入将非常感谢!

小智 6

您正在尝试使用关键字作为测试用例.Robot Framework不支持这种方法.您可以做的是制作一个包含大量关键字的测试用例:

*** Test Cases ***
| For-Loop-Elements
| | @{Items} =                    | Create List | ${120} | ${240} | ${240} 
| | :FOR                          | ${ELEMENT} | IN | @{ITEMS}
| | | Log To Console              | Running tests at Voltage: ${ELEMENT}
| | | Query Database And Analyse Data
| | | Duplicates
| | | ${chroma-status} =        | Chroma Output On | ${HOST} | ${PORT}

*** Keywords ***
| Query Database And Analyse Data
| | Do something
| | Do something else
...
Run Code Online (Sandbox Code Playgroud)

你无法真正适合[Tags]任何有用的地方.但是,您可以触发有意义的失败消息(替换[Documentation]),如果不直接使用关键字,则将其包装在"运行关键字和返回状态"中.

此外,请查看数据驱动测试:FOR完全摆脱-loop.