问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Robot Framework自动化测试框架详解

创作时间:
作者:
@小白创作中心

Robot Framework自动化测试框架详解

引用
CSDN
1.
https://blog.csdn.net/qq_45956730/article/details/146069381

Robot Framework是一个基于Python的关键字驱动的自动化测试框架。它允许测试人员使用Python封装关键字,这些关键字可以在非编码环境下被用来构建可执行的测试用例。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(设置)

用于设置测试文件的全局配置,例如导入库、资源文件等。Library、Resource、Variables是最常用的设置项。每个设置项后面用空格分隔,然后填写具体内容。

常见的设置包括:

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,并为测试用例添加描述信息,调用我们自定义的关键字,执行打开百度首页并检查标题的操作。最后,关闭当前打开的浏览器。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号