1.RobotFramework(RF)的简介和特点
rf是基于python开发的、可扩展的,以关键字驱动的自动化测试框架
建议python版本3.7
数据驱动:数据驱动就是把测试用例的数据放到execl、yaml里面,然后通过改变excel或者yaml文件里面的数据,达到控制测试用例的执行的过程。
关键字驱动:把项目中的一些业务逻辑或者基本的操作封装成一个一个的关键字,然后调用不同的关键字或者关键字的组合实现不同的业务逻辑。
特点:
1、编写测试用例方便,可以以robot/txt/csv/html等格式编写用例
2、自动生成html格式的报告。(unittest:htmltestunner,pytest:allure)
3、自带很多类库,支持很多的扩展库
4、可以根据我们的业务逻辑的需要自定义关键字。(登录、下订单、评论等)
5、支持非GUI的方式运行,还可以和jenkins持续集成。
2、搭建RF的环境
windows安装
-
使用管理员的身份打开cmd里面的dos窗口
-
安装python并且配置python的环境变量,建议安装3.7的版本
-
在dos输入:pip install robotframework
最新版本为 4.1.3,也可安装指定版本号
pip install robotframework==3.1(注意等号两边不能空格)
豆瓣下载源:
pip install i https://pypi.douban.com/simple robotframework
-
在dos输入: pip install robotframework-ride 生成桌面快捷方式
豆瓣下载源:
pip install i https://pypi.douban.com/simple robotframeworkride
ride是rf的可视化工具
-
检查是否安装完成
pip list
3、ride工具的介绍
测试套件:
edit标签:
Setting设置
加载外部文件(扩展库、资源文件、变量文件、帮助文档)
定义内部变量
定义元数据
4、RF类库和扩展库
-
标准库(rf自带的库,不需要额外安装)
Buitln(测试库)
Collections(集合库)
DateTime(时间库)
Screenshot(截屏库)
存储位置:D:\python\Lib\site-packages\robot\libraries
-
扩展库(需要通过pip命令额外安装的库)
web自动化的测试:SelenlumLibrary
安装: pip install robotframework-seleniumlibrary
接口自动化测试: RequestsLibrary
安装: pip install robotframework-requests
app自动化测试:AppiumLibrary
安装:pip install robotframework-appiumlibrary
存储的位置:D:\python\Lib\site-packages
5、RF的基本使用
6、常用的关键字
使用关键字快捷键: shift+crtl+空格 ,框架会自动提示
关键字 | 作用 | 实例 |
---|---|---|
Log | 打印日志 | Log “string” |
Set Variable | 设置变量 | ${a} Set Variable 100 |
Get Time | 获得系统时间 | ${time} Get Time |
catenate | 字符串拼接 | ${str} catenate a b c |
SEPARATOR | 指定字符串以X拼接,通常和catenate结合使用 | SEPARATOR=# |
Create List | 创建列表 | ${list} Create List a b c |
Create Dictionary | 创建字典 | ${dic} Create Dictionary name =zhangsan age=18 |
Get Dictionary Keys | 获取字典所有的key | ${key} Get Dictionary Keys ${dic} |
Get Dictionary Values | 获取字典所有的value | ${values} Get Dictionary Values ${dic} |
Get From Dictionary | 通过key获取value | ${value} Get From Dictionary ${dic} key |
进阶关键字:
Evaluate:执行python中的方法
用法:
Import Library:导入自定义方法
用法:
Run Keyword If:流程控制if
用法:
FOR:流程控制for
用法:
Take Screenshot:截图
用法: