Robot Framework介绍
Generic test automation framework for acceptance testing and ATDD. 通用的测试自动化框架,用于验收测试和(ATDD)验收测试驱动开发。
Robot Framework特点
使用简单;
非常丰富的库;
可以像编程一样写测试用例;
支持开发系统关键字;
*可以很好的把自动化测试人员进行划分;
Robot Framework库
*Builtin: 提供了一组通常需要的通用关键字
String: 生成、修改和验证字符串的库
Screenshot: 提供关键字捕捉桌面截图
XML: 生成、修改和验证xml文件的库
DateTime: 日期和时间转换库
第三方库:
Web自动化测试: SeleniumLibrary, Selenium2Library, Selenium2Library for Java, watir-robot等
Windows GUI测试:AutoItLibrary
移动测试:Android library, ios library, Appium Library等
数据库测试:DatabaseLibrary(Java), DatabaseLibrary(Python), MongoDBlibrary等
文件对比测试:DiffLibrary
HTTP测试:HTTP library(livetest), HTTP library(Requests)等
ROBOT Framework与单元测试框架比较
相同点:
SetUP/tearDown
提供测试套件(用于运行一组测试用例的集合)
测试运行
生成HTML测试结果
不同点:
语法:robot framework 自建语法;unit test使用Python语法
支持库:robot framework支持特定库;unit test支持Python的任意库
脚本对比:
Robot Framework安装
RF准备
Python2.x/Python3.: https://www.python.org/
rf: https://github.com/robotframework/robotframework
wxPython 2.8.12.1(win 32)(可选):http://soureforge.net/projects/wxpython/files/wxpython/2.8.12.1/
robot framework-ride(可选):https://github.com/robotframework/RIDE
运行
运行rf脚本命令:.pybot
Robot Framework基础关键字
定义列表:Create List
连接字符串:Catenate
时间关键字:获取时间get time, 休眠时间sleep
分支语句关键字
循环语句关键字
强大的Evaluate
命令输入:
执行全部TC:pybot base_keys.txt
执行特定TC:pybot --test if base_keys.txt
(base_keys.txt为测试套件名;if为指定用例名)
Robot Framework用户关键字
Robot Framework提供了用户关键字的概念,可以很好的减少测试脚本冗余。
创建用户关键字
创建:在robot framework中右击Add Suite("user_key")>在新建的测试套件下右击New User Keyword("myrange").
引用:在测试套件下右击New Test Case("test_case")>引用keyword名称即可。
例2 带返回值的关键字:
创建资源
setUp/tearDown
New Test Case下通过用户关键字可设置setUp/tearDown.
setUp: Run before TC
tearDown: Run after TC
Robot Framework之Selenium2Library
Selenium是当前主流的Web自动化测试工具,它支持多浏览器与多种编程语言。Selenium2Library基于Selenium针对robot framework开发的一个库,用于Web自动化测试。
安装Selenium2Library
下载项目网址:https://github.com/robotframework/Selenium2Library
导入到Robot Framework
在Add Suite测试套件>Edit>Setting右边选择Library进行导入。
基本关键字使用
Robot Framework之RequestLibrary(接口自动化测试)
RequestLibrary基于Request针对robot framework开发的一个库。用于HTTP接口自动化测试。
项目地址:https://github.com/bulkan/robotframework-requests
安装Requests(基于Python): pip instal -u requests
安装RequestLibrary: pip instal -v robotframework-requests
调用一个get请求的接口
调用一个post请求的接口
Robot Framework系统关键字
当我们要实现一些功能,而这些功能robot framework有没有提供相应的关键字,这个时候我们就可以自己通过Python开发关键字。
关键字的本质是在robot framework的库中所开发的方法。
分析robot framework系统关键字
文件路径:python/Lib/site-packages/robot/librarys/Builtln.py
例如:log关键字
自己动手开发系统关键字
在python/Lib/site-packages/robot/MyTestLibrary(自创库包-文件夹)/count.py中输入代码,使用sublime打开。
可利用断言方法进行验证:
将MyTestLibrary文件夹变成Python标准模块
需要在文件夹下创建一个默认的_init_.py文件。
调用MyTestLibrary库
① 打开RIDE>创建新套件Mytest>引入MyTestLibrary: (黑色显示表明正确引入)
② 查看关键字:Tools>Search keywords(F5)>选择MyTestLibrary进行查看
③ 创建测试用例调用add, sub关键字
勾选用例执行结果为:35 (unexpected!原因:在rf中输入的不管是字符串还是数字,都默认当成字符串处理!)
④ 修改关键字,将3和5转换成整型相加