一、介绍
Robot Framework是一个基于Python的可扩展关键字驱动的自动化框架,其核心是“关键字驱动”,即不需要测试人员自己开发测试代码;而是像selenium IDE一样,根据关键字进行操作即可实现相应的测试。包括对协议级接口测试,GUI界面测试,数据库测试,APP测试,命令行测试等。功能强大。
二、安装
安装Robot Framework及其对应的库
# 安装 Robot Framework核心库文件
pip install robotframework
pip install robotframework-appiumlibrary
# 用于操作数据库的库文件
pip install robotframework-databaselibrary
# 用于处理HTTP请求的库文件
pip install robotframework-requests
# Ride界面操作库文件,是一款专门用来编辑 RF 用例的软件 ,
# Ride安装后结合WxPython库可以实现RF测试脚本的可视化编写,更加方便。
pip install robotframework-ride
pip install wxPython
# 安装Selenium2Library库文件;主要用于实现基于Selenium的Web应用系统的测试。
pip install robotframework-selenium2library
# 用于操作Excel的库文件;
pip install robotframework-excellibrary
以上基本安装完毕;但是安装常规的启动方式 python ride.py 启动不了,因为scripts目录下没有 ride.py文件,因此把他搞到桌面上; 这样就能通过桌面图标启动。
pip install pubsub
pip install pypubsub
pip install psutil
pip install -U --pre robotframework-ride
三、启动
ride的主界面相对简单;这仅仅是方便操作的RF而已;即使不用Ride的GUI界面,直接写关键字驱动的测试脚本也是可以的;就像写Python代码,不用ide工具,用记事本也可以一样;在pycharm中安装插件“IntelliBot”也可以编写RF关键字脚本。
三、实践
桌面双击ride图标,启动RF;新建项目 file -》new project,命名为test ,指定默认文件类型。
第一块,导入资源相关的;如:点击“Library”,在打开的对话框中输入“Selenium2Library”,并点击确定,如果“Selenium2Library”已经正常安装,那么将会在主窗口中正常显示。红色则错误;黑色则正确。
ride的一些模块功能介绍:
加载外部文件
Library:加载测试库,Resource:加载资源,Variables:加载变量文件
定义内部变量
Add Scalar:定义变量。Add List:定义列表型变量。Add Dict:定义字典
元数据定义
Add Metadata:定义元数据。(对“元数据”的理解可百度)
settings
Documentation:文档,(项目,套件,用例都有。)给当前的对象加入文档说明。
Suite Setup:测试套件启动的时候就执行某个关键字。(例:我在Suite Setup设置
Sleep | 5sec,表示等待5秒,要注意关键字的参数要使用 | 分隔)
Suite Teardown:测试套件结束的时候就执行某个关键字。
Test Setup:案例启动的时候执行某个关键字。
Test Teardown:案例结束的时候执行某个关键字。
Test Template:测试模版,这是可以指定某个关键字为这个测试套件下所有TestCase的
模版,这样所有的TestCase就只需要设置这个关键字的传入参数即可。
Test Timeout:设置每一个测试案例的超时时间,只要超过这个时间就会失败,并停止案
例运行。这是防止某些情况导致案例一直卡住不动,也不停止也不失败。
创建RF测试项目、测试套件、测试用例;对应 test project、test suite、test case ;若是安装这种层级方式创建,则创建项目是,type为directory。
如下是打开百度,输入自动化测试,点击百度一下的例子; 注意:这里输入的关键字,蓝色为正确,费蓝色错误。
出错,点击help -》userguild 查看帮助。没有导入 selenium2library库;回到套件模块,点击library导入即可。重新运行,点击运行按钮;正常启动,浏览器也打开。
检查关键字:在套件-》search keywords ;输入就可以查看关键字用法
四、自定义关键字库
1、编写python代码,保存文件并且文件名和类名一致
2、在rf的测试套件中导入对应的 .py 文件
3、编写rf脚本,
小结:总体不如pytest用起来舒服。