Python robot framework框架解析

1,895 阅读4分钟

image.png

「这是我参与2022首次更文挑战的第19天,活动详情查看:2022首次更文挑战

前言

Python 是面向高级对象编程语言,由于自身具有易学习、易阅读,支持跨平台、可扩展可移植可嵌入的特点,让其可以接入第三方库。

目前行业里,自动化测试框架主要有RobotFramework、Appium、Airtest等

image.png

本期,我们将学习一个基于表格编程的开源的自动化测试框架RobotFramework相关知识,Let's go~~

1. Robotframework框架概述

  • 什么是Robotframework 框架?

    RobotFramework 是一个目前流行表格脚本的。由Robot Framework Foundation支持开发的开源免费的可扩展关键字驱动自动化框架。

    image.png

    • 可使用在验收测试方面验收、验收测试驱动开发(ATDD)
    • 可用于行为驱动开发(BDD)、Robot自动化流程开发(RPA)
    • 支持分布式环境部署
    • 支持不同语言的如Java、Python等语言实现库来进行扩展
    • 可以任何工具进行集成,创建强大的灵活的自动化解决方案
    • 目前RobotFramework内置库已经更新到版本4.3.1

    RobotFramework 框架主要分为四部分:

    image.png

    1. Test Data:采用表格格式进行编写的测试用例
    2. RobotFramework: RF系统启动,会处理数据、执行用例和生成日志和报告
    3. Test Libraries: RF系统将测试用例的步骤,交互给库来进行处理
    4. system Under Test: RF测试可以直接通过应用接口,或者测试工具作为驱动程序
  • RobotFramework框架优点

    RobotFramework 框架具有一套自己的简单语法,使用人类可读的关键字,因此具有一下优点。

    1. 易上手,采用表格化编程,覆盖广泛人群使用
    2. 重用性好,可以使用现有的关键字组装成新的关键字
    3. 易扩展,可以使用Python等实现自定义测试库
    4. 易集成,提供命令行界面和xml 输出文件方便接入到持续集成系统
    5. 支持多类型的测试,如WEB测试、AOO测试、SSH、API接口等测试
    6. 易维护,可以支持数据驱动、变量控制、标记管理、级别设置对测试用例进行管理
    7. 良好的报告和日志展示,以HTML形式输出测试结果
  • RobotFramework框架用途

    RobotFramework 框架使用,官方推荐使用Python语言环境。

    目前RobotFramework 4.x版本,支持Python 2.7和Python 3.5以上版本。

    我们需要在本地使用pip下载Robotframework 下载最新版本

    pip install robotframewor
    

    由于 RobotFramework 官方最新版本不稳定,我们可以下载指定版本

    pip --disable-pip-version-check install robotframework 
    

    下载Robotframework框架后,我们需要下载Robotframework 快捷方式ride

    pip --disable-pip-version-check install robotframework-ride==1.7.4.2
    

    然后在电脑桌面上右击鼠标->点击创建->创建快捷方式

    image.png

    在输入框直接复制输入 C:\Users\user\AppData\Local\Programs\Python\Python37\pythonw.exe -c "from robotide import main; main()"

2. RobotFramework底层库

RobotFramework 底层库包含内置库和外部库,详细资料在可见RobotFramework资源

image.png

RobotFramework 内置库:

  • Builtin: 提供基本操作的关键字,无需提前导入库(Library XXX)
  • Dialog: 提供暂停测试执行与用户进行交互对话界面方式的关键字
  • Collections:提供一组关键字处理Python列表和字典
  • XML: 提供可以生成、编辑和验证XML文件库
  • Screenshot: 提供关键字来捕获和存储桌面的截图
  • String:提供处理字符串并验证它们内容的库。用于生成、修改和验证字符串
  • DateTime:日期和时间转换库,支持创建和验证日期和时间值以及它们之间的计算。

RobotFramework 外部库目前支持Appium、selenium等库

  • SeleniumLibrary : 提供支持 Web 测试库
  • AppiumLibrary: 提供支持 Android 和 ios 测试库
  • Robotframework-faker :提供支持 faker 库
  • HTTP RequestsLibrary :提供支持使用Python Requests库对HTTP测试

3. RobotFramework软件Ride

我们打开ride软件,可以在该界面上创建我们脚本。

image.png

编辑测试脚本,提供两种方式 表格形式 和 文本形式

如下,给出了Robotframework测试套件编写,文本结构

image.png

*** Settings ***
Documentation     RobotFramework 测试脚本
Suite Setup       log    套件前置步骤
Suite Teardown    Log    套件后置步骤
Test Setup        Log    测试前置
Test Teardown     Log    测试后置
Library           Dialogs

*** Variable ***
# Documentation    设置全局变量

*** Test Cases ***
test
    [Documentation]    测试用例
    log    hello world

*** Keyword ***
关键字
    [Documentation]    自定义关键字

套件前置步骤
    log    套件前置步骤

4. 编写RobotFramework用例

我们在RobotFramework RIDE界面中编写两条测试case如下

表格形式如下: case1:使用for循环打印[ 2~5) 的数据

image.png

test1
    FOR    ${i}    IN RANGE    ${2}    ${5}
        Log    ${i}
    END

case2:使用collection库向列表中添加数据

image.png

test2
    [Documentation]    列表添加数据
    ${L1}    Create List    1    2    3    4
    Append To List    ${L1}    A    B
    Log    ${L1}

执行测试case,日志打印如下

image.png

image.png

总结

本期,主要对RobotFramework 框架基本知识进行学习,并且在本地上配置搭建环境。

RobotFramework 自身的语法简单,易于上手,并且可以接入外部接口库进行使用。

以上是本期内容,欢迎大佬们点赞评论,下期见~~