当前位置:首页 > 技术 > 正文内容

Robot Framework 自动化测试入门指南

访客 技术 2026年8月5日 1

环境搭建

首先,需要安装 Robot Framework 及其常用的 Selenium2Library 库。推荐使用 pip 进行安装:


pip install robotframework robotframework-selenium2library
    

对于 PyCharm 用户,可以安装以下插件以获得更好的开发体验:

  • IntelliBot
  • Run Robot Framework Testcase
  • RunRobot Framework

基本结构与语法

Robot Framework 测试用例文件(.robot)遵循特定的结构,主要包含以下几个部分:

  • Settings: 配置测试套件的各种设置,例如引入库 (Library)、资源文件 (Resource)、设置默认标签 (Default Tags)、定义测试开始 (Test Setup) 和结束 (Test Teardown) 的关键字、指定测试模板 (Test Template) 以及设置超时时间 (Test Timeout)。
  • Variables: 定义可在测试套件中使用的变量。
  • Keywords: 定义可重用的关键字。
  • Test Cases: 编写实际的测试用例。每个测试用例可以包含标签 (Tags)、模板 (Template)、文档 (Documentation)、超时 (Timeout)、返回值 (Return) 等属性,并可以接受参数 (Arguments)。

测试套件(Suite)与初始化

在 Robot Framework 中,目录可以作为测试套件。在目录下放置 __init__.robot 文件,可以为该套件定义通用的 Test SetupTest Teardown 等设置。


*** Settings ***
Test Setup     Setup For All Tests
Test Teardown  Teardown For All Tests

*** Keywords ***
Setup For All Tests
    Log  开始执行测试套件...

Teardown For All Tests
    Log  测试套件执行完毕.
    

关键字定义

关键字可以包含参数,并可以指定返回值。


*** Keywords ***
用户登录
    [Arguments]  ${user_name}  ${user_password}
    Open Browser   http://example.com/login    chrome
    Input text     id=username_field    ${user_name}
    Input text     id=password_field    ${user_password}
    Click button   id=login_button
    ${login_status}  Page Should Contain  欢迎,${user_name}
    [Return]       ${login_status}
    

示例:百度搜索自动化

以下是一个使用 SeleniumLibrary 库进行百度搜索的简单示例。


*** Settings ***
Library    SeleniumLibrary

*** Test Cases ***
基础搜索功能验证
    Log    开始执行 Robot Framework 示例.

百度搜索 Robot Framework
    Open Browser    http://www.baidu.com    chrome
    Input text      id=kw    Robot Framework
    Click button    id=su
    Wait Until Page Contains    Robot Framework_百度搜索
    Close Browser

    

更完整的 Selenium 示例

baidu_search.robot


*** Settings ***
Documentation    使用 SeleniumLibrary 进行百度搜索功能的演示.
Library          SeleniumLibrary

*** Variables ***
${APP_URL}        http://www.baidu.com
${BROWSER_TYPE}   Chrome

*** Keywords ***
执行百度搜索
    [Arguments]    ${keyword}
    Input text     id:kw    ${keyword}
    Click button   id:su
    Sleep    2s
    ${page_title}   Get title
    [Return]        ${page_title}

*** Test Cases ***
搜索 Robot Framework
    Open Browser    ${APP_URL}    ${BROWSER_TYPE}
    ${title}        执行百度搜索    Robot Framework
    Should Contain  ${title}    Robot Framework_百度搜索
    Close Browser

搜索 Selenium
    Open Browser    ${APP_URL}    ${BROWSER_TYPE}
    ${title}        执行百度搜索    Selenium
    Should Contain  ${title}    Selenium_百度搜索
    Close Browser
    

无头浏览器(Headless Browser)模式

以下示例演示如何在无头模式下运行 Chrome 浏览器。


*** Settings ***
Documentation     演示如何使用当前库在无头模式下运行浏览器.
Library           SeleniumLibrary
Library           OperatingSystem  # 用于导入 Python 模块

*** Test Cases ***
Chrome 无头模式启动与访问
    ${options}  Evaluate  sys.modules['selenium.webdriver'].ChromeOptions()  sys, selenium.webdriver
    Call Method  ${options}  add_argument  --headless=new  # 新版 Chrome 使用 --headless=new
    Call Method  ${options}  add_argument  --disable-gpu
    Call Method  ${options}  add_argument  --window-size=1920,1080 # 设置窗口大小以适应页面
    Create Webdriver    Chrome   chrome_options=${options}
    Go To    https://www.baidu.com
    ${page_title} =    Get Title
    Log To Console    当前页面标题: ${page_title}
    Quit Browser
    

数据库操作示例

通过 DatabaseLibrary 可以方便地与数据库进行交互。


*** Settings ***
Library    DatabaseLibrary

*** Test Cases ***
数据库查询演示
    Connect To Database Using Custom Params    pymysql    database='your_db_name', user='your_user', password='your_password', host='your_host', port=3306, charset='utf8'
    ${query_result}     Query     SELECT * FROM your_table WHERE condition='some_value'
    Log           查询结果: ${query_result}
    Disconnect From Database
    

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

linux screen 用法详情 (nohup 的替代方案)

一、screen 是什么?能干嘛?screen 是一个终端复用器,可以:在一个 SSH 会话中开多个“虚拟终端”SSH 断线后,程序仍然在后台运行随时重新连接到原来的会话特别适合:nohup 的替代方案跑脚本 / 爬虫 / 训练模型运维、远程开发二、安装 screen# CentOS / Rocky / Almayum install -y screen# Debian / Ubuntuapt i...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。