测试模板

Python/Java学习交流群:369606713


测试模板


测试模板简介

测试模板 将普通的 关键字驱动的测试 转换为 数据驱动的测试

关键字驱动的测试用例的主体由 关键字 及其可能的 参数 构成,而带有模板的测试用例仅包含template关键字的 参数

如果在测试文件中 多次重复 使用关键字,而只是 参数 不同。这样就可以使用模板,从而减少相同关键字使用的次数。

模板关键字可以接受常规的位置和命名参数,以及嵌入关键字名称的参数。与其他设置不同,无法使用变量定义模板。

基本用法

以下示例测试用例说明了,如何将接受正常位置参数的关键字用作模板。这两个测试在功能上完全相同。

*** Test Cases **
Normal test case
    Log    hello    
    Log    你好!
    Log    hi   

Templated test case
    [Template]    Log
    hello
    你好!
    hi

如示例所示,可以使用[Template]设置为单个测试用例指定模板。一种替代方法是使用 设置表 中的Test Template设置,在这种情况下,该模板将应用于该测试用例文件中的 所有测试用例

[Template]设置会 覆盖 设置表中可能设置的模板,并且[Template]的值为空意味着即使使用Test Template,测试也没有模板。也可以使用值NONE表示测试没有模板。

*** Settings ***
Test Template    Log To Console

*** Test Cases **
Templated test case
    # [Template]    Log
    hello
    你好!
    hi

模板嵌入参数

模板支持 嵌入式参数语法。对于模板,如果template关键字名称中包含 变量,则将它们视为参数的 占位符,并替换为模板使用的 实际参数。然后,使用 结果关键字 而不使用 位置参数。下面用一个例子说明:

*** Test Cases ***
Normal test case with embedded arguments
    The result of 1 + 1 should be ${2}
    The result of 1 + 2 should be ${3}

Template with embedded arguments
    [Template]    The result of ${calculation} should be ${expected}
    1 + 1    ${2}
    1 + 2    ${3}

*** Keywords ***
The result of ${calculation} should be ${expected}
    ${result} =    Evaluate    ${calculation}
    Should Be Equal    ${result}     ${expected}

模板使用循环

如果模板与for循环一起使用,则该模板将应用于循环内的所有步骤。在这种情况下,也将使用失败继续模式,这意味着即使存在错误,所有步骤也会与所有循环的元素一起执行。

*** Variables ***
@{ITEMS}    tom    kite    rose

*** Test Cases ***
Template and for
    [Template]    Log
    FOR    ${item}    IN    @{ITEMS}
        ${item}
    END