初识Robot Framework测试框架

news2024/12/16 1:28:56

Robot Framework 是一款用 Python 编写的通用型测试框架,具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端(Web、PC、移动端)或者接口,也可以进行分布式测试执行。常用于验收测试和验收测试驱动开发(ATDD)的自动化测试。虽然框架本身是基于 Python 编写的,但也可以在 Jython(Java) 和 IronPython(.NET) 上运行,提供跨平台支持。

Robot Framework 框架是一个通用的应用和技术的独立框架。它有一个高度模块化的架构,如图 1 所示(摘自官网)。

Robot Framework 架构图

图 1:Robot Framework 架构图

Robot Framework 框架优势和亮点

Robot Framework 框架具备非常多的优势和亮点,包括但不限于:

  • 易于使用,采用表格式语法,统一测试用例格式。
  • 重用性好,可以利用现有关键字来组合新关键字。
  • 支持多种变量类型(如 List、Dictionary 等)。
  • 支持创建基于数据驱动的测试用例。
  • 结果报告和日志采用 HTML 格式,易于阅读,且自动生成。
  • 提供标签以分类和选择将被执行的测试用例。
  • 支持跨平台运行,如 Windows、Linux、Mac OS。
  • 功能全面,支持 Web 测试、Windows GUI 测试、移动端测试、数据库测试等。
  • 易于扩展,提供了简单 API,用户可以自定义基于 Python 或者 Java 的测试库。
  • 易于集成,提供了命令行接口和基于 XML 的输出文件,支持持续集成(CI),如 Jenkins、Maven 等的集成。
  • 易于与版本管理器集成。
  • 可通过 Pabot 或 Selenium Grid 执行并行测试。
  • 良好的生态系统,支持不同操作系统、远程管理、Telnet、字符串、进程、对话、日期等,还支持各种应用及相关的测试工具(如大家熟知的 Selenium、Appium、AutoIt、Watir 等),包括 Web、移动 App、数据库、通信协议等测试,支持面向 UI 和接口的测试。
  • 关键字脚本丰富、可以灵活地自定义新的关键字,并支持循环、条件语句。
  • 强大的数据驱动,支持外部数据文件、变量文件、资源文件。
Robot Framework 框架不足

虽然Robot Framework 框架提供了非常多优秀的特性,但不论哪一款测试框架都无法做到100%完美,至少无法或在一定程度上不能满足所有人的需求。
Robot Framework 也存在一些不足或者需要改进的地方,如:

  • 自定义HTML 报告较为麻烦。
  • 框架有自身的一套语法,虽然和Python 略同,但对于新手而言,还是有一定学习成本的。
  • 不支持即时断点、逐行调试跟踪功能,调试时,无法像 IDEA 这类工具一样方便。

Robot Framework 生态系统

Robot Framework 框架具有非常丰富的生态系统,它不仅具有易于使用的表格测试数据规则,可精细地控制关键字,支持行为驱动,提供远程测试执行接口进行分布式测试。这些功能由各种通用测试库、特定测试插件和工具组成。

Robot Framework 框架除了自身提供了非常多的基础库功能,也支持第三方扩展库,同时提供了非常多的内建工具、扩展接口,方便框架与其他系统进行对接。这些一起构建了一套全面且易扩展的 Robot Framework 框架生态系统。

