RobotFramework相关
一:RobotFramework的简介和特点
RF是一个基于Python语言开发的,可扩展的,是以关键字驱动模式的自动化测试框架,RF最新的版本是2019年7月份发布,7月份之前只支持python2.7,7月之后支持3.X的版本
补充:关键字驱动和数据驱动的区别?
关键字驱动:把项目中的一些逻辑封装成关键字(一个函数名),login,register,调用不同的关键字组合实现不同的业务逻辑,从而驱动测试用例执行。
数据驱动:把测试用例里面的数据提取到excel或者yaml文件里面,然后通过改变excel或者yaml中的数据驱动测试用例执行。
RobotFramework的特点:
1:编辑用例简单,可以以robot,txt,tsv或者html的格式编写用例
2:自动生成html格式的测试报告和日志(HtmlTestRunner.py,allure)
3:除了自带的类库外,还有很多的实用的类库
4:可以根据项目的需要自定义一些关键字
5:可以使用GUI的方式运行,可以和SVN或者GIT及Jenkins持续集成
二:RF环境安装
1:安装python3.7.X(可能出现不兼容情况)而且配置python的环境变量。
2:以管理员身份打开dos窗口
安装 pip install robotframework==3.1 (最新3.2会出现很多问题) 如果安装出错进行
卸载 pip uninstall roborframework
需要安装RIDE(是robotframework的开发工具)工具:pip install robotframework-ride
(提示安装很慢)
可以下载豆瓣源下载:
pip install -i https://pypi.douban.com/simple robotframework==3.1
pip install -i https://pypi.douban.com/simple robotframework-ride
三:RF的使用
1:创建项目:new project
注意:输入项目名称,选择目录路径,选择Directory目录
2:在项目中创建模块(它是测试用例的载体) New Directory
2:创建测试套件(New Suite)
注意:选择file
关注:Edit页签,主要有四大块:
(1)setting设置
描述
测试套件之前的准备工作
.......
测试用例模板
测试用例超时的时间
强制标记:smoke冒烟用例
默认标记:product等
(2)import:导入外部文件
Library:导入外部类库(如果成功显示黑色,黑色表示失败)
Resource:导入自定义关键字
(3)定义内部变量
(4)元数据
3:创建测试用例(New Test Case)
4:创建业务关键字(资源文件,它是自定义关键字的载体)
注意:只能在文件夹下面创建,并且是txt格式
5:创建用户自定义关键字(new user keyword)
四:RF常用类库
1.标准库:不需要安装,直接用,RF自带
Buitini(测试库)
Collections(集合库)
Date Time(时间库)
ScreenShot(截屏库)
标准库的位置:(在pycharm中安装robotframework安装的)
D:installpythonpythonLibsite-packages obotlibraries
2.扩展库:需要通过pip安装库
web自动化测试:SeleniumLibrary,Selenium2Library,Selenium2Library for java
接口自动化测试:RequestsLibrary
APP自动化测试:AppiumLibrary
安装方式:
pip install robotframework-seleniumlibrary==3.0.0
pip install robotframework-requests
pip install robotframework-appiumlibrary
扩展库的位置:
D:installpythonpythonLibsite-packages
特别强调:在导包是一定要和文件夹的名字一致,包括大小写
五:RF常用关键字
前提:快捷键的掌握
1.搜索:F5
2.自动补全:Ctrl+Shift+空格
1).打印log
log 关键字就是编程语言里的“print”一样,可以打印任何你想打印的内容。
2).定义变量
通过“Set variable”关键字来定义变量
3).连接对象
“Catenate”关键字可以连接多个信息
加上“SEPARATOR=”可以对多个连接的信息进行分割。
4).定义列表
通过“Create List”关键字可以定义列表。每个字符串前面加 u,是为了统一编码问题,将字符串转为 Unicode 编码。
5).时间的操作
Robot Framework 中提供了“get time”关键字用来获取当前时间。
6).设置休眠时间
“sleep”关键字用来设置休眠一定时间,sleep 关键字默认以“秒”为单位。
7).if语句
通过“run keyword if”关键字可以编写 if 分支语句。
首先定义一个变量 a 等于 59 。
If 判断 a 大于等于 90 ,满足条件 log 输出 “优秀 ”;
不满足上面的条件,接着 else if 判断 a 大于等于 70 ,满足条件 log 输出 “良好”;
不满足上面的条件,接着 else if 判断 a 大于等于 60 ,满足条件 log 输出 “及格”;
上面的条件都不满足,else log 输出“不及格”。
注:注意 ELSE IF 和 ELSE 前面的三个点点点(...)。注意ELSE IF和ELSE要是大写。
8).for 循环
在 Robot Framework 中编写循环通过“:for”。通过“:for”定义 for 循环;in range 用于指定循环的范围。
这个例子为执行 10 次循环
注意:in range 定义为 10,它的范围是 0~9
9).注释
(1)“Comment”关键字用于设置脚本中的注释。
(2)也可以像 Python 一样使用“#”号进行注释