Robot Framework 自动化测试框架入门到实战
Robot Framework 自动化测试框架入门到实战
Robot Framework(简称 RF)是一个基于关键字驱动的通用自动化测试框架,用「表格 + 自然语言关键字」写用例,非开发人员也能读懂。本文从环境安装一路讲到 UI 自动化实战。
一、环境安装
RF 基于 Python,建议用虚拟环境隔离:
# 推荐 Python 3.8+,先换国内源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 安装核心框架
pip install robotframework==6.1.1
# 安装可视化编辑器 RIDE
pip install robotframework-ride --verbose
在 Linux 上装 RIDE 若报 gtk3 相关错误,先装系统依赖:
sudo apt-get install libgtk-3-dev
二、RF 基本使用
RIDE 里几个核心概念的关系:Project(项目)→ Test Suite(测试套件)→ Test Case(测试用例)→ Resource(资源/关键字)。
2.1 创建项目与套件
- New Project:填名称、选路径、类型选 Directory(目录);
- New Test Suite:套件是测试用例的载体,类型选 File;
- 重点关注 Edit 页签四大块:
- Settings:描述、套件前后置(Setup/Teardown)、用例前后置、用例模板、超时、强制标记(如
smoke冒烟)、默认标记(如product模块)。两个标记可同时存在、共同作用。 - Import:导入外部文件。
Library:导入类库(导入后名字黑色=成功,红色=失败);Resource:导入关键字等资源文件。
- 定义内部变量;
- 元数据。
- Settings:描述、套件前后置(Setup/Teardown)、用例前后置、用例模板、超时、强制标记(如
2.2 创建用例与关键字
- New Test Case:写具体用例;
- New Resource:业务关键字(用户自定义关键字的载体),注意只能在文件夹下创建,且为
.txt/.resource格式。
三、RF 常用类库
3.1 标准库(无需安装,开箱即用)
| 库名 | 用途 |
|---|---|
| BuiltIn | 内置断言、循环、变量操作 |
| Collections | 列表/字典处理 |
| String | 字符串操作 |
| DateTime | 时间处理 |
| Screenshot | 截图 |
标准库位置参考:.../site-packages/robot/libraries
3.2 扩展库(需 pip 安装)
| 测试类型 | 库 |
|---|---|
| Web UI 自动化 | SeleniumLibrary |
| 接口自动化 | RequestsLibrary |
| APP 自动化 | AppiumLibrary |
pip install robotframework-seleniumlibrary
pip install robotframework-requests
pip install robotframework-appiumlibrary
导入时库名必须与安装包名完全一致(大小写敏感),否则 Import 显示红色。
3.3 常用关键字速查
- 搜索关键字:
F5 - 用例中自动补全:
Ctrl+Shift+空格 - 打印日志:
Log - 系统注释:
Comment - 调用 Python:
Evaluate
四、UI 自动化环境准备
pip install robotframework-seleniumlibrary
要点:浏览器驱动版本必须与浏览器大版本一致。Chrome 驱动下载地址:https://googlechromelabs.github.io/chrome-for-testing/
在测试套件里导入 SeleniumLibrary 后即可使用 Open Browser 等关键字。
五、元素定位
UI 自动化的核心就是「准确定位元素」。RF 支持多种定位策略:
| 定位方式 | 示例 | 说明 |
|---|---|---|
| id | id=username |
最快最稳 |
| name | name=password |
常用 |
| link | link=登录 |
超链接文本完全匹配 |
| partial link | partial link=登 |
超链接文本部分匹配 |
| xpath | //form/div[1]/input |
灵活强大 |
| css | css=#login > input |
CSS 选择器 |
| class name | class_name=btn |
按类名 |
| tag name | tag_name=input |
按标签 |
xpath 常用写法:
绝对路径: /html/body/div[1]/div[2]/form/div[1]/input
相对路径: //form/div[1]/input
属性定位: //input[@placeholder='手机号或邮箱']
部分属性: //input[starts-with(@placeholder,'手')]
文本定位: //span[text()='记住我']
六、项目实战示例
*** Settings ***
Library SeleniumLibrary
*** Test Cases ***
登录成功场景
Open Browser https://example.com/login chrome
Input Text id=username testuser
Input Text id=password testpass
Click Button id=login-btn
Element Should Contain id=welcome 欢迎
Close Browser
七、非 GUI 运行
不用 RIDE,直接在命令行批量跑:
# 跑单个套件
robot tests/login.robot
# 跑整个目录,按 tag 筛选
robot --include smoke tests/
# 生成日志:默认产出 report.html / log.html / output.xml
八、小结
RF 的上手曲线很平缓:装好 robotframework + SeleniumLibrary,用 RIDE 拖出用例骨架,靠「库 + 关键字 + 元素定位」三板斧就能覆盖大部分 UI/接口自动化。真正难的是用例设计和元素稳定性,框架本身反而是最容易的部分。
参考资料
- Robot Framework 官方文档
- 个人学习笔记整理

浙公网安备 33010602011771号