介绍
Robot Framework 是一个基于Python的、可扩展的、关键字驱动的测试自动化框架,用于端到端的验收测试或者验收驱动测试开发(ATDD)中。
python for Robot Framework可以在Robot Framework的基础上,使用python编写自定义函数用于特定过程的测试用例,更适应开发实际情况。
核心特性
- 可扩展性:
- 关键字驱动测试:Robot Framework 使用关键字来表示测试操作。关键字可以是内置的,也可以通过 Python 或 Java 实现的库进行扩展。更具可读性和可维护性。
- 可插拔库:通过库机制,用户可以轻松地添加新的功能。可以适应各种测试需求。
- 易于使用:
- 语法简洁:Robot Framework 使用表格语法来编写测试用例,使得测试用例易于编写和理解。测试用例可以以纯文本、HTML、TSV 等格式编写。
- 数据驱动测试:通过在测试用例中使用变量和参数化测试,支持数据驱动测试。使同一个测试用例可以用不同的数据重复运行。
- 良好的报告和日志功能:
- 详细的日志和报告:Robot Framework 生成详细的测试执行报告和日志文件,包括测试步骤、执行时间、错误信息等。帮助测试人员快速定位和解决问题。
- 集成和兼容性:
- 与其他工具的集成:Robot Framework 可以与 Selenium、Appium、Database Library 等多种工具和库集成,实现 Web 测试、移动应用测试、数据库测试等。
基础用法
具体的测试代码写在.robot
文件中,每个文件都会有四个主要的部分, 如下表分别是 Settings
, Variables
, Test Cases
, 和 Keywords
.
Settings | 导入 测试库, 资源文件, 变量文件. |
---|---|
Variables | 定义 变量 |
Test Cases | 创建测试用例 |
Keywords | 创建用户关键字(函数) |
*** Settings ***(import com.xxx.xxx)
Library PythonLibrary.py (可以导入py或Java文件)
Library /absolute/path/JavaLibrary.java
*** Variables ***
${MESSAGE} Hello, world!
*** Test Cases ***
My Test01
Log ${MESSAGE}
My Keyword /tmp # (函数调用)func(/tmp)
Another Test02
Should Be Equal ${MESSAGE} Hello, world!
*** Keywords ***
My Keyword #(函数声明)public void func(path)
[Arguments] ${path}
Directory Should Exist ${path}
测试用例 Test Cases
测试用例由的关键字 和 设置项构造.
*** Variables ***
${tmp} /home/user/
*** Test Cases ***
Test 01 (测试用例1)
[Documentation] This is a docs
[Tags] dummy car8
[Setup] Open Application App B
Log Hello, world!
[Teardown] NONE
*** Keywords ***
List files(函数名)
[Arguments] ${path}=. ${options}= (函数形参)
Execute command ls ${options} ${path}
常见设置项如下:
[Documentation] :用来为用例设置一段文档说明,方便在查看日志时了解该用例的测试内容
[Tags]:给测试用例打标签,可以** 包含或排除** 测试用例来执行.
[Setup] :在测试用例之前执行xx操作
[Teardown]:在测试用例之后执行,在失败的时候也会被执行, 可以用来做一些清理工作
[Timeout]: 超时设置
[Template]: 模板
Template 的2种调用方法:
// 1. 使用[Template] +关键字
*** Test Cases **
Normal test case //不使用模板需要每次把关键字写一遍
Example keyword arg1 arg2
Example keyword arg3 arg4
Templated test case // 使用模板
[Template] Example keyword //定义好关键字(函数),每次输入一行数据;某一行失败继续运行
arg1 arg2
arg3 arg4
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
//2. 当测试数据非常多时,可以使用Template+for循环测试多个用例
*** Test Cases ***
Template and for
[Template] Example keyword
:FOR ${item} IN @{ITEMS}
\ ${item} 2nd arg
:FOR ${index} IN RANGE 42
\ 1st arg ${index}
测试用例成功/失败的处理(判断成功/失败的情况)
- 关键字级别:通过自定义关键字实现特定的失败处理逻辑。
- 测试用例级别:使用内置关键字控制测试用例在失败时的行为
- 自定义失败处理:通过自定义函数和异常处理进行更复杂的失败处理。
详细内容:
测试用例成功或失败的处理类型