概述
Robot Framework 是一个基于Python的、可扩展的、关键字驱动的测试自动化框架,用于端到端的验收测试或者验收驱动测试开发(ATDD)中。
- 表格式的语法简单易用,以统一的方式创建测试用例
- 可以通过现有关键字创建可复用的高层关键字
- 提供了直观的HTML格式的测试报告和日志文件
- 作为一个测试平台,是应用无关的
- 提供了测试库API,可以轻易地使用Python或者Java创建自定义的测试库
- 提供了命令行接口和基于XML的输出文件,可以与现有框架集成(如持续集成系统)
- 提供了多种测试库支持,如用于web测试的Selenium,Java GUI测试,启动进程,Telnet,SSH等
- 可以创建数据驱动的测试用例
- 内置支持变量,在不同的环境中特别实用
- 提供标签来分类和选择测试用例
- 非常容易与源码控制系统集成,因为测试套件就是文件夹和文本文件
- 提供了用例级别和测试套件级别的setup和teardown
- 模块化的架构,支持针对不同接口的应用程序创建测试
以上摘抄自 Robotframework 中文手册
个人小结
- Robot Framework 定义了测试用例的语法,需要学习手册内容
- RIDE 是 Robot Framework 的 GUI,在RIDE上写测试用例很容易上手
- Robot Framework 支持的第三方库,如 robotframework-seriallibrary,是在pyserial的基础上开发的支持 robot framework 的库,提供了 Robot Framework 使用的串口相关的关键字
- Robot Framework 中的关键字,多数是库里面实现的类的方法名,比如 add_port 可以映射为关键字Add Port / add port / add_port /,使用方法和函数调用一样。具体查看手册。
- 学习Python
- 持续集成:Robot Framework + Jenkins
参考文档
Robotframework 中文手册:
Robot Framework用户手册 — robotframework-userguide-cn 3.0.0 文档
英文版本: Robot Framework User Guide
GitHub 中搜索学习:GitHub: Where the world builds software · GitHub
搜索关键字如:Python, Robot Framework, Serial ...
Python 学习:Python3 教程 | 菜鸟教程 (runoob.com)
需求
开发自动化测试工具,使用 Robot Framework 框架。
测试串口命令 | Robot Frame 外部支持库 Seriallibrary, 下载源码安装 TODO 基于Seriallibrary,编写串口命令测试用例 基于pyserial, 编写自定义库,实现 AT 协议 |
测试HTTP MQTT | Robot Frame 外部支持库 MQTTLibrary, pip install robotframework-mqttlibrary HttpLibrary, pip install robotframework-httplibrary |
DB, MAP等功能 | Robot Frame 外部支持库 DatabaseLibrary, pip install robotframework-databaselibrary 基于 folium 等实现 map 库? |
安装
Python | 安装 Python3.7.9, 需勾选添加到PATH 注:3.7以上版本对Robotframework部分不友好,不推荐 |
Robot Framework | pip install robotframework pip install wxPython==4.0.7.post2 // UI, RIDE(GUI) 的依赖库 pip install robotframework-ride // GUI |
Seriallibrary | robotframework-seriallibrary, python setup.py install 源代码安装,安装后如果导入SerialLibrary失败,uninstall&install pyserial (pyserial 是seriallibrary的依赖库,安装seriallibrary时自动安装) |
库的查看
标准库 | ..\Lib\site-packages\robot\libraries BuiltIn, Collections, DateTime .... |
外部库 | ..\Lib\site-packages MQTTLibrary, DatabaseLibrary, SerialLibrary.... ---- 安装后目录下才有 |
其他
阿里云 | 阿里云 ECS n4 1核 2 G,CentOS 7.9,个人学习用。目前部署了Java Web 环境,Jenkins,构建了 Robot Framework 任务,暂时够用。 |
阿里云部署开发环境 | (假如 Aliyun 外网地址为:120.79.176.140) Java Web 环境 // 按照ECS上的教程安装好 JDK,Tomcat 远程连接:https://ecs-workbench.aliyun.com/ 创建安全组,安全组关联实例,根据需要配置安全组规则 安装Tomcat,修改Tomcat端口为80,安全组添加端口80的规则 ./bin/startup.sh 启动Tomcat,在网页中输入:http://120.79.176.140 |
阿里云部署Jenkins | 参考:https://www.cnblogs.com/superjie/p/9876028.html yum install -y ca-certificates //解决下载提示证书问题 安装Jenkins,修改Jenkins端口为8686,安全组添加端口8686的规则 service jenkins start 启动Jenkins,在网页中输入:http://120.79.176.140:8686/ 激活Jenkins后安装推荐的插件 |
Jenkins + RobotFramework | 节点 ( rftest) 系统管理 -> 全局安全配置 代理->随机选取,Java Web Start Agent Protocol/4 (TLS 加密) 系统管理 -> 节点管理 名称: rftest; 远程工作目录: D:\Jenkins; 标签: rf; 用法: 尽可能的使用这个节点; 启动方式: 通过Java Web启动代理, [√]Use WebSocket; 可用性: 尽量保持代理在线; 本地操作: 连接代理。上面的节点有agent.jar链接及命令行连接命令,下载 agent.jar,在本地用命令行连接代理。 构建任务( rf00 ) 新建 Job -> 输入一个任务名称 rf00 -> 构建一个自由风格的软件项目 General [√]限制项目的运行节点, 标签表达式: rf; 构建 执行Windows批处理命令, 命令: pybot.bat //pybot.bat 所在目录:D:\Jenkins\workspace\rf00 即:节点设置的远程工作目录+workspace+任务名 //pybot.bat 内容:robot D:\rftest\test_serial //D:\rftest\test_serial目录是测试用例目录 构建后操作 Publish Robot Framework Test Results // Jenkins 安装了 Robot Framework 插件才有该选项 Thresholds for build result: 80%, 100% |
Pytest | 如果是我个人玩的话,我会选Pytest,Pytest更加灵活一些,比如失败重跑,robotframe在跑完所有用例后再跑失败的用例,Pytest支持在用例失败是重跑几次再继续跑后面的用例。Pytest对并发的支持也更好一些。 |