robot framework自动化测试参考手册
RobotFramework的一些特性
•易于使用,采用表格式语法,统一测试用例格式;
•重用性好,可以利用现有关键字来组合新关键字;
•支持变量;
•支持创建基于数据驱动的测试用例。
•结果报告和日志采用HTML格式,易于阅读;
•提供标签以分类和选择将被执行的测试用例;
•平台、应用无关;
•功能全面,支持WEB测试(Selenium)、Java GUI 测试、启动线程、SSH等;
•易于扩展,提供了简单API,用户可以自定义的基于Python或者Java的测试库;
•易于集成,提供了命令行接口和基于XML的输出文件;
•易于与版本管理集成;
RobotFramework本地环境搭建
一、安装Python2.7
官网下载安装包,安装配置环境变量即可
地址:https://www.python.org/downloads/
环境变量:Path值加D:\ProgramFilesW\Python27;D:\ProgramFilesW\Python27\Scripts
(更改为您指定路径即可)
二、安装pip
在安装python的Scripts路径下执行cmd命令
D:\ProgramFilesW\Python27\Scripts
easy_install pip
三、安装wxPython
在安装python的Scripts路径下执行cmd命令
pip install wxPython
不行就卸载
pip uninstall wxPython
安装wxPython2.8
下载地址:https://sourceforge.net/projects/wxpython/files/wxPython/2.8.12.1/
四、安装robotframework
在安装python的Scripts路径下执行cmd命令
pip install robotframework
五、安装 robotframework-ride
在安装python的Scripts路径下执行cmd命令
pip install robotframework-ride
六、安装library
建议安装
pip install robotframework-selenium2library
pip install requests
pip install robotframework-requests
pip install robotframework-httplibrary
可选安装
pip install robotframework-archivelibrary
pip install robotframework-SSHLibrary
pip install robotframework-ftplibrary
七、安装浏览器驱动
执行robotframework-selenium2library UI测试用例时,需要安装浏览器驱动。
chrome浏览器驱动官方下载地址:
https://chromedriver.storage.googleapis.com/index.html?path=2.33/
下载后配置到环境变量即可
Path增加值D:\ProgramFilesW(chromedriver.exe存放路径)
测试用例编写和执行环境
RIDE是RobotFramework用例的一个编写、执行工具。本地环境搭建完成后,双击D:\ProgramFilesW\Python27\Scripts\ride.py启动。工具本身不是很复杂,很容易上手。
我把RIDE的界面大致分了四个区域:菜单栏、工具栏、案例及资源区、工作区,如下图。
RIDE编写测试用例
首先点击File-New Project
从Tpye上来说,分为文件和目录两种,一般先建目录,然后再在目录下建Suite。Parent Directory为当前工程要新建的路径。Format默认为 ROBOT即可。
接着新建Suite
接着新建第一个test case,一个test Suite下可以有n个test case
这样,就可以开始编写你的测试用例了
还提供了纯文本的编写窗口,有很严格的格式要求
RIDE执行测试用例以及查看报告
编写完成后可以在run的窗口执行测试用例,可以加上参数执行,执行完成后可以查看报告和日志
比如下图是一个编写好的测试用例
文本窗口展示的用例是
执行其中两个test case完成后生成报告
点击Report可以查看html版的报告
IDEA编写测试用例
当有了一定量的用例积累且对RF用例编写比较熟悉了之后,建议可以使用IDEA结合RF插件来编写测试用例。具备智能显示、关键字提示、变量跳转能功能,对用例编写效率有很大的提升。
IDEA robot framework插件安装
Robot Framework support 和Robot Plugin
UI自动化测试用例辅助工具安装
另外编写UI自动化测试用例的时候可以借助chrome浏览器插件辅助快速编写,chrome商店(可能需要翻墙)都可以快速安装。
前端UI脚本录制工具:Robotcorder
CSS 和 XPath校验工具: CSS and XPath checker
自动化测试用例编写规范
对于自动化案例来说,最大的难度不是在于怎么做案例,而是怎么维护案例。因为随着需求的更新,系统的流程或者页面会发生很多的变化,这时候的维护成本的高低才是我们首要考虑的,如果自动化案例建立起来之后,没有后续维护的投入,最终经过若干个版本,这些自动化案例基本就是废弃的了。这样做的好处不单是为了以后维护方便,也使得案例的架构层级清晰。越是靠近上层的部分,脚本越贴近自然语言,或者说很像我们的测试案例;越靠近下层的部分,越是接近页面元素的代码级部分。这样以后如果发生维护的时候,根据需要维护的内容,只需要在很少的地方进行调整即可
测试用例与数据资源解耦
将测试用例编写用到数据变量化,抽取到资源文件中,所以用例目录结构规划如下
一个测试用例编写在对应功能的目录下,按照大类做基本区分,大类下可以根据实际情况添加文件夹,建议不超过一级。
测试用例对应的数据、元素选择器、局部关键字等资源存放在用例对应大类的资源文件夹下,按照数据.robot、元素.robot进行分类。三类资源文件被大类下的资源.robot引用,大类下的资源.robot被工程下的资源.robot引用,同时引用SeleniumLibrary、BuiltIn、自定义类库、自定义关键字。具体情况如下图:
测试数据对应工程环境
根据测试环境的不同,测试数据按照资源文件夹进行区分,最终修改被引用的资源文件,实现本地快速切换环境数据。如下图:
测试用例存放与命名
测试用例按功能分类存放,测试用例命名:
采用中英文命名,不要包含特殊字符
要简洁的描述测试用例的测试功能。
例如
测试用例划分规则
一个基础的业务场景作为一个测试用例,拿登录功能举例:
若将登录作为一个测试套件,
1、输入错误的用户名和密码进行登录为一个业务场景,作为一个测试用例(其中包含了以下步骤:在输入框中输入用户名,在密码框中输入密码,点击登录按钮,接受反馈信息)
2、输入正确的用户名和密码进行登录为一个业务场景,作为一个测试用例(其中包含了以下步骤:在输入框中输入用户名,在密码框中输入密码,点击登录按钮,接受反馈信息)
变量命名方式与Location值规范
- 页面元素变量命名按照 大类 开头,功能点逐级划分 进行命名,数据命名在这之后加上 输入值 或者 值 进行命名。如 ${集成管理页_创建系统_系统名称_输入框} 大类开头可以方便查找、引用变量,功能点逐级划分可以降低变量重复率。
- 变量对应的Location值要做到兼容多个环境,
例如:
错误写法:xpath=//*[@id="wrapper"]/div[9]/div/div/div[2]/div[1]/div/div[2]/div/a
正确写法://select[@id="addEnvChoose"]
测试用例要遵守闭环规则
如:创建流水之后要进行流水的删除操作,删除操作和创建操作应该分为两个测试用例,防止单用例阻塞。同时保证用例可以重复执行
编写用例自测通过后才可可以提交至gitlab
测试用例工程,通过gitlab来管理,可以和代码放在一个仓库,也可以单独存放到一个gitlab仓库。
功能变更人实时维护对应测试用例
随着需求的更新,系统的流程和功能或者页面会发生很多的变化,需要实时去维护测试用例,建议功能变更人维护对应的测试用例。
上线之前保证测试用例成功率
在项目上线当天要保证测试用例在准发环境成功率达到100%,出现问题之后根据实际情况修改测试用例或者代码,临近上线时可选择进行手工验证代替测试失败的用例。
日常需要保证测试用例成功率100%,由相关编写人员进行维护。