3. 测试用例的基本语法
任务说明
本案例将编写一个完整的Robot Framework测试用例文件,包含设置(Settings)、测试(Test Cases)和清理(Teardown)三个部分。通过该用例掌握测试用例的基本语法结构,理解关键字(Keyword)、变量(Variable)和注释(Comment)的声明与使用方式。最终用例可直接使用robot命令执行并验证。
测试用例文件结构
Robot Framework测试用例文件由四个可选部分构成,本案例覆盖其中三个核心部分:
- Settings:导入库、定义元数据、设置套件级Setup/Teardown;
- Variables:定义测试中使用的变量;
- Test Cases:编写具体测试用例,每个用例由关键字序列组成;
- Keywords:定义用户自定义关键字(本案例在Settings中通过Resource方式引入内置关键字,不单独定义)。
实现代码
创建文件 basic_syntax.robot,内容如下:
*** Settings ***
Documentation 演示测试用例基本语法的示例套件
Library Collections
Suite Setup Log 套件开始执行
Suite Teardown Log 套件执行完毕
*** Variables ***
${USER_NAME} admin
${EXPECTED_ROLE} 管理员
@{FRUITS} apple banana cherry
*** Test Cases ***
验证变量赋值与列表操作
[Documentation] 验证变量声明、列表取值与关键字参数传递
[Tags] smoke variables
${count}= Get Length ${FRUITS}
Should Be Equal As Integers ${count} 3
${first_fruit}= Get From List ${FRUITS} 0
Should Be Equal ${first_fruit} apple
Log 当前用户:${USER_NAME},水果数量:${count}
验证关键字返回值与断言
[Documentation] 演示关键字返回值接收与内置断言关键字
[Tags] regression assertions
${role}= Evaluate 'admin' if '${USER_NAME}' == 'admin' else 'guest'
Should Be Equal ${role} admin
Should Contain ${EXPECTED_ROLE} 管理
Run Keyword If '${role}' == 'admin' Log 用户角色验证通过
验证测试用例清理部分
[Documentation] 演示用例级Teardown的写法
[Setup] Log 用例开始前的准备
[Teardown] Log 用例结束后的清理
${sum}= Evaluate 1 + 2
Should Be Equal As Integers ${sum} 3
语法要点说明
上述用例覆盖了以下基本语法要素:
- 设置部分:
Documentation提供套件说明;Library导入标准库;Suite Setup/Teardown定义套件级前后置动作。 - 变量部分:
${}表示标量变量,@{}表示列表变量。变量可在测试用例中直接引用或重新赋值。 - 测试用例部分:每个用例以缩进的单元格(至少两个空格)编写关键字序列。
[Documentation]、[Tags]、[Setup]、[Teardown]为用例级设置项。 - 关键字与注释:
Log、Should Be Equal等为内置关键字;#开头为注释(本案例中未显式添加,但语法支持在任意行尾以#添加注释)。
运行与验证
执行以下命令运行测试:
robot basic_syntax.robot
运行结束后,观察输出:
- 控制台显示3个测试用例全部通过(PASS),0个失败(FAIL);
- 生成的
output.xml中每个用例状态为PASS; log.html中可以看到套件Setup/Teardown日志以及每个用例内部的关键字执行记录。
判定标准:若3个用例均显示PASS,且日志中能看到“套件开始执行”“套件执行完毕”以及各用例的Log输出,则说明用例语法正确、执行通过。
常见语法错误排查
若执行报错,优先检查:
- 各部分标题(
*** Settings ***等)是否拼写正确且独占一行; - 关键字与参数之间是否使用至少两个空格分隔;
- 变量名是否与声明时一致(区分大小写);
- 缩进是否统一使用空格(禁止Tab与空格混用)。