Robot Framework
- Robot Framework是一个通用型的自动化测试框架
- 框架 - 实现特定需求的软件的解决方案工具包
什么是自动测试框架
- 为解决某一个领域问题的工具包。
- 自动测试用例的实现方式
- 自动测试用例的开发支持
IDE(RIDE)
库
和用例管理系统的集成
测试执行
-
相关测试套件(Suite)和测试用例的执行规则
-
初始化和清除
-
测试报告
测试人员开发测试数据文件对应一个个的测试用例
测试数据里面使用的功能小模块叫关键字,由测试库实现
- Robot Framework加载测试库,并解释执行Test Data也就是测试用例
RF的安装(py2和py3都支持)
RF的安装(python语言开发的,就是一个库)
1.在Python中安装 robotframework
- 执行命令 pip install robotframework
2. seleniumlibrary #支持selenium自动化的RF扩展库**
-
在两个Python中安装 seleniumlibrary
-
安装命令 pip install robotframework-seleniumlibrary
-
或者 pip install --upgrade
robotframework-seleniumlibrary(–upgrade写不写都可以)
3.pycharm安装插件
在Pycharm中,点击菜单 file - settings - plugins
在弹出对话框中 点击下方 按键 Browse Repository
在新对话框中, 搜索栏里面输入 robot
安装 下面3个插件
-
IntelliBot #pycharm里面语法高亮的插件
-
IntelliBot @SeleniumLibrary Patched
#SeleniumLibrary的关键字有事不能导航到diamante里面去,建议安装这个库 -
Run Robot framework file #或(Run Robot Framework TestCase)随便安装一个。
装好了之后可以在pycharm里面直接运行,的敲命令
上面3步装好就行了
ride是图形界面的,提供了可视化的编辑功能,ride的开发者已经不维护他了,只可以py2用。不建议使用。开源的代码,有人已经开发了py3的。
test suit 和testcase
测试套件,就是测试用例的集合
一般我们把功能相关的测试用例组合起来放在一起,成为某个测试套件 #可以是一个目录,可也以是一个文件。跟文件夹一样,可以层层嵌套。文件里面是测试用例。
测试套件里面包含测试用例
代码例子:
*** Settings *** #相当于import 库,它的导入申明就是这样的。配置的表,三个星号加表的名字。测试用例文件是由表组成的。
Library SeleniumLibrary #在rf测试文件中,一共有4种类型的表。
*** Test Cases *** #用例表
百度搜索松勤 #用例名,里面的内容都是缩进的
Open Browser http://www.baidu.com chrome
Set Selenium Implicit Wait 5
Input Text id=kw 松勤\n
${firstRet}= Get Text id=1
Should Contain ${firstRet} 松勤网 #检查点的关键字
**执行用例**
-
开发的时候是一个一个执行
-
批量的时候可以直接执行命令: robot rffile(文件所在目录) 会找出所有的用例执行
执行单个用例:robot text01.robot 用例文件名称
RF支持四种的表
-
分别是:Settings,Variables,Test Cases,Keywords
-
表明必须出现在第一个单元格中,表名大小写不敏感
Settings表,是这个测试套件的全局配置表。比如,说明这个测试套件要使用的测试库,资源文件,测试套件的环境初始化(setup)和清除(tear down),该套件内的标签等等
Test Cases表,是用来定义这个测试套件的测试用例的
Variables表,就是这个测试条件的全局变量表
Keywords表,是用来定义这个测试套件的用户关键字的
关键字的来源
-
测试库
-
资源文件
-
用例所在文件的关键字表
测试用例表里面的每个测试用例 大概可以分为
-
配置部分
[Documentation]该用例的文字说明 [Tags]该用例的标签 [Setup],[Teardown]该用例的初始化和清除操作 [Template]声明该用例是模板关键字驱动的。本用例只包含测试数据 [Timeout]设置用例的超时时间
主体部分
-
用例主题部分主要是有变量组成的
**关键字的来源** 测试库 资源文件 用例所在文件的关键字表
-
用例主题部分也包含变量赋值
rf里面的注释也是用#号