Robot Framwork自动化测试框架详解

目录

一、介绍

二、Robot Framework框架与.robot文件

.robot 文件是 Robot Framework 的核心载体

Robot Framework 框架对 .robot 文件的解析与执行

三、.robot文件结构

Setting(设置)

Variables (变量)

Test Cases (用例)

Keywords(关键字)

Comments (注释)

四、Pycharm中相关配置

五、.robot 文件的简单示例


一、介绍

Robot Framework是一个基于Python的关键字驱动的自动化测试框架

官网地址Robot Framework

以下是关于Robot Framework的几个特点:

  1. 基于关键字驱动: 它允许测试人员使用Python封装关键字,这些关键字可以在非编码环境下被用来构建可执行的测试用例。

  2. 易于扩展: 作为一个开源工具,它提供了高度的可扩展性,用户可以根据需要自定义关键字和库,以适应不同的测试场景。

  3. 支持多种应用: 适用于端到端验收测试和验收测试驱动开发(ATDD),可以用于测试分布式异构应用程序。

  4. 数据语法简单: 它使用简单的数据语法,使得编写测试用例变得更加直观和容易理解。

  5. 集成能力强: 可以与持续集成工具和其他测试工具集成,以便于实现自动化测试流程。

  6. 跨平台: 支持多种操作系统,包括Windows、Linux等,这使得它可以在不同的开发环境中使用。

  7. 社区支持: 有着活跃的社区和丰富的文档,为使用者提供了良好的学习和交流平台。

  8. 免费开源: 作为一个开源项目,它是完全免费的。

二、Robot Framework框架与.robot文件

.robot 文件是 Robot Framework 的核心载体

.robot 文件是 Robot Framework 中用于编写测试用例、测试套件以及相关配置信息的标准文件格式。在自动化测试工作中,测试人员依据具体的测试需求,在 .robot 文件里定义各种测试用例,详细描述测试的步骤和预期结果。例如,对于一个 Web 应用的登录功能测试,在 .robot 文件中可以编写包含打开登录页面、输入用户名和密码、点击登录按钮以及验证登录结果等步骤的测试用例。

.robot 文件采用了清晰的表格结构来组织测试数据,主要包含 *** Settings ***、*** Variables ***、*** Test Cases *** 和 *** Keywords *** 等几个部分。不同的部分承担着不同的功能,这种结构化的设计使得测试数据的管理和维护变得更加方便。

Robot Framework 框架对 .robot 文件的解析与执行

Robot Framework 框架具备对 .robot 文件进行解析的能力。当执行测试时,框架会读取 .robot 文件中的内容,按照特定的语法规则将其解析为可执行的指令。例如,框架会识别文件中定义的关键字和测试用例,并将其转换为相应的 Python 代码或调用相应的测试库进行执行。

解析完成后,Robot Framework 会按照 .robot 文件中定义的测试用例顺序依次执行。在执行过程中,框架会根据关键字调用相应的测试库来完成具体的操作,如使用 Selenium 库进行 Web 页面的自动化操作。同时,框架会记录每个测试用例的执行结果,包括是否通过、执行时间等信息。

三、.robot文件结构

Robot文件通常以.robot为后缀名,一个典型的 Robot Framework 测试用例文件通常包含以下几个部分:

  1. 设置(Settings):设置部分,用于定义测试用例的配置信息。
  2. 变量(Variables):变量部分,用于定义测试用例中使用的变量。
  3. 测试用例(Test Cases):测试用例部分,包含具体的测试用例,每个用例包含若干步骤。
  4. 关键字(Keywords):关键字部分,用于定义可重用的关键字或步骤。

示例Robot文件结构如下:

*** Settings ***
Library    SeleniumLibrary

*** Variables ***
${URL}    

*** Test Cases ***
Open Website
    Open Browser    ${URL}    chrome
    Title Should Be    Example Domain
    Close Browser

Setting(设置)

用于设置测试文件的全局配置,例如导入库、资源文件等。

LibraryResourceVariables 是最常用的设置项。每个设置项后面用 空格 分隔,然后填写具体内容。

常见的设置包括:

Library: 导入外部库或资源文件.
Resource: 导入资源文件,可以包含变量、关键字等.
Test Case Exit On Failure: 当测试用例失败时退出.
Test Timeout: 设置测试用例的超时时间.

示例:

