Robot Framework
【一】简介
- 通用的测试自动化框架(不限于WEB自动化);
- 提供测试的基本功能;
- 可控制哪些运行,哪些不运行;
- 写断言,让框架帮忙做断言;
【二】特点
- 使用简单
- 非常丰富的库
- 可以像编程一样写用例
- 支持开发系统关键字
- 可以很好的把自动化测试人员进行划分
【三】Robot Framework库
- Builtin:提供了一组通常需要的通用关键字
- String:生成、修改和验证字符串的库
- Screenshot:提供关键字捕捉桌面截图
- XML:生成、修改和验证xml文件的库
- DateTime:日期和时间转换库
【四】常用库
- web自动化测试:seleniumLibrary selenium2Library selenium2Library for java watir-robot等
- windows gui测试:autoltLibrary
- 移动测试:android library ios library appiumlibrary
- 数据库测试: database library(java) database library(python) mongodb library等
- 文件对比测试:diff library
- http测试:http library(livetest)、http library(requests)等
【五】安装准备(不是非ride不可)
- python(python2到2020年停止维护)
- robot framework
- wxPython2.8.12.1(win32)[可选]——基于windows gui,不支持python3
- robot framework-RIDE[可选]——基于wxPython2.8.12.1(win32)
【六】创建测试用例的过程
步骤:
1、创建一个测试项目(一个目录)
2、在目录下创建测试套件(文件rf_suit.robot)
3、在测试套件下创建测试用例(小例子:打印一个字符串)
4、执行
1)在当前目录下打开命令行窗口;
2)pybot --test test_case rf_suit.robot //运行test_case
3) pybot --test test_case2 rf_suit.robot //运行test_case2
4) pybot rf_suit.robot //运行全部的case
5) 执行成功后在当前目录下生成日志和报告;
【log.html】
【report.html】
5、robot framework运行测试
1)运行一条用例
pybot --test test_case test_suit.robot
2) 运行指定文件
pybot test_suit.robot
3) 运行当前目录下以.robot为后缀名的测试文件
pybot *.robot
4) 运行当前test_a目录下的所有用例
pybot test_a
5) 运行当前目录下的所有以.robot为后缀名的测试文件
pybot ./
6、 robotframework-selenium2Library
1)安装robotframework-selenium2Library
python -m pip install robotframework-selenium2Library
2) 查看包名:D:\Python\Python36\Lib\site-packages
3)引包:(关键字底层就是写好的类方法,位置:D:\Python\Python36\Lib\site-packages\SeleniumLibrary\keywords\browsermanagement.py)
4) 运行结果(log)
7、封装操作流
【步骤】
1)创建一个资源文件
2)在资源文件下创建用户关键字 (rf_suit.robot)
3) 调用关键字
8、开发系统关键字
【步骤】
注意:小例子,定义的函数文件和初始化文件都需要放在D:\Python\Python36\Lib\site-packages 目录下;
1、定义加减法函数
#coding=utf-8 class Count(object): def add(self,a,b): c = int(a)+int(b) return c def sub(self,a,b): c = int(a)-int(b) return c if __name__ == '__main__': c = Count() result = c.add(3,5) assert result == 8 result = c.sub(3,5) assert result == -2
2、定义初始化文件
from test import Count __version__ = "0.1" class WhdTestLibrary(Count): ROBOT_LIBRARY_SCOPE = 'GLOBAL'
3、调用脚本
9、 ROBOT FRAMEWORK的缺点
1) 学习成本高 经验封闭——语法都是自己的语法,而且不可转换,
2) 脚本可读性查
3) 不如直接写Python代码自由