1.基本库

  • Builtin:提供内置常用的关键字。
  • Dialogs:提供暂停测试执行以获得用户输入的方法。
  • Collections:提供用于处理 Python 列表、字典的关键字。
  • OperatingSystem:在 Robot Framework 系统中执行各种与操作系统相关的任务。
  • Remote:作为 Robot Framework 与其他测试库之间的代理,实际运行的测试库可以在不同机器上。
  • ScreenShot:提供用于捕捉桌面屏幕截图的基本库。
  • String:用于生成、修改、验证字符串的库。
  • Telnet:可以连接到 Telnet 服务器,并在打开的连接上执行命令。
  • XML:用于生成、修改和验证 XML 文件的库。
  • Process:用于在系统中运行过程的库。
  • DataTime:用于日期和时间转换的库。

 2.扩展库

  • AndroidLibrary:用于 Android 自动化测试的库,它内部使用的是 Calabash Android。
  • AnywhereLibrary:用于测试单页应用程序(SPA)的库,它内部使用是 Selenium Webdriver 和 Appium。
  • AppiumLibrary:用于 Android 和 iOS 测试的库,它内部使用的是 Appium。
  • ArchiveLibrary:用于处理 zip 和 tar 归档的库。
  • AutoItLibrary:用于 Windows GUI 的测试库,它内部使用 AutoIt 作为驱动程序。
  • DatabaseLibrary:用于数据库测试的库,分为 Java 和 Python 两类库,一般默认是基于 Python 的库。
  • DiffLibrary:用于两个文件差异比较的库。
  • DjangoLibrary:Python Web 框架 Django 的库。
  • FakerLibrary:虚拟测试数据生成器 Faker 的库。
  • FTPLibrary :用于 Robot Framework 测试和 FTP 服务器的库。
  • HttpLibrary.HTTP:用于使用请求进行 HTTP 级别测试的库。
  • iOSLibrary:用于iOS 自动化测试的库,它内部使用的是 Calabash iOS。
  • ImageHorizonLibrary:GUI 自动化测试的、基于图像识别的、跨平台的纯 Python 库。
  • MongoDBLibrary:使用 PyMongo 与 MongoDB 进行交互的库。
  • MQTTLibrary:用于测试 MQTT 代理和应用程序的库。
  • Rammbock:通用网络协议测试库,提供简单的方式来指定网络数据包,并检查发送和接收数据包的结果。
  • SikuliLibrary:提供关键字以通过Sikulix 测试用户界面,该库支持 Python 2.x  和 3.x。
  • Selenium2Library:使用 Selenium 2 的 Web 测试库,用于 Web UI 自动化测试。
  • SSHLibrary:通过 SSH 连接启用在远程计算机上执行的命令,还支持使用 SFTP 传输文件。
  • SwingLibrary:使用 Swing GUI 测试 Java 应用程序的库。

 3.内建工具

  • Rebot:基于 XML 输出生成日志和报告、将多个输出组合在一起的工具。
  • Libdoc:用于为测试库和资源文件生成关键字文档的工具。
  • Testdoc:基于 Robot Framework 测试用例生成高层次 HTML 文档的工具。
  • Tidy:清理和转换 Robot Framework 测试数据文件格式的工具。

4.编辑器

  • RIDE:独立的 Robot Framework 测试数据编辑器。
  • Atom Plugin:Atom 编辑器中的 Robot Framework 插件。
  • Eclipse Plugin:Eclipse IDE 的 Robot Framework 插件。
  • Gedit:Gedit 的语法高亮显示。
  • Robot Plugin For Intelli IDEA:IDEA 编辑器的 Robot Framework 插件。
  • Sublime Assistant:Sublime 编辑器的 Robot Framework 插件。

5.其他工具

  • DbBot:用于将 Robot Framework 测试结果(即 output.xml 文件)序列化为 SQLite 数据库的工具。
  • Fixml:用于修复破坏的 Robot Framework 输出文件的工具。
  • Mabot:输出手工测试与 Robot Framework 兼容格式的报告工具。
  • Pabot:Robot Framework 测试用例并行执行器。
  • RFDoc:用于存储和搜索 Robot Framework 测试库和资源文件文档的 Web 系统。
  • Robot Corder:通过录制用户交互扫描 Chrome 浏览器中的 HTML 页面来生成 Robot Framework 测试脚本。相当于应用在 Robot Framework 浏览器自动化测试中的 Selenium IDE。
  • Robot Framework Hub:轻量级 Web 服务器,能通过浏览器对 Robot Framework 测试资产进行访问。
  • Robot Framework Lexer:用于 Pygments 突出显示 Robot Framework 语法。
  • Robot Tool:可以与 Robot Framework 一起使用的支持工具的集合。
  • Status Checker:验证执行 Robot Framework 测试用例时预期的状态和日志消息的工具。

