RF简介
Robot Framework是一个基于Python的,可扩展的关键字驱动的测试自动化框架,用于端到端验收测试和验收测试驱动开发(ATDD)。它可用于测试分布式异构应用程序,其中验证需要涉及多种技术和接口
为何选择Robot Framework
1、启用易于使用的表格语法,以统一的方式创建测试用例
2、可以使用关键字驱动、数据驱动和行为驱动开发完成
3、提供易于阅读的结果报告和HTML格式的日志
4、平台和应用程序是独立的
5、易于扩展,提供一个简单的API,用于创建自定义测试库,可以使用Python或Java本机实现
6、提供命令行界面和基于XML的输出文件, 以便集成到现有构建基础架构(持续集成系统)中
7、为Selenium提供Web测试,Java GUI测试,运行进程,Telnet,SSH等支持
8、内置对变量的支持,特别适用于不同环境下的测试
9、提供标记以分类和选择要执行的测试用例
10、实现与源代码控制的轻松集成:测试套件只是可以使用生产代码进行版本控制的文件和目录
11、提供测试用例和测试套件级别的设置和拆卸
12、模块化架构支持创建测试,即使对于具有多种不同接口的应用程
RIDE工具
1、RIDE作为Robot Framework的“脸面”,直接面向用户。创建和运行测试都是在该界面上进行的
2、RIDE的界面大致分了4个区域:菜单栏、工具栏、工程文件区、工作区
⑴菜单栏:RIDE所有的功能都在这里面。如打开一个工程、创建一个工程等
⑵工具栏:比较常用的功能,可以快捷操作
⑶工程文件区:这里是一个目录一个目录的树形结构。主要是存放工程的:测试套件、测试用例、自定义资源、关键字等
⑷工作区:这里主要是编辑用例、运行用例的操作区
菜单栏
RF的菜单栏才主要包括:File、Edit、Tools、Navigate、Macros、Help按钮
File菜单
File菜单下主要的选项有以下按钮。如果最近打开过工程,File菜单下还会展示最近打开的工程,最多展示4个,可以直接切换工程
名称 | 描述 |
New Project | 新建工程 |
Open Test Suite | 打开测试套件 |
Open Directory | 打开目录(一般打开测试项目都是选择这项) |
Save | 保存 |
Save All | 保存全部 |
Exit | 退出 |
Edit菜单
1、File菜单下主要的选项有以下按钮
2、如果是对测试用例脚本进行编辑的话,可以右键选择需要操作的单元格(行)单元格,在弹出的对话框中快捷键操作
名称 | 描述 |
Add Tag to selected | 对选中的案例增加Tag标签,可批量增加 |
Clear Selected | 清除选中的案例 |
Undo | 撤销 |
Redo | 重做 |
Cut | 剪切 |
Copy | 复制 |
Paste | 粘贴 |
Insert | 插入 |
Delete | 删除 |
Comment | 注释当前行,可批量操作 |
Uncomment | 取消当前行注释,可批量操作 |
Insert Cells | 插入单元格 |
Delete Cells | 删除单元格 |
Inset Rows | 插入行 |
Delete Rows | 删除行 |
注:
这部分的操作可以在测试用例编辑区进行快捷操作:鼠标右键
1、选中需要操作的行:进行行操作
2、选择需要操作的单元格进行单元格操作
Tools菜单
Tools菜单下主要的选项有以下按钮
名称 | 描述 |
Test with Debug以debug | 形式运行测试案例 |
Run Tests | 运行测试案例 |
Stop Test Run | 停止案例运行 |
Search Tests | 搜索测试案例(可以通过名称或Tag标签搜索案例) |
Search Keywords | 搜索关键字(可使用快捷键F5) |
Search Unused Keywords | 搜索未使用过的关键字 |
Content Assistance | 内容助手(用来做脚本补全,不过感觉很不方便) |
Preview | 预览(预览测试套件的文件内容,可以选择格式来查看或打印) |
Manage Plugins | 管理插件 |
View All Tags | 查看所有Tag |
Import Library Spec XML | 导入测试库描述文件XML |
View RIDE Log | 查看RIDE日志(如测试库名写错时,可以通过该按钮来排错) |
Preferences | 参数配置(主要是一些个人喜爱设置) |
Navigate、Macros、Help菜单
名称 | 描述 |
Go Back | 后退:跳转到上一个访问过的页面 |
Go Forward | 前进:跳转到下一个访问过的页面 |
Manage Run Configurations | 管理运行配置:可以增加或移除操作 |
hortcut keys | 快捷键列表 |
User Guide | 用户指南 |
Report a Problem | 报告问题 |
Release notes | 更新日志 |
About | 关于 |
工具栏
工具栏中的按钮主要是菜单栏中一些按钮的快捷按钮,从左到右依次为:后退、前进、打开测试套件、打开目录、保存、保存全部、搜索关键字、搜索测试用例、运行用例、停止运行用例
工程文件区
1、工程文件区下主要是由工程、测试套件、测试用例、资源、关键字组成
⑴工程:就是我们包含我们全部文件的一个文件夹
⑵测试套件:即testSuit,测试集。跟Python中的Unittest单元测试框架中的概念一样
⑶测试用例:在RF中表示由一系列关键字等构成的测试用例
⑷资源:二次封装关键字构成的TXT文件(一个资源文件里面可以含有多个关键字,将一些功能类似或有相同点的关键字放在一个TXT文件中)
⑸关键字:由Python处理函数封装成的(其实就是由Python写的一些处理函数,用于处理对应事件)
2、在RF中Python函数、关键字、资源、测试用例的关系为:
⑴Python函数封装成关键字->多个关键字构成资源文件->若干关键字构成测试用例(资源)(关键字也可以不放在资源文件中(可以单独存在),只是这样的话,可能看起来比较杂乱)
⑵创建测试用例时:需要在所在目录的测试集中导入所需的资源文件或关键字
⑶创建关键字时:需要在所在目录的资源文件或测试集中导入所需的PY文件
3、界面
右键工程名、测试套件名、测试用例名可以弹出二级页面,进行下一步操作(每一级下的二级页面按钮会有点不一样)
名称 | 描述 |
New Suite | 新建测试套件 |
New Directory | 新建目录测试套件 |
New Resource | 新建资源 |
New Test Case | 新建测试用例(测试套件下) |
New User Keyword | 新建用户关键字 |
New Scalar | 新建变量 |
New List Variable | 新建列表型变量 |
New Dictionary Variable | 新建词典变量 |
Change Format | 修改格式(可以修改工程的格式) |
Select All Tests | 选择全部测试案例 |
Deselect All Tests | 取消选择全部测试案例 |
Select Only Failed Tests | 只选择失败的测试案例 |
Select Only Passed Tests | 只选择成功的测试案例 |
Expand all | 展开全部目录 |
Collapse all | 折叠全部目录 |
工作区
工作区里的内容很多,工程、测试套件、测试用例、资源关键字都有与其对应的"Edit"、"Text Edit"、"Run"界面,不同的层级对应的界面会有点不同,先把通用的介绍下
测试套件的Edit页面
1、分别选择测试项目、测试套件、资源文件后,分别查看其对应的Edit页面,可以看出
⑴测试项目和测试套件所提供的Edit标签的功能基本是一样的
⑵资源的工作区Edit与测试套件的基本相同,只是资源工作区的Edit页面中没有元数据定义部分
⑶setUp用于设置初始化工作,在每一个测试用例前先被执行
⑷tearDown方法在每个测试方法执行后调用,这个方法用于完成测试用例执行后的清理工作,如执行“close browser”关闭浏览器等
名称 | 描述 |
Source | 显示当前套件的路径 |
Settings | 单击显示 |
Documentation | 说明文档,写对当前工程的说明 |
Suite Setup | 测试套件初始化(跟Unittest里面的初始化一样) |
Suite Teardown | 测试套件结束 |
Test Setup | 测试案例初始化 |
Test Teardown | 测试案例结束 |
Force Tags | 强制标记,给当前测试套件下的每个测试案例都加上Tag,在测试案例上不能删除,只能在设置的地方删除 |
Default Tags | 表示当前测试套件下测试用例默认的标记 |
TimeOut | 用于设置用例的超时时间。如“1 min 10s”、“ 2 hours”等。 |
Template | 指定模板使用的关键字 |
Tags | 用于给用例添加标记 |
Library | 加载测试库,默认是Python安装目录下的site-packages里的测试库(也可以自己导入包所在的绝对路径) |
Resource | 加载资源(主要是工程相关的资源文件) |
Variables | 加载变量文件 |
Import Failed Help | 导入失败的帮助 |
Add Scalar | 定义变量 |
Add List | 定义列表型变量 |
Add Dict | 定义词典 |
Add Metadata | 定义元数据,定义之后Report和Log显示定义好的内容 |
测试用例的Edit页面
分别选择一个测试用例和一个关键字的Edit页面,可以看到用户关键字的工作区Edit和测试用例的Edit页面也基本一致,只是用户关键字的界面多了一个Find Usages
Text Edit编辑页面
这里显示的是测试用例、关键字等文件的真实内容了,它与Edit页面时互通的
⑴测试用例的Edit页面显示的是当前用例的操作步骤等信息,Text Edit编辑页面显示的是当前测试套件下所有测试用例的操作步骤等信息
⑵TextEdit编辑页面和Edit页面是互通的。即:在Edit页面编写测试用例等后会同步到Text Edit页面;在Text Edit编写用例等后也会同步到Edit页面(可以理解为同一个东西的不同变现形式)
⑶Edit可视化的提供的按钮输入框,对于用户来说更容易知道我要怎么做;而在Text Edit中只是一个空当当的文本,我们跟本不知道如何下手
Run标签页面
该界面中主要是一些运行时的参数设置、日志显示等信息,Run标签提供了丰富的操作和日志
名称 | 描述 |
Execution Profile | 选择运行方式,里面有pybot、jybot和custom script |
Start和Stop | 用例的运行和停止 |
Report和Log | 报告和日志,要运行之后才能点击 |
Autosave | 自动保存 |
Arguments | pybot的参数,可以在这里输入pybot的命令完成相应的操作 |
Show message log | 默认为勾选(勾选后页面会显示运行时的log,反正只显示执行结果) |
Only Run Tests with these Tags | 只运行这些标记的测试案例 |
Skip Tests with these Tags | 跳过这些标记的测试案例 |
注:
1、在选择运行方式时:默认是用pybot来运行案例,pybot的运行Python编译器完成。jybot需要安装Jython的支持。custom script是选择自定义的脚本来运行
2、Report和Log之间的区别:报告更多是结果上的展示,日志更多是过程的记录,在测试用例调试的过程中更多使用日志来查看执行错误。当只想知道测试用例的最终执行情况时用报告
3、自动保存:如果不勾选,在修改了用例之后如果没有保存的话,运行案例时会提示是否保存。勾选则在运行时自动保存了