Robot Framework框架原理与优势
Robot Framework是基于Python的关键字驱动自动化测试框架,支持扩展库和插件。采用表格化测试用例设计,通过关键字抽象测试逻辑,降低编写门槛。优势包括:
- 易用性:非技术人员可通过自然语言编写测试用例。
- 可扩展性:支持自定义库和第三方库(如RequestsLibrary、SeleniumLibrary)。
- 多协议支持:涵盖HTTP、数据库、UI等多种测试场景。
与Pytest框架的区别
- 设计理念:Robot Framework强调关键字驱动,Pytest为代码驱动。
- 用例编写:Robot Framework用文本/表格格式,Pytest用Python函数。
- 生态依赖:Pytest依赖Python生态插件,Robot Framework依赖关键字库。
- 报告生成:Robot Framework内置HTML报告,Pytest需插件(如pytest-html)。
常用编辑器
- RIDE:官方推荐,但已停止维护。
- VS Code:安装Robot Framework Language Server插件。
- PyCharm:使用IntelliBot插件。
*** Test Cases ***
示例测试
Log Hello Robot Framework
测试脚本常用语法
- 变量:
${var}
定义,Set Variable
赋值。 - 关键字:用户自定义或库提供,如
Click Button
。 - 循环与条件:
FOR
循环、Run Keyword If
条件判断。
*** Keywords ***
检查状态码
[Arguments] ${expected}
Should Be Equal As Integers ${response.status_code} ${expected}
接口测试环境搭建
- 安装Python及Robot Framework:
pip install robotframework requests robotframework-requests
- 创建项目结构:
project/
├── tests/
│ └── api_test.robot
├── resources/
│ └── common.robot
└── reports/
接口测试项目设计最佳实践
- 分层设计:分离测试用例、关键字和资源文件。
- 数据驱动:使用
[Template]
或外部数据文件(JSON/CSV)。 - 环境隔离:通过变量文件区分测试/生产环境。
*** Settings ***
Library RequestsLibrary
Resource ../resources/common.robot
*** Test Cases ***
GET接口测试
Create Session api http://example.com
${resp}= GET On Session api /endpoint
Status Should Be 200 ${resp}
UI自动化测试环境搭建
- 安装SeleniumLibrary:
pip install robotframework-seleniumlibrary