在 RobotFramework 中,是否可以在 For-Loop 中 运行 测试用例?
In RobotFramework, is it possible to run test cases in For-Loop?
所以我的问题可能是句法性质的,也可能不是,但我不知道下一步该怎么做。我正在 Robot Framework 上编写一个测试用例,我的最终目标是能够 运行 ,多个测试,在循环中背靠背。
在下面的这种情况下,Log to Console 调用工作正常,并输出作为参数传递的不同值。下一个调用 "Query Database And Analyse Data" 也有效。
*** 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
但是,当我尝试使用 "Query Database And Analyse Data" 制作带有文档和标签的测试用例时,我收到错误:关键字名称不能为空,这让我认为当文件到达 [文档标签],它不理解它是测试用例的一部分。这通常是我编写测试用例的方式。
这里请注意,缩进试图匹配循环内部
*** 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}
现在这是语法问题、缩进问题,还是根本无法完成我想做的事情?如果你写过类似的案例,但方式不同,请告诉我!
任何帮助或意见将不胜感激!
您正在尝试使用关键字作为测试用例。 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
...
你真的无法 [Tags]
任何有用的地方。但是,如果您不直接使用关键字而是将其包装在 Run Keyword And Return Status.
中,则可以触发有意义的失败消息(替换 [Documentation]
)
此外,请查看 data driven tests 以完全摆脱 :FOR
循环。
所以我的问题可能是句法性质的,也可能不是,但我不知道下一步该怎么做。我正在 Robot Framework 上编写一个测试用例,我的最终目标是能够 运行 ,多个测试,在循环中背靠背。
在下面的这种情况下,Log to Console 调用工作正常,并输出作为参数传递的不同值。下一个调用 "Query Database And Analyse Data" 也有效。
*** 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
但是,当我尝试使用 "Query Database And Analyse Data" 制作带有文档和标签的测试用例时,我收到错误:关键字名称不能为空,这让我认为当文件到达 [文档标签],它不理解它是测试用例的一部分。这通常是我编写测试用例的方式。
这里请注意,缩进试图匹配循环内部
*** 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}
现在这是语法问题、缩进问题,还是根本无法完成我想做的事情?如果你写过类似的案例,但方式不同,请告诉我!
任何帮助或意见将不胜感激!
您正在尝试使用关键字作为测试用例。 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
...
你真的无法 [Tags]
任何有用的地方。但是,如果您不直接使用关键字而是将其包装在 Run Keyword And Return Status.
[Documentation]
)
此外,请查看 data driven tests 以完全摆脱 :FOR
循环。