什么是RF
RF是一个基于 Python 的、可扩展的关键字驱动的自动化 验收测试框架、验收测试驱动开发 (ATDD)、 行为驱动开发 (BDD) 和机器人流程自动化 (RPA)。它 可用于分布式、异构环境,其中自动化 需要使用不同的技术和接口。
该框架周围有一个丰富的生态系统,由各种通用 作为单独项目开发的库和工具。查看更多 有关机器人框架和生态系统的信息,请参阅 http://robotframework.org。
为什么使用RF?
- 支持易于使用的表格语法,以便在统一的环境中创建测试用例 道路。
- 提供从 现有关键字。
- 以 HTML 格式提供易于阅读的结果报告和日志。
- 独立于平台和应用程序。
- 提供用于创建自定义测试库的简单库 API 可以使用 Python 本地实现。
- 提供命令行界面和基于 XML 的输出文件 集成到现有的构建基础架构中(持续集成 系统)。
- 为测试 Web 应用程序、rest API、移动应用程序提供支持 运行进程,通过 Telnet 或 SSH 连接到远程系统等。
- 支持创建数据驱动的测试用例。
- 内置对变量的支持,特别适用于测试 不同的环境。
- 提供标记以对要执行的测试用例进行分类和选择。
- 实现与源代码管理的轻松集成:测试套件只是文件 以及可以使用生产代码进行版本控制的目录。
- 提供测试用例和测试套件级别的设置和拆卸。
- 模块化架构支持创建测试,甚至对于具有 几种不同的接口。
环境准备
- 安装python
- 虚拟环境中安装robotframework
cd C:\projects
mkdir MyProject
cd MyProject
python -m venv .venv
.venv\Scripts\activate.bat
pip install robotframework
robot --version
3.pycharm安装插件
Robot Framework Language Server
为 Robot Framework 添加调试配置以运行当前测试套件
添加 Robot Framework 的调试配置以运行当前测试用例(通过选定的文本)
4、安装库文件
pip install --upgrade robotframework-seleniumlibrary
5、下载浏览器驱动,放置python路径的Scripts目录下。
运行用例
方法一:使用配置的run testsuite按钮。
方法二:
点击在测试文件里左侧的按钮,这里的按钮其实也是插件配置出的按钮。
运行后可以看到测试结果,并生成了html格式的测试报告。
测试报告
项目结构
Test Suites 可以组织在一个或多个robot文件里,可以放在tests/文件夹下
resources 资源文件,里面存放的是可重复使用的keywords,可以是robot文件或py文件,可以放在resources文件夹下,如
common.resource -存放一般的关键字,如Login/Logout,导航
search.robot,跟查询有关的关键字
util.py python相关的关键字
libraries 常用的python关键字库,可以存放在libraries/文件夹下,某些项目会区分libraries和resources,有些不会。
如
my_project
├── tests
│ ├── suiteA.robot
│ ├── suiteB.robot
│ ├── ...
│
├── resources
│ ├── common.resource
│ ├── some_other.resource
│ ├── custom_library.py
│ ├── variables.py
│ ├── ...
│
├── .gitlab-ci.yml
├── .gitignore
├── README.md
├── requirements.txt
执行用例
$ robot --pythonpath . tests
一些项目还会有data文件,存放测试数据
my_project
├── tests
│ ├── authentication
│ │ ├── login.robot
│ │ ├── ...
│ │
│ ├── master-data
│ │ ├── customers.robot
│ │ ├── products.robot
│ │ ├── ...
│ │
│ ├── order
│ │ ├── order_creation.robot
│ │ ├── order_processing.robot
│ │ ├── ...
│
├── resources
│ ├── common.resource
│ ├── search.resource
│ ├── master-data
│ │ ├── customers.resource
│ │ ├── products.resource
│ │ ├── ...
│ │
│ ├── ...
│
├── data
│ ├── master-data
│ │ ├── customers.py
│ │ ├── products.py
│ │ ├── ...
│ │
│ ├── order
│ │ ├── order_creation.yaml
│ │ ├── order_processing.yaml
│ │ ├── ...
│
├── .gitlab-ci.yml
├── .gitignore
├── README.md
├── requirements.txt