测试模板
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