学习目标:
- 了解 RobotFramework
学习内容:
- 搭建 RobotFramework 环境
- 掌握 RobotFramework 基本使用
- 掌握 RobotFramework 常用类库
【1】RobotFramework 简介和特点
RobotFramework 是一个基于 Python 语言开发的,可扩展的,以关键字驱动模式的自动化测试框架。
关键字驱动:把项目中的一些逻辑封装成关键字(函数名),例如login,register,Set Variable等。调用不同关键字组合实现不同的业务逻辑,从而驱动测试用例执行。
数据驱动:把测试用例的数据提取到excel或者yaml文件中,通过改变excel或者yaml文件中的数据驱动测试用例执行。
Robot Framework 的主要特点包括:
- 简单易用: 使用自然语言和关键字来编写测试用例,不需要深入的编程知识。
- 平台无关性: 可以在 Windows、Linux、MacOS 等各种平台上运行。
- 灵活性: 支持多种测试库和插件,可以轻松扩展和定制。
- 可读性: 测试用例具有良好的可读性和可维护性,易于理解和修改。
- 丰富的生态系统: 拥有丰富的测试库和工具支持,可以满足各种测试需求。
【2】RobotFramework环境安装(windows)
- 安装python3.7并且设置python环境变量
- 以管理员身份打开dos窗口
pip install robotframework==3.1
pip install robotframework-ride
- 运行ride.py
注:Robot Framework IDE (RIDE)是一个用于编辑和运行RobotFramework测试套件的开发环境(IDE)。
- 安装过程中可能会报错,需要手动下载wxPython包。
- 建议使用镜像源下载
【3】RobotFramework的使用
1. 创建项目
new project
输入项目名称,选择项目路径,选择Dictionary目录
2. 创建测试套件【测试用例的载体】
new testSuite
选择File
3.在测试套件下创建测试用例
new testcase
4. 创建业务关键字(资源文件)【自定义关键字的载体】
new resource
在文件夹下创建,txt格式
5.在业务关键字下创建用户自定义关键字
new user keyword
测试套件
Editor页签
~~~~~
|- Setting:
~~~~~~~~~~
|- Documentation:描述
~~~~~~~~~~
|- Suite Setup/Teardown:测试套件的准备/扫尾工作
~~~~~~~~~~
|- Test Setup/Teardown :测试用例的准备/扫尾工作
~~~~~~~~~~
|- Test Template :测试用例的模板
~~~~~~~~~~
|- Test Timeout :测试用例的超时时间
~~~~~~~~~~
|- Force Tags :强制标记
~~~~~~~~~~
|- Default Tags:默认标记
~~~~~
|- Import:
~~~~~~~~~~
|- Library:导入外部类库(黑色成功,红色失败)
~~~~~~~~~~
|- Source:导入资源文件,如业务关键字
~~~~~
|- Variable
~~~~~
|- Metadata
测试用例
Editor:在表格内编写测试用例
Text Edit:手动编写
Run:运行用例
上图Run页签中常用功能:
Report:报告
Log:日志
Autosave:自动保存
Pause after failure:失败时暂停
Only run tests with these tags:只运行带有这些标记的用例
Skip tests with these tags:跳过带有这些标记的用例
【4】RF常用类库
标准库:RF自带
-
BuiltIn(测试库)
-
Collections(集合库)
-
DateTime(时间库)
-
ScreenShot(截屏库)
扩展库:需要pip安装
-
Web自动化测试:SeleniumLibrary,Selenium2Library,Selenium2Library for java等。
-
API接口自动化:RequestsLibrary
-
APP自动化测试:AppiumLibrary
【5】RF常用关键字
快捷键:
搜索关键字:F5
自动补全关键字:ctrl+shift+空格
【6】UI自动化测试的环境
- pip install -i https://pypi.tuna.tsinghua.edu.cn/simple robotframework-seleniumlibrary
- 下载谷歌浏览器
- 下载谷歌浏览器驱动,chromedriver.exe放到python目录下
- 在RF的测试套件里面导入SeleniumLibrary
谷歌浏览器驱动地址:
https://getwebdriver.com/chromedriver#stable
【7】浏览器操作的关键字
【8】元素定位
元素定位的八种方式:
- id
- name
- link_text
- partial_link_text
- xpath
- css
- class_name
- tag_name
前提:元素必须唯一
id,name,link,partial link定位:
~~~~~
xpath定位:
- 通过绝对路径定位(几乎不用)
- 通过相对路径定位:
~~~~~ //form/span/input - 通过元素属性定位:
~~~~~ //input[@autocomplete=“off”]
~~~~~ //input[@autocomplete=“off” and @class=“s_ipt”] - 通过部分属性定位:
~~~~~ //input[starts-with(@autocomplete,“of”)]或者//input[contains(@autocomplete,“of”)] - 通过文本定位:
~~~~~ //a[text()=“新闻”]
CSS定位
-
通过绝对路径定位(几乎不用)
-
通过ID或者Class定位:
~~~~~ #ID
~~~~~ .class -
通过元素属性定位:
~~~~~ 一个属性定位 :input[autocomplete=“off”]
~~~~~ 两个属性同时定位:input[autocomplete=“off”][class=“s_ipt”] -
通过部分属性定位:
~~~~~ 开头:input[autocomplete^=“of”)]
~~~~~ 结尾:input[autocomplete$=“ff”)]
~~~~~ 包含:input[autocomplete*=“of”)] -
通过子元素定位div#s-top-left a:nth-child(3),id为s-top-left下的第三个a标签。