Python Robot Framework

2025年03月17日 | 阅读 9 分钟

在本教程中,我们将了解机器人系统(框架)。我们将涵盖标准库和基本功能。接下来,我们还将涵盖测试用例、关键字、变量,最后是测试用例的集成。

Robot Framework 是一种常见的开源自动化框架,用于 ATDD(验收测试驱动开发)、验收测试和 RPA(机器人流程自动化)。它采用关键字驱动的测试技术方法,其功能可以通过在 Python 或 Java 中执行的测试库来扩展。

我们将讨论验收技术,其中测试开发的质量,验收技术的目的是根据业务需求评估系统的功能。

Robot Framework in Python

验收测试驱动开发 (ATDD)

这种高级技术建立在客户、开发人员和测试人员之间的业务沟通之上。他们协同工作,并在实现功能之前进行验收测试。

ATDD 旨在促进协作,从而对系统需求形成共同的看法,因为规范是用简单英语编写的。然后将这些规范转换为自动化验收测试用例。这样做有什么好处?

要了解它为什么有用,首先考虑单元测试。这是一种测试形式,就其性质而言,它非常由开发人员驱动。它帮助开发人员以可执行的格式记录他们对代码的假设。

但是,单元测试无法解决“我们是否正在构建正确的东西?”的问题。为此,我们需要依赖验收测试,它根据与领域专家讨论后确定的一组验收标准来检查应用程序的操作。

验收测试驱动开发解决了开发团队实现不满足客户需求的功能的问题。

ATDD 的一个基本组成部分是自动化:从讨论中创建的规范被转换为可执行测试,以确保程序员按照要求实现功能。

机器人流程自动化 (RPA)

它是一种通过利用 AI 和人工智能功能的软件方便地减少人类重复工作的过程。RPA 处理高级可重复任务。

机器人流程自动化简化了工作流程,使组织更具生产力、灵活性和响应能力。它还通过从员工的日常工作中消除繁琐的任务来提高员工满意度、敬业度和生产力。

RPA 是非侵入性的,可以快速实施以加速数字化转型。它非常适合自动化涉及缺乏 API、虚拟桌面基础设施 (VDI) 或数据库访问的遗留系统的工作流程。

Robot Framework 的架构

当机器人框架启动时,测试数据很容易修改为表格配置。它执行过程数据并生成日志和报告。核心框架不了解被测对象,库负责与之的交叉点。库可以直接使用应用程序接口或低级测试工具作为驱动程序。Robot Framework 具有特定的架构,可以使用自声明库进行打包和扩展。当执行开始时,系统首先解析数据。然后它使用库提供的关键字与目标系统通信。库可以与框架有组织的互通或使用不同的工具作为驱动程序。测试或任务执行从命令行开始。结果,我们得到 HTML 格式的报告和登录信息以及 XML 输出。

Robot Framework in Python

安装

步骤 1:安装

检查计算机上是否安装了 Python。

命令: Python --version

命令: pip --version

命令提示符

步骤 2:安装 Robot Framework

在 Python 中安装框架的路径是使用 pip。我们可以使用以下命令安装 Robot Framework。

命令: pip install robotframework

命令提示符

步骤 3:验证安装

安装后,我们应该能够使用命令:--version 观察 Robot Framework 和解释器版本。

命令: robot --version

命令: rebot --version

命令提示符

步骤 4:检查框架是否已安装

命令: show robotframework

Robot Framework 中的标准库

机器人系统中有许多标准库。我们应该逐一研究它们。

  • 一个名为 Builtin 的 Robot Framework 标准库,它提供了一组始终需要的常见关键字,因此它会自动导入并可用。
  • 一个名为 Collection 的标准库,它提供了一组用于处理 python 列表和字典的关键字。该库具有用于修改和从列表和字典中获取值的关键字。
  • 一个名为 DateTime 的 Robot Framework 库支持日期和时间值的创建和更改。
  • 一个名为 Dialogs 的 Robot Framework 标准库提供了一种停止执行并从客户端获取输入的方法。对话框在测试是否运行的情况下会有些不一致。
  • 启用在机器人系统运行时在系统中执行的各种与操作系统相关的任务。此外,它还可以直接执行命令并创建和删除记录。
  • Process 用于运行进程;此库使用 python 子模块及其开放类。该库的主要用途是等待系统中运行的进程并使用运行进程关键字进行收集。我们已使用启动进程在基础架构上启动了进程。之后,我们启动进程或结束进程,或结束所有涉及等待进程的进程。
  • 一个名为 Screenshot 的测试库,用于在运行测试的机器上截屏。
  • String 是一个用于字符串控制和检查的库。
  • Telnet 提供通过 telnet 连接进行通信。Telnet 库使得连接到 telnet 服务器并执行开放连接上的命令成为可能。
  • XML 也是一个用于检查和修改 XML 报告的 Robot Framework 文本库。

内置工具

机器人结构中主要有四个内置工具,它们是

  • Testdoc - 它根据 Robot Framework 工具中的测试用例生成高级 HTML 文档。
  • Libdoc - 用于为库和资产记录生成关键字文档的工具。
  • Rebot - 用于根据 XML 输出生成报告和日志,并同时合并 Robot Framework 工具中的多个结果。
  • Clean - 用于清理和更改 Robot Framework 工具中数据文件的配置

测试用例

