01:RF是什么?
由python编写通用型自动型框架
框架-实现特定需求的软件解决方案的工具包
自动化中面临的问题
如何组织我们的自动化脚本?
如何批量选择测试脚本去执行?
如何在测试结果里面清晰的反馈检查点是否通过?
执行结果是否能够清晰美观的报告?
所面临的问题都可以用RF框架去执行
02:测试框架的选型
Unitest
- python内置库
- 测试名以test开头,初始化清除支持单一,
- 不支持输出测试报告
pytest
- 适合规模小,复杂度比较低的项目
- 输入出漂亮测试报告需要结合其他工具
Nose
- 自动嗅探所有以test开头的文件和用例
RF的优点:
- 它定义了灵活且易理解的测试用例执行控制(包括初始化和清除环境)
- 它可以方便挑选要执行的用例和套件(名称,标签过滤)
- 它有清晰的日志和报表功能,让QA和manger可以清晰查看执行测试结果(自带)
03:环境安装-运行环境
1.RF的安装
pip install robotframework
安装成功:
安装成功路径:
2.编辑环境--seleniumlibrary 的安装(不推荐使用Ride)
pycharm编写
安装插件IntelliBot支持语法高亮
支持selenium自动化的RF扩展库
pip install --upgrade robotframework- seleniumlibrary
注意:
Chromedriver和Chrome版本要一致
下载Chromedriver地址:http://chromedriver.storage.googleapis.com/index.html
04:RF注意点
- RF编码格式统一用UTF-8
- 新建文件时尽量再pycharm新建,不要用Windows,如果有中文,会遇到解码错误
05:RF用例
Settings
Test Cases表 写用例
06:用例语法的特点:
- 用例名称顶格写
- 关键字空四格 (关键字本身是python函数)
log to console 打印
- 关键字和参数之间要空两格以上
- 参数与参数要两个以上空格
- 注释:#
- 以纯文本格式
07:执行测试用例
命令执行:
robot -- <option> <datasource>
Option:参数项,可以指定具体的用例或套件,非必填
Datasource:必填,表示执行用例具体路径
查看测试报告
08:百度松勤的例子
*** Settings *** Library SeleniumLibrary *** Test Cases *** case001 open browser http://www.baidu.com chrome set selenium implicit wait 10 input text id=kw 松勤\n ${res} get text id=1 should contain ${res} 松勤网 close browser
test suite 和testcase
测试套件,就是测试用例的集合
一般我们把功能相关的测试用例组合起来放在一起,成为某个测试套件
套件文件里面包含测试用例
RF结构图:
测试库关键字是由seleniumLibrary提供的
利用robotFramework解析(利用RF调用)
09:用例分析
1.关键字
- RF里面的关键字我们可以看做是对应编程语言里面的函数概念
- RF的核心就是关键字,关键字提供了自动化的能力集
2.测试库
- 关键字有测试库提供
- 实现关键字的库,按类型来分,可以分为RF标准库和扩展库
- 标准库是安装RF,就已经安装好python库文件
- 放在python的Lib/site -packages/robot/libraries目录下
- RF可以让开发自行开发扩展库。其实扩展库和标准库比起来,主要的区别就是没有RF内置,其开发方式和标准库并无不同
10:套件(数据文件)文件中的表
RF支持四种的表:
分别为Settings,variables,Test Case,Keywords
表名必须出现在第一单元格。表名大小不敏感
Settings表,是这个测试套件的 全局配置表。如果,说明这个测试套件要使用的测试库,资源文件,测试套件的环境初始化(setup)和清除化(tear down)
11:测试用表语法
测试用例里面的每个测试用例 大概可分为
1.配置部分
2.主体部分
1.1 用例配置部分
【Documentation】该用例的文字说明
【Tags】该用例的标签
【Setup】【Teardown】该用例的初始化和清除操作
【Temlate】声明该用例模板关键字驱动
【Timeout】设置用例超时时间
2.1 用例主体部分主要有关键字组成
关键字的来源
测试库
资源文件
用例所在文件的关键字表
用例主体部分也包含变量赋值
PS:相对路径如:lesson1>suitel>t1--- 命令:E:\lesson1》 robot suitel/t1.robot