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 页签四大块:
    1. Settings:描述、套件前后置(Setup/Teardown)、用例前后置、用例模板、超时、强制标记(如 smoke 冒烟)、默认标记(如 product 模块)。两个标记可同时存在、共同作用
    2. Import:导入外部文件。
      • Library:导入类库(导入后名字黑色=成功,红色=失败);
      • Resource:导入关键字等资源文件。
    3. 定义内部变量;
    4. 元数据。

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 官方文档
  • 个人学习笔记整理
posted @ 2026-08-14 09:20  钱栈up  阅读(22)  评论(0)    收藏  举报