RobotFramework 入门教程
Robot Framework 是一个基于 Python 的通用自动化测试框架,以关键字驱动(Keyword-Driven)为核心,语法简洁易懂,适合自动化测试(Web、接口、移动端等)和任务自动化。${response}Get Requesthttpbin/# 发送 GET 请求(路径为 /,基于会话的 base_url)${API_URL}https://httpbin.org/get# 测试
Robot Framework 是一个基于 Python 的通用自动化测试框架,以关键字驱动(Keyword-Driven)为核心,语法简洁易懂,适合自动化测试(Web、接口、移动端等)和任务自动化。以下是其详细使用教程:
一、环境准备
1. 安装 Python
Robot Framework 依赖 Python,先安装 Python(推荐 3.8+),并勾选 Add Python to PATH。
2. 安装 Robot Framework
打开终端(CMD/PowerShell/ 终端),执行以下命令:
|
pip install robotframework |
3. 安装常用库(根据需求选择)
- Web 自动化:SeleniumLibrary(基于 Selenium)
|
pip install robotframework-seleniumlibrary |
- 接口自动化:RequestsLibrary(基于 Requests)
|
pip install robotframework-requests |
- 数据库测试:DatabaseLibrary
|
pip install robotframework-databaselibrary |
二、核心概念
- 测试用例(Test Case):具体的测试步骤,由关键字组成。
- 关键字(Keyword):最小执行单元,可来自内置库(如 Log)、第三方库(如 Open Browser)或自定义。
- 测试套件(Test Suite):包含多个测试用例的文件(.robot 格式),可嵌套形成套件层级。
- 变量(Variable):存储数据,格式为 ${变量名}( scalar)、@{列表}( list)、&{字典}( dict)。
三、第一个示例:Web 自动化测试
1. 创建测试套件文件
新建 first_test.robot,内容如下:
|
*** Settings *** # 导入需要的库(这里用 SeleniumLibrary 做 Web 测试) Library SeleniumLibrary *** Variables *** # 定义变量(URL、浏览器、搜索关键词等) ${URL} https://www.baidu.com ${BROWSER} Chrome ${SEARCH_KEYWORD} Robot Framework *** Test Cases *** # 测试用例 1:打开百度并搜索 百度搜索测试 Open Browser ${URL} ${BROWSER} # 打开浏览器 Maximize Browser Window # 最大化窗口 Input Text id=kw ${SEARCH_KEYWORD} # 在搜索框输入关键词(百度输入框 id 为 kw) Click Button id=su # 点击搜索按钮(百度搜索按钮 id 为 su) Sleep 2 # 等待 2 秒(避免页面加载过慢) Page Should Contain ${SEARCH_KEYWORD} # 验证页面包含搜索关键词 Close Browser # 关闭浏览器 |
2. 运行测试用例
终端进入文件所在目录,执行:
|
robot first_test.robot |
3. 查看结果
运行后会生成 3 个文件:
- output.xml:原始结果数据
- log.html:详细日志(推荐查看,包含步骤和截图)
- report.html:测试报告(汇总结果,如通过率)
打开 log.html 可看到每一步的执行情况,若失败会显示错误信息。
四、关键字详解
1. 内置关键字(来自 BuiltIn 库,默认导入)
- Log:打印日志,如 Log 这是一条日志
- Sleep:等待,如 Sleep 3(等待 3 秒)
- Should Be Equal:断言相等,如 Should Be Equal ${a} ${b}
2. SeleniumLibrary 关键字(Web 测试常用)
- Open Browser:打开浏览器(Open Browser URL 浏览器名)
- Input Text:输入文本(Input Text 定位方式=值 文本,定位方式支持 id、name、xpath 等)
- Click Element:点击元素(Click Element xpath=//button)
- Page Should Contain:验证页面包含文本
- Close Browser:关闭当前浏览器
- Quit Browser:关闭所有浏览器
五、变量与参数化
通过变量可灵活修改测试数据,示例:
|
*** Variables *** ${USERNAME} test_user ${PASSWORD} test_pass *** Test Cases *** 登录测试 Open Browser https://example.com/login Chrome Input Text name=username ${USERNAME} # 使用变量输入用户名 Input Text name=password ${PASSWORD} # 使用变量输入密码 Click Button xpath=//button[@type='submit'] Page Should Contain 登录成功 Close Browser |
六、自定义关键字
当内置关键字无法满足需求时,可自定义关键字(复用逻辑):
|
*** Keywords *** # 自定义关键字:打开百度并搜索(封装重复步骤) 打开百度并搜索 [Arguments] ${keyword} # 定义参数 Open Browser ${URL} ${BROWSER} Input Text id=kw ${keyword} Click Button id=su Sleep 2 *** Test Cases *** # 调用自定义关键字 搜索 Python 打开百度并搜索 Python Page Should Contain Python Close Browser 搜索 Java 打开百度并搜索 Java Page Should Contain Java Close Browser |
七、接口自动化示例(使用 RequestsLibrary)
1. 安装库
|
pip install robotframework-requests |
2. 测试用例(api_test.robot)
|
*** Settings *** Library RequestsLibrary *** Variables *** ${API_URL} https://httpbin.org/get # 测试接口(GET 请求) *** Test Cases *** GET 接口测试 Create Session httpbin ${API_URL} # 创建会话(类似 requests.Session()) ${response} Get Request httpbin / # 发送 GET 请求(路径为 /,基于会话的 base_url) Log ${response.status_code} # 打印响应状态码 Should Be Equal As Integers ${response.status_code} 200 # 断言状态码为 200 Log ${response.json()} # 打印响应 JSON 数据 |
运行命令:
|
robot api_test.robot |
八、运行测试的高级选项
- 指定测试用例:只运行某个用例
|
robot -t "百度搜索测试" first_test.robot |
- 指定输出目录:将结果保存到 results 文件夹
|
robot -d results first_test.robot |
- 并行运行:需安装 pabot(并行执行工具)
|
pip install pabot pabot --processes 2 first_test.robot # 2 个进程并行运行 |
九、扩展:自定义 Python 关键字
若 Robot Framework 关键字不够用,可通过 Python 编写自定义库:
1. 创建 Python 文件(my_keywords.py)
|
def add_numbers(a, b): """自定义关键字:计算两个数的和""" return int(a) + int(b) |
2. 在 Robot 中使用
|
*** Settings *** Library my_keywords.py # 导入自定义库 *** Test Cases *** 测试自定义关键字 ${result} add_numbers 3 5 # 调用 Python 中的 add_numbers 函数 Should Be Equal ${result} 8 # 断言结果为 8 |
十、常用工具
- RIDE:Robot Framework 官方 IDE(可视化编辑,适合新手),安装命令:pip install robotframework-ride,启动命令:ride.py。
- VS Code 插件:Robot Framework Language Server(语法高亮、自动补全)。
通过以上步骤,你可以快速入门 Robot Framework,并根据需求扩展到 Web、接口、数据库等测试场景。核心是掌握 关键字调用 和 用例组织,复杂逻辑可通过自定义关键字或 Python 扩展实现。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)