WHCSRL 技术网

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 一样使用“#”号进行注释

推荐阅读