【问题标题】:In RobotFramework, is it possible to run test cases in For-Loop?在 RobotFramework 中,是否可以在 For-Loop 中运行测试用例?
【发布时间】:2016-08-28 16:08:15
【问题描述】:

所以我的问题可能是句法性质的,也许不是,但我对下一步如何继续一无所知。我正在机器人框架上编写一个测试用例,我的最终目标是能够在一个循环中背靠背地运行多个测试。

在下面的这种情况下,日志到控制台调用工作正常,并输出作为参数传递的不同值。下一个调用“查询数据库和分析数据”同样有效。

*** 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

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

请注意这里的缩进试图匹配循环的内部

*** 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}

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

任何帮助或意见将不胜感激!

【问题讨论】:

    标签: for-loop syntax keyword robotframework


    【解决方案1】:

    您正在尝试使用关键字作为测试用例。 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 循环。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多