Robot Framework 生态系统远不止涉及上述这些,更多的介绍可查阅官网。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2260223.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows安装elasticsearch、Kibana以及IK分词器

一、下载 1.下载elasticsearch 访问官网Download Elasticsearch | Elastic,下载elasticsearch 2.下载 Kibana 访问Download Kibana Free | Get Started Now | Elastic ,下载 Kibana 3. IK分词器下载 访问Gitee 极速下载/elasticsearch-analysis-ik选…

socket编程UDP-实现停等机制(接收确认、超时重传)

在下面博客中,我介绍了利用UDP模拟TCP连接、按数据包发送文件的过程,并附上完整源码。 socket编程UDP-文件传输&模拟TCP建立连接脱离连接(进阶篇)_udp socket发送-CSDN博客 下面博客实现的是滑动窗口机制: sock…

PHP项目从 php5.3 版本升级到 php8.3 版本时的一些问题和解决方法记录

一个原来的项目,因为业务需要,进行了PHP版本升级,从php5.3直接升级到php8.3。变化挺大的,原程序中有很多不再兼容,在此处进行一下记录。 一、Deprecated: 显式转换问题 报错内容:Deprecated: Implicit con…

在Liunx中安装JDK、Tomcat、mysql、lrzsz、Nginx

一.软件安装方式 在Linux系统中,安装软件的方式主要有四种,这四种安装方式的特点如下: 二.安装JDK 上述我们介绍了Linux系统软件安装的四种形式,接下来我们就通过第一种(二进制发 布包)形式来安装JDK。 在/下创建soft目录&…

LeetCode-hot100-73

https://leetcode.cn/problems/largest-rectangle-in-histogram/description/?envTypestudy-plan-v2&envIdtop-100-liked 84. 柱状图中最大的矩形 已解答 困难 相关标签 相关企业 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#x…

leetcode-73.矩阵置零-day5

