目录
.robot 文件是 Robot Framework 的核心载体
Robot Framework 框架对 .robot 文件的解析与执行
一、介绍
Robot Framework是一个基于Python的关键字驱动的自动化测试框架。
官网地址Robot Framework
以下是关于Robot Framework的几个特点:
-
基于关键字驱动: 它允许测试人员使用Python封装关键字,这些关键字可以在非编码环境下被用来构建可执行的测试用例。
-
易于扩展: 作为一个开源工具,它提供了高度的可扩展性,用户可以根据需要自定义关键字和库,以适应不同的测试场景。
-
支持多种应用: 适用于端到端验收测试和验收测试驱动开发(ATDD),可以用于测试分布式异构应用程序。
-
数据语法简单: 它使用简单的数据语法,使得编写测试用例变得更加直观和容易理解。
-
集成能力强: 可以与持续集成工具和其他测试工具集成,以便于实现自动化测试流程。
-
跨平台: 支持多种操作系统,包括Windows、Linux等,这使得它可以在不同的开发环境中使用。
-
社区支持: 有着活跃的社区和丰富的文档,为使用者提供了良好的学习和交流平台。
-
免费开源: 作为一个开源项目,它是完全免费的。
二、Robot Framework框架与.robot文件
.robot 文件是 Robot Framework 的核心载体
.robot 文件是 Robot Framework 中用于编写测试用例、测试套件以及相关配置信息的标准文件格式。在自动化测试工作中,测试人员依据具体的测试需求,在 .robot 文件里定义各种测试用例,详细描述测试的步骤和预期结果。例如,对于一个 Web 应用的登录功能测试,在 .robot 文件中可以编写包含打开登录页面、输入用户名和密码、点击登录按钮以及验证登录结果等步骤的测试用例。
.robot 文件采用了清晰的表格结构来组织测试数据,主要包含 *** Settings ***、*** Variables ***、*** Test Cases *** 和 *** Keywords *** 等几个部分。不同的部分承担着不同的功能,这种结构化的设计使得测试数据的管理和维护变得更加方便。
Robot Framework 框架对 .robot 文件的解析与执行
Robot Framework 框架具备对 .robot 文件进行解析的能力。当执行测试时,框架会读取 .robot 文件中的内容,按照特定的语法规则将其解析为可执行的指令。例如,框架会识别文件中定义的关键字和测试用例,并将其转换为相应的 Python 代码或调用相应的测试库进行执行。
解析完成后,Robot Framework 会按照 .robot 文件中定义的测试用例顺序依次执行。在执行过程中,框架会根据关键字调用相应的测试库来完成具体的操作,如使用 Selenium 库进行 Web 页面的自动化操作。同时,框架会记录每个测试用例的执行结果,包括是否通过、执行时间等信息。
三、.robot文件结构
Robot文件通常以.robot为后缀名,一个典型的 Robot Framework 测试用例文件通常包含以下几个部分:
- 设置(Settings):设置部分,用于定义测试用例的配置信息。
- 变量(Variables):变量部分,用于定义测试用例中使用的变量。
- 测试用例(Test Cases):测试用例部分,包含具体的测试用例,每个用例包含若干步骤。
- 关键字(Keywords):关键字部分,用于定义可重用的关键字或步骤。
示例Robot文件结构如下:
*** Settings ***
Library SeleniumLibrary
*** Variables ***
${URL}
*** Test Cases ***
Open Website
Open Browser ${URL} chrome
Title Should Be Example Domain
Close Browser
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” 。
Variables (变量)
用于定义全局变量,这些变量可以在整个测试文件中使用。
支持字符串、列表、字典等类型。
- 变量名称用
${}
表示。 - 列表用
@{}
表示。 - 字典用
&{}
表示。
示例:
*** Variables ***
${URL} http://example.com
${USERNAME} admin
${PASSWORD} secret
@{USER_LIST} user1 user2 user3
&{USER} username admin password secret
Test Cases (用例)
定义测试用例,是测试文件的核心部分。
- 每个测试用例的名称占一行,下面是该用例的执行步骤。
- 用例名称不需要特别标记,直接写在第一列。
- 测试步骤按照 一行一个操作 书写,操作之间用空格分隔。
- 可以调用关键字,也可以嵌套其他操作。
示例:
*** 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
Keywords(关键字)
定义用户自定义的关键字(复用功能)。
- 自定义关键字可以像函数一样调用,用来简化测试用例代码。
- 自定义关键字名称写在第一列。
- 关键字内部可以调用其他关键字或执行操作。
- 可以通过
[Arguments]
来定义参数。- 可以传递任意数量的参数,必须严格按照关键字定义的顺序。
- 可选参数可以通过默认值支持。
- 关键字调用不区分大小写。
示例:
*** 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
Comments (注释)
用于编写注释。
单行注释: 使用 #
开头。
块注释: 写在 *** Comments ***
区域。
示例:
*** Comments ***
This is a sample comment block.
# 这是单行注释
四、Pycharm中相关配置
目前网上很多资料介绍需要安装Hyper RobotFramework Support和IntelliBot插件,
如果您装了较新版本的Hyper RobotFramework Support就不需要装 IntelliBot XXX插件,同时装这两个 项目会无法打开。
Hyper RobotFramework Support安装完成后工程界面如下,用例关键字会有高亮区分。
五、.robot 文件的简单示例
在.robot 文件中,首先调用系统自带的库文件Selenium2Library,Selenium2Library提供了一些关键字,比如:
Open Browser
:用于打开指定的浏览器并访问指定的 URL。Title Should Be
:用于验证当前页面的标题是否与预期一致。
定义了两个变量 ${URL}
和 ${BROWSER}
,分别表示要访问的网址和使用的浏览器。
我们添加一个名为 Open And Check Baidu
的自定义关键字,该关键字的功能是打开百度首页并检查标题是否正确,然后在测试用例中调用这个自定义关键字。
*** Settings ***
Documentation 测试百度首页标题
Library SeleniumLibrary
*** Variables ***
${URL} https://www.baidu.com
${BROWSER} Chrome
*** Keywords ***
Open And Check Baidu
[Documentation] 打开百度首页并检查标题
Open Browser ${URL} ${BROWSER}
Title Should Be 百度一下,你就知道
*** Test Cases ***
Verify Baidu Title Using Custom Keyword
[Documentation] 使用自定义关键字验证百度标题
Open And Check Baidu
Close Browser
测试用例名称为Verify Baidu Title Using Custom Keyword,并为测试用例添加描述信息,调用我们自定义的关键字,执行打开百度首页并检查标题的操作。最后,关闭当前打开的浏览器。