机器人结构中的测试用例允许用简单的英语编写,而不是自动化的测试用例。它遵循关键字测试驱动方法,在操作方面而非假设方面与自然语言产生共鸣。测试用例由测试用例表中可用的关键字创建,关键字可以从测试库或资产记录中导入。我们还可以为测试用例文件创建一个关键字表。

1. 工作流测试

测试用例表中的第一个部分包含测试名称。测试用例从该部分中的某个内容开始,并持续到下一个测试用例名称或表的末尾。

2. 更重要的高级测试

第二个部分通常包含关键字名称,此规则的特殊情况是用关键字编写的值设置变量。

3. 数据驱动测试

数据驱动测试允许在不复制工作流的情况下隔离测试数据。Robot Framework 中的 [template] 设置为数据驱动测试设置测试用例。

关键字

Robot Framework 中的测试用例由来自两个来源的关键字组成。

  • 库关键字:所有最低级别关键字都在标准库中定义,可以使用 Java、Python 等编程语言实现。标准库在理论上是结构化的,例如内置屏幕截图,而外部库是单独安装的,例如 Selenium 库。Robot Framework 附带的测试库可以分为标准库和自定义库。
  • 用户关键字:Robot Framework 的强大功能之一是我们可以使用不同的关键字创建自定义高级关键字。

集成测试用例:测试用例的集合称为测试套件。每个包含测试用例的文件也构成一个测试套件。可以通过使用目录将测试用例按顺序组织起来,所有这些都构成一个更高级别的测试套件,其名称来源于目录名称。Robot Framework 测试用例是在测试用例文件中创建的,但我们可以将它们组织在构成测试套件层次结构的目录中。

Robot Framework 的优点

  • 它易于使用和安装。
  • 它是一个开源框架。任何人,无论编程经验如何,都可以使用。
  • 它适用于不同的操作系统和外部库,例如 Selenium 库。
  • Robot Framework 支持行为驱动、关键字驱动和数据驱动的测试用例构建风格。
  • 我们可以使用任何 RIDE(Robot 集成开发环境)或内容工具来编写测试用例。

Robot Framework 的缺点

  • 需要合格人员
    在过去的十年中,制造商发现为工厂中的特定任务寻找合格人员变得更加困难。自动化的引入给这个谜题又增加了一层,因为机器人需要编程和操作知识。这为现有员工提供了更多机会来培训和扩展他们的技能。自动化公司可以帮助进行初始设置和配置,并且凭借正确的经验,员工可以学习和适应长期处理机器人。
  • 需要培训
    与任何其他类型的技术一样,工业机器人的初始设置需要大量的培训和经验,因为它们在执行许多任务方面非常出色。优秀的自动化公司提供其专业知识的服务包,这是一个关键因素。但是,可以对工程师进行机器人编程培训,以最大限度地减少对自动化公司的依赖。但是,对于首次机器人集成,需要经验丰富的自动化公司的支持。并行测试执行不足。重做 HTML 报告并不直接。
  • 缺乏安全保障
    在将机器人集成到生产环境中时,安全很重要,尽管机器人适用。此外,人们普遍误解协作机器人只是“安全”的,但安全部门应进行全面的风险评估,以评估每个末端执行器工具的速度、资源和潜在风险,然后才能实施它们。最后,客户必须充分评估机器并为其提供 CE 标志。

Robot Framework 局限性

  • 当代码变得复杂时,机器人需要支持 if-else、嵌套循环。
  • 它们可以执行的任务类型仍然存在一些限制。因此,我们鼓励公司在评估可用的不同选项之前联系自动化公司。
  • 结果比机器人快。并非所有内容都集成到机器人的成功或失败中。
  • 工业机器人系统的安全性取决于周围系统(例如抓手、视觉系统、输送系统等)的集成程度。为了获得最佳结果,请仅使用优质、可靠的机器人集成商。

Robot Framework 比较与替代方案

Selenium

Selenium 可以自动化程序。就是这样!我们如何使用这种能力取决于我们。主要是,它用于自动化 Web 应用程序以进行测试。但是,它当然不限于此。繁琐的在线组织任务也可以(并且应该!)自动化。

Cucumber

Cucumber 是一种支持行为驱动开发 (BDD) 的工具——一种旨在提高软件质量并降低维护成本的软件开发过程。

Cypress

Cypress 是一款专为现代 Web 创建的前端自动化测试应用程序。Cypress 构建在一个新开发人员之上,并在与被测应用程序相同的运行循环中运行。因此,Cypress 为在浏览器中运行的任何内容提供更好、更快、更可靠的测试。Cypress 适用于任何前端框架或网站。

TestNG

它是一个测试框架,旨在满足广泛的测试需求。它涵盖了所有类别的测试:单元测试、功能测试、端到端测试、集成测试等。在任意大的线程池中运行测试,可以使用不同的策略(所有方法都在自己的线程中,每个测试类一个线程,等等)。

Gauge

ThoughtWorks 创建了 Gauge。Gauge 允许我们用简单的语言编写测试并大胆地重构。Gauge可插拔架构允许我们自定义我们的环境,以便我们可以用我们喜欢的语言和 IDE 编写测试。

结论

Robot Framework 是一个开源测试自动化框架,用于验收测试和验收测试驱动开发。Robot Framework 中的测试用例基于以纯文本格式编写的关键字,这使得它清晰明了,并揭示了有关测试用例意图的真实信息。例如,用于打开浏览器的关键字是“open browser”。