class Solution {public void setZeroes(int[][] mat) {int m mat.length, n mat[0].length;// 1. 扫描「首行」和「首列」记录「首行」和「首列」是否该被置零boolean r0 false, c0 false;for (int i 0; i < m; i) {if (mat[i][0] 0) {r0 true;break;}}for (int j …

【Spark】Spark Join类型及Join实现方式

如果觉得这篇文章对您有帮助&#xff0c;别忘了点赞、分享或关注哦&#xff01;您的一点小小支持&#xff0c;不仅能帮助更多人找到有价值的内容&#xff0c;还能鼓励我持续分享更多精彩的技术文章。感谢您的支持&#xff0c;让我们一起在技术的世界中不断进步&#xff01; Sp…

开源 AI 智能名片 S2B2C 商城小程序对私域流量运营的全方位助力

在当今竞争激烈的商业环境中&#xff0c;私域流量运营已成为企业实现可持续发展和提升竞争力的关键策略之一。开源 AI 智能名片 S2B2C 商城小程序凭借其独特的功能与特性&#xff0c;从多个维度为私域流量运营提供了强有力的支持与推动&#xff0c;以下将详细阐述其在各个方面的…

【razor】echo搭配relay功能分析

echo 要搭配relay 实现作者说relay在linux上跑,可以模拟丢包、延迟目前没看到如何模拟。relay监听9200,有俩作用 echopeer1 发relay,replay 把peer1的包给peer2 ,实现p2p能力。 接收端:采集后发送发给relay的 接收端的地址就是自己,的地址就是本地的9200,因此是让relay接…

Phoenix5.1.3安装

环境说明 准备三台服务器&#xff0c;分别为&#xff1a;bigdata141&#xff08;作为HBase主节点&#xff09;、bigdata142、bigdata143&#xff0c;已经搭建好HBase集群&#xff0c;我这边HBase版本为2.2.7另准备一台服务器&#xff0c;bigdata144&#xff0c;作为Phoenix客户…

ASP.NET Core API + MySql

环境 数据库&#xff1a; mysql8.0 后端&#xff1a; vs2022 ASP.NET Core API .net 8 前端&#xff1a; Hbuilderx bootstrap 5.3.0 jquery v3.7.1 bootstrap-table 1.23.5 创建项目 添加资源包 AutoMapper Microsoft.EntityFrameworkCore.Tools 8.0.0 Pomelo.EntityFramew…

小程序维护外包流程和费用

由于某些原因很多老板想要跟换掉小程序原来合作的开发公司&#xff0c;重新把小程序系统维护外包新的公司。小程序系统外包维护是一个涉及多个方面的过程&#xff0c;需要从需求明确、选择团队到持续优化等多个环节进行细致管理。以下就是小程序系统外包维护主要包括几个关键步…

代码随想录算法训练营第三十二天|动态规划理论基础|LC509.肥波那些数|LC70.爬楼梯|LC746.使用最小花费爬楼梯

动态规划理论基础 解释&#xff1a;动态规划&#xff0c;英文&#xff1a;Dynamic Programming&#xff0c;简称DP&#xff1b;如果某一问题有很多重叠子问题&#xff0c;使用动态规划是最有效的。 动态规划五部曲&#xff1a; 1、确定dp数组&#xff08;dp table&#xff09;…

亮相AICon,火山引擎边缘云揭秘边缘AI Agent探索与实践

12月13-14日&#xff0c;AICon 全球人工智能开发与应用大会在北京成功举办。火山引擎边缘智能技术负责人谢皓受邀出席大会&#xff0c;以《AI Agent 在边缘云的探索与实践》为主题&#xff0c;与全球 AI 领域的资深专家&#xff0c;共同深入探讨大模型落地、具身智能、多模态大…

找出1000以内的所有回文数

找出1000以内的所有回文数 方法概述检查回文数的方法伪代码C代码实现代码解析运行结果在计算机科学中,回文数是一种具有对称性质的数,即从左向右读和从右向左读都是相同的。例如,121、1331、12321都是回文数。本文将利用数据结构、C语言和算法的知识来编写一个程序,找出100…

数据保护策略:如何保障重要信息的安全

一、什么是数据安全&#xff1f; 数据安全是保护数字信息免遭盗窃、未经授权的访问和恶意修改的过程。这是一个持续的过程&#xff0c;负责监督信息的收集、存储和传输。 机密性&#xff1a;保护数据免遭未授权方访问。 完整性&#xff1a;保护数据免遭未经授权的修改、损坏…

SpringBoot【八】mybatis-plus条件构造器使用手册!

一、前言&#x1f525; 环境说明&#xff1a;Windows10 Idea2021.3.2 Jdk1.8 SpringBoot 2.3.1.RELEASE 经过上一期的mybatis-plus 入门教学&#xff0c;想必大家对它不是非常陌生了吧&#xff0c;这期呢&#xff0c;我主要是围绕以下几点展开&#xff0c;重点给大家介绍 里…

基于springboot+vue的高校校园交友交流平台设计和实现

文章目录 系统功能部分实现截图 前台模块实现管理员模块实现 项目相关文件架构设计 MVC的设计模式基于B/S的架构技术栈 具体功能模块设计系统需求分析 可行性分析 系统测试为什么我&#xff1f; 关于我项目开发案例我自己的网站 源码获取&#xff1a; 系统功能 校园交友平台…

33.攻防世界upload1

进入场景 看看让上传什么类型的文件 传个木马 把txt后缀改为png 在bp里把png改为php 上传成功 用蚁剑连接 在里面找flag 得到

基于Python+Sqlite3实现的搜索和推荐系统

基于Python实现的搜索和推荐系统 一、引言 伴随着科技的不断进步&#xff0c;互联网&#xff0c;万维网的不断发展。我们越来越热爱万维网&#xff0c;也欣赏他的发展方式。20世纪90年代初&#xff0c;万维网还只是一个将文档联系起来的简单网络。如今&#xff0c;他已经成为…