在Robot Framework

时间:2018-01-12 07:21:09

标签: python automated-tests robotframework

我有一个包含测试数据的csv文件,如下所示:

# Case, StartTime, EndTime, ExpectedResult
Case_1, 2018-01-11T00:10:00, 2018-01-11T00:58:00, 2.5
Case_2, 2018-01-11T00:15:00, 2018-01-11T00:54:00, 3.2
Case_3, 2018-01-11T00:18:00, 2018-01-11T00:47:00, 4.5
...

使用机器人框架我添加了一个关键字来读取文件的内容,如下所示:

Read Data File
    ${LIST}=  Process Data File  session_data.csv    
    : FOR    ${LINE}    IN    @{LIST}
        \    Log    ${LINE}
        \    @{COLUMNS}=    Split String    ${LINE}    separator=,
        \    ${TESTCASE}=    Get From List    ${COLUMNS}    0
        \    Log    ${TESTCASE}

我已经创建了一个测试"验证结果"从CSV处理数据并验证预期结果,但所有过程都只被视为一个测试用例。

对于CSV文件中的每一行,我需要创建一个测试用例,例如:

Verify Result for Case_1
Verify Result for Case_3
Verify Result for Case_3
and so on...

请提供有关如何在Robot Framework中循环运行单个测试的建议。

3 个答案:

答案 0 :(得分:0)

根据Psytho的建议,测试模板可以解决您的问题。

这是给你一个指示的基本例子

*** Settings ***

*** Test Cases ***
Look for All Possible Outputs from the System Under Test
    [Template]    Look for Specific Output
   csv1     #These rows are treated as arguments for test cases with [Template]
   csv2     # You can put your list variable as well, i have not checked with list
   csv3

*** Keywords ***
Look For Specific Output
    [Arguments]    ${output}
    Comment    Pretending to look for a specific output...
    Log    ${output}   # 

测试用例将运行三次。

答案 1 :(得分:0)

不幸的是,你想做的事情无法完成。 Robot不是设计用于将外部文件中的测试数据视为单独的测试用例。

您可以执行的操作是编写一个脚本来读取.csv文件,并在运行测试之前将其转换为一系列机器人测试用例。然后,您可以运行此生成的测试套件。

答案 2 :(得分:-1)

您可以将测试用例转换为关键字,并在测试用例的循环内运行它。可以通过每次运行从CSV获取输入来更改值