*** Settings ***
 Library    OperatingSystem       # 导入标准库
 Library    my_library.py         # 导入自定义库
 Resource   shared_keywords.robot # 导入共享的关键字文件
 Variables  variables.py          # 导入变量文件
 Documentation   This is a sample test file.   # 文件的描述文档

大小写不敏感,环绕的空格可以忽略,并且星号符的数量可以变化,但最开始必须有星号符。上文举例使用的是复数形式,但是单数也可以接受。所以上文可以改为 “*setting” 。

Variables (变量)

用于定义全局变量,这些变量可以在整个测试文件中使用。

支持字符串、列表、字典等类型。

  • 变量名称用 ${} 表示。
  • 列表用 @{} 表示。
  • 字典用 &{} 表示。

示例:

   *** Variables ***
  ${URL}           http://example.com
  ${USERNAME}      admin
  ${PASSWORD}      secret
   @{USER_LIST}     user1    user2    user3
  &{USER}         username    admin    password    secret

Test Cases (用例)

定义测试用例,是测试文件的核心部分。

  1. 每个测试用例的名称占一行,下面是该用例的执行步骤。
  2. 用例名称不需要特别标记,直接写在第一列。
  3. 测试步骤按照 一行一个操作 书写,操作之间用空格分隔。
  4. 可以调用关键字,也可以嵌套其他操作。

示例:

*** Test Cases ***
Valid Login
   [Tags]    smoke
   Open Browser To Login Page
   Input Username    demo
   Input Password    mode
   Submit Credentials
   Welcome Page Should Be Open
   [Teardown]    Close Browser

Keywords(关键字)

定义用户自定义的关键字(复用功能)。

  • 自定义关键字可以像函数一样调用,用来简化测试用例代码。
  • 自定义关键字名称写在第一列。
  • 关键字内部可以调用其他关键字或执行操作。
  • 可以通过 [Arguments] 来定义参数。
    • 可以传递任意数量的参数,必须严格按照关键字定义的顺序。
    • 可选参数可以通过默认值支持。
  • 关键字调用不区分大小写。

示例:

  *** Keywords ***
  Open Browser
      [Arguments]    ${url}    ${browser}
      Open Browser    ${url}    ${browser}
      Maximize Browser Window
  Add Numbers
      [Arguments]    ${num1}    ${num2}
      ${result}=    Evaluate    ${num1} + ${num2}
      [Return]       ${result}

Open Browser To Login Page
Open Browser ${URL} ${BROWSER}
Location Should Be ${URL}/login

Comments (注释)

用于编写注释。
单行注释: 使用 # 开头。
块注释: 写在 *** Comments *** 区域。

示例:

*** Comments ***
  This is a sample comment block.
  # 这是单行注释

四、Pycharm中相关配置

目前网上很多资料介绍需要安装Hyper RobotFramework Support和IntelliBot插件,
如果您装了较新版本的Hyper RobotFramework Support就不需要装 IntelliBot XXX插件,同时装这两个 项目会无法打开。

Hyper RobotFramework Support安装完成后工程界面如下,用例关键字会有高亮区分。

五、.robot 文件的简单示例

在.robot 文件中,首先调用系统自带的库文件Selenium2Library,Selenium2Library提供了一些关键字,比如:

  • Open Browser:用于打开指定的浏览器并访问指定的 URL。
  • Title Should Be:用于验证当前页面的标题是否与预期一致。

定义了两个变量 ${URL} 和 ${BROWSER},分别表示要访问的网址和使用的浏览器。

我们添加一个名为 Open And Check Baidu 的自定义关键字,该关键字的功能是打开百度首页并检查标题是否正确,然后在测试用例中调用这个自定义关键字。

*** Settings ***
Documentation    测试百度首页标题
Library          SeleniumLibrary

*** Variables ***
${URL}           https://www.baidu.com
${BROWSER}       Chrome

*** Keywords ***
Open And Check Baidu
    [Documentation]    打开百度首页并检查标题
    Open Browser    ${URL}    ${BROWSER}
    Title Should Be    百度一下,你就知道

*** Test Cases ***
Verify Baidu Title Using Custom Keyword
    [Documentation]    使用自定义关键字验证百度标题
    Open And Check Baidu
    Close Browser

测试用例名称为Verify Baidu Title Using Custom Keyword,并为测试用例添加描述信息,调用我们自定义的关键字,执行打开百度首页并检查标题的操作。最后,关闭当前打开的浏览器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值