从0开始学习CANoe使用
从0开始学习车载测试
相信时间的力量
星光不负赶路者,时光不负有心人。
1.概述
RobotFramework是一种基于关键字的自动化测试框架,它允许测试人员使用简单的表格格式进行测试用例编写。
一个典型的 Robot Framework 测试用例文件通常包含以下几个部分:
Setting Section: 设置部分,用于定义测试用例的配置信息.
Variable Section:变量部分,用于定义测试用例中使用的变量.
Test Case Section: 测试用例部分,包含具体的测试用例.
KeywordSection: 关键字部分,用于定义可重用的关键字
下面对其语法和结构进行详细介绍。
2.Setting(设置)
用于设置测试文件的全局配置,例如导入库、资源文件等。
Library
、Resource
、Variables
是最常用的设置项。
每个设置项后面用 空格 分隔,然后填写具体内容。
常见的设置包括:
Library: 导入外部库或资源文件.
Resource: 导入资源文件,可以包含变量、关键字等.
Test Case Exit On Failure: 当测试用例失败时退出.
Test Timeout: 设置测试用例的超时时间.
示例:
*** Settings ***
Library OperatingSystem # 导入标准库
Library my_library.py # 导入自定义库
Resource shared_keywords.robot # 导入共享的关键字文件
Variables variables.py # 导入变量文件
Documentation This is a sample test file. # 文件的描述文档
大小写不敏感,环绕的空格可以忽略,并且星号符的数量可以变化,但最开始必须有星号符。上文举例使用的是复数形式,但是单数也可以接受。所以上文可以改为 “*setting” 。
3. Variables (变量)
用于定义全局变量,这些变量可以在整个测试文件中使用。
支持字符串、列表、字典等类型。
规则:
变量名称用
${}
表示。
列表用@{}
表示。
字典用&{}
表示。
- #示例:
.robot
*** Variables ***
${URL} http://example.com
${USERNAME} admin
${PASSWORD} secret
@{USER_LIST} user1 user2 user3
&{USER} username admin password secret
4.Test Cases (用例)
定义测试用例,是测试文件的核心部分。
每个测试用例的名称占一行,下面是该用例的执行步骤。
用例名称不需要特别标记,直接写在第一列。
测试步骤按照 一行一个操作 书写,操作之间用空格分隔。
可以调用关键字,也可以嵌套其他操作。
示例:
.robot
*** Test Cases ***
Valid Login
[Tags] smoke
Open Browser To Login Page
Input Username demo
Input Password mode
Submit Credentials
Welcome Page Should Be Open
[Teardown] Close Browser
5. Keywords(关键字)
定义用户自定义的关键字(复用功能)。
自定义关键字可以像函数一样调用,用来简化测试用例代码。
自定义关键字名称写在第一列。
关键字内部可以调用其他关键字或执行操作。
可以通过 [Arguments]
来定义参数。
示例:
.robot
*** Keywords ***
Open Browser
[Arguments] ${url} ${browser}
Open Browser ${url} ${browser}
Maximize Browser Window
Add Numbers
[Arguments] ${num1} ${num2}
${result}= Evaluate ${num1} + ${num2}
[Return] ${result}
Open Browser To Login Page
Open Browser ${URL} ${BROWSER}
Location Should Be ${URL}/login
6. Comments (注释)
用于编写注释。
单行注释: 使用 #
开头。
块注释: 写在 *** Comments ***
区域。
示例:
.robot
*** Comments ***
This is a sample comment block.
# 这是单行注释
7.注意
- 空格分隔
关键字和参数之间必须用 至少两个空格 分隔,单个空格无法解析。
-
大小写不敏感
关键字调用不区分大小写。 -
关键字参数
可以传递任意数量的参数,必须严格按照关键字定义的顺序。
可选参数可以通过默认值支持。