常用Python自动化测试框架有哪些?优缺点对比

随着技术的进步和自动化技术的出现,市面上出现了一些自动化测试框架。只需要进行一些适用性和效率参数的调整,这些自动化测试框架就能够开箱即用,大大节省了测试时间。而且由于这些框架被广泛使用,他们具有很好的健壮性,并且具有广泛多样的用例集和技术来轻易发现微小的缺陷。

以前,测试团队接手一个项目,他们不得不为这个项目构建一个自动化测试框架。一个测试框架应该具有最佳的测试用例、假设(assumptions)、脚本和技术来运行每一处代码和模块,从而发现代码缺陷和不足。不同的项目需要不同的测试用例、假设和脚本,而这也是为什么会在这些测试中花费大量时间。然而,现在令测试人员万分高兴的是,构建自己的测试框架的日子终于结束了。今天,我们就聊一聊可用的 Python 自动化测试框架。

Robot Framework

Robot Framework(RF)是用于验收测试和验收测试驱动开发(ATDD)的自动化测试框架。 基于 Python 编写,但也可以在 Jython(Java)和 IronPython(.NET) 上运行,提供跨平台支持( Windows、 Linux 或 MacOS )。

优点:

通过使用关键字驱动测试(KDT)方法简化了自动化测试过程,方便测试人员创建易读的测试。
测试数据语法简单易用。
生态系统丰富。由各种通用测试库和工具组成,这些工具都是作为独立项目开发的。
具有高度可扩展性。
可通过 pabot 或 Selenium Grid 执行并行测试。

缺点:

自定义 HTML 报告较为麻烦。

如果是针对大范围的库和扩展的 KDT 自动化测试,建议使用此跨平台框架。如果想要添加新的关键字(通过 RF 测试库 API ),需要具备 Java / Python / C 语言的基础知识

RedwoodHQ

RedwoodHQ 是一个流行的自动化测试工具,它之所以流行是因为大部分流行的编程语言都可以用来编写测试,例如 Java、Python、C# 等。在 RedwoodHQ 的网站界面上,多个测试人员可以在一个平台上协作并运行测试用例。开发者可以使用 RedwoodHQ 中出现的 action 关键字来毫不费力地创建和修改测试用例。

你需要做的只是找到需要的 action,拖到测试盒中,然后输入参数并改变它们的值来生成一份完整的测试报告。RedwoodHQ 有一个内置的 IDE(集成开发环境),可以在那里创建、修改以及运行测试用例。RedwoodHQ 是对用户最友好或对测试人员最友好的平台之一,它关注一个重大项目的全部测试过程。

Jasmine

Jasmine 是一个 JavaScript 单元测试框架, 也被称为 JavaScript 的行为驱动开发(BDD)测试框架。适用于网页、Node.js 项目或任何可以运行 JavaScript 的地方。它主要与 AngularJS 配对使用。

优点:

除了 JavaScript ,还可以运行在 Python 和 Ruby 中。如果想在你的服务器端运行客户端测试,它可以帮助你。
被许多 CIs 使用和支持。
内置用于断言的语法。

缺点:

多数情况下,它需要一个测试运行器(如 Karma )。
难以异步测试。
如果你正在寻找一个统一的(客户端 - 服务器)单元测试解决方案,Jasmin 可能会非常适合。

Pytest

如果你的项目比较小、复杂度比较低,Pytest 是最适合的自动化测试平台。pytest 是 python 的一种单元测试框架,与 python 自带的 unittest 测试框架类似,但是比 unittest 框架使用起来更简洁,效率更高。根据 pytest 的官方网站介绍,它具有如下特点:

非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考

能够支持简单的单元测试和复杂的功能测试

支持参数化

执行测试过程中可以将某些测试跳过,或者对某些预期失败的 case 标记成失败

支持重复执行失败的 case

支持运行由 nose , unittest 编写的测试 case

具有很多第三方插件,并且可以自定义扩展

方便的和持续集成工具集成

Pytest 还有各种可用插件来给现有测试技术和测试用例增加更多功能和多样性。事实上,在其活跃社区中有 300 多个可用的插件。该平台设计用于编写更简单,错误率更小的代码。你可以将 Pytest 与诸如 Selenium 和 Splinter 之类的图形用户界面一起使用,来使测试工作更轻松。

结语

对于任何编程语言来说,都没有绝对理想的测试框架。它取决于测试者的舒适度、项目需求和项目中特定模块所需的测试类型。可用的自动化测试框架有线性自动化、基于模块的测试、函数库框架测试、混合测试、关键词驱动和数据驱动测试等。每个框架都有它的优点和缺点。上面列举的 python 框架是性能最全面的自动化测试框架。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

在这里插入图片描述

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Mac】时间机器频繁提示磁盘没有正常推出

问题描述 有一次在进行时间机器备份的时候总是提示“磁盘没有正常推出”,并且好几次直接导致系统重启… 估计是 MacOS 系统 bug 解决 看了 Vex 一个帖子之后设置了一个硬盘是否休眠就好了,不要勾选让硬盘处于休眠就可以了,在电池选项界面中…

C++ —— Tinyxml2在Vs2017下相关使用2(较文1更复杂,附源码)

相关链接 C —— Tinyxml2在Vs2017下相关使用1(附源码) tinyxml2简介 TinyXML2是一个简单,小巧,高效,CXML解析器,可以很容易地集成到其他程序中。TinyXML-2解析一个XML文档,并从中构建一个 可以…

排查手机应用app微信登录问题不跳转失败原因汇总及其解决方案

经过最近我发的文章,我个人觉得解决了不少小问题,因为最近很小白的问题已经没有人私聊问我了,我总结了一下排查手机应用app微信登录问题不跳转失败的原因汇总及其解决方案在这篇文章中,分析微信登录不跳转的原因,并提供解决方案。希望通过这篇文章,能够帮助大家顺利解决这…

MySQL数据库(一)

数据库 —— 基础 1. 数据库 DataBase 数据库管理系统 2. SQL语言2.1 DDL数据定义语言2.1.1 数据库基础操作2.1.2 数据表基础操作2.1.3 字段基础操作 2.2 DML表记录管理2.2.1 插入数据INSERT2.2.2 更新数据UPDATE2.2.3 删除数据DELETE 3. SQL数据类型3.1 数值类型3.1.1 整数类型…

钢铁异常分类140篇Trans 学习笔记 小陈读paper

钢铁异常分类 对比学习 比较好用 1.首先,为每个实例生成一对样本, 来自同一实例的样本被认为是正例, 来自不同实例的样本被认为是负例。 2.其次,这些样本被馈送到编码器以获得嵌入。 3.在对比损失[16]的影响下, …

element-ui 图片压缩上传

picture.js export const compressImgNew (file) > {return new Promise(resolve > {const reader new FileReader()const image new Image()image.onload (imageEvent) > {const canvas document.createElement(canvas) // 创建画布const context canvas.getCo…

python二次开发Solidworks:圆+样条曲线草图

以下代码实现在Solidworks中构建草图,在草图中绘制了一个圆和一根样条曲线,并实现全约束。 import numpy as np import win32com.client as win32 import pythoncom def vtPoint(x, y, z):# 坐标点转化为浮点数return win32.VARIANT(pythoncom.VT_ARRAY…

IF: 22.1, 中科院1区TOP刊被剔除WOS (10月SCI/SSCI目录已更新)~

2023年10月17日,科睿唯安更新了Web of Science核心期刊目录。 此次更新后SCIE期刊目录共包含9485本期刊,SSCI期刊目录共包含3551本期刊。此次SCIE & SSCI期刊目录更新,与上次更新(2023年9月)相比,共有7…

【MySQL】面试题

引言 :MySQL面试题及答案 【最新版】 目录 1、NOW()和CURRENT_DATE()有什么区别?2、CHAR和VARCHAR的区别?3、主键索引与唯一索引的区别4、MySQL中有哪些不同的表格?5、SQL的生命周期…

如何做好需求收集?方法和步骤

需求收集是理解你想要构建什么以及为什么要构建它的过程。需求收集通常被视为开发软件应用,或开发硬件产品的一部分。其重要性不言而喻。据调查显示50%以上产品在市场上失败的原因,是由于忽视了用户需求。 一、需求收集为什么会困难? 困扰项…

深入了解Spring Boot Actuator

文章目录 引言什么是ActuatorActuator的底层技术和原理端点自动配置端点请求处理端点数据提供端点数据暴露 如何使用Actuator添加依赖访问端点自定义端点 实例演示结论 引言 Spring Boot Actuator是一个非常强大且广泛使用的模块,它为Spring Boot应用程序提供了一套…

C++使用openssl对AES-256-ECB PKCS7 加解密

/** AES-256-ECB PKCS7 加密 函数* input:经过PKCS7填充后的明文数据* outhex:加密后的命名数据16进制数,可以使用base64_encode转换为base64格式字符串密文* key:密钥* len:经过PKCS7填充后的明文数据长度*/ void AesEcb256Pkcs7Encrypt(u8 *input, u8 *outhex, u8 *key, int …

简单易学,让你拥有个性化的二维码

在数字化时代,二维码已经成为了我们日常生活的一部分。然而,大多数二维码都是简单而乏味的,缺乏个性和吸引力。这篇文章将向你介绍如何使用乔拓云等免费在线海报制作工具来制作艺术二维码,让你轻松掌握二维码的美化技巧。 1. 选择…

随机专享记录第一话 -- RustDesk的自我搭建和使用

1.介绍 RustDesk是继TeamView、向日葵等远程桌面软件后的新起之秀,最主要的是开源的可自己搭建中继服务。相比于公共服务器,连接一次等待的时间要多久,用过TeamView的都知道,而且还是免费的,不像某些远程搞各种个人证书,各种登录设备限制! 先看看软件图,这是待连接界…

Django 访问静态文件的APP staticfiles

Django 框架默认带的 APP: django.contrib.staticfiles Django文档中也写明了:如何管理静态文件(如图片、JavaScript、CSS) |姜戈 文档 |姜戈 (djangoproject.com)https://docs.djangoproject.com/zh-hans/4.2/howto/static-file…

leetCode 214.最短回文串 + KMP

给定一个字符串 s,你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串。 示例 1: 输入:s "aacecaaa" 输出:"aaacecaaa"示例 2: 输入:s &…

11.The Metric Tensor

Metric Tensor--度量张量 度量张量可以测量空间的长度和角度。 How do you get the length of a vector ? (正交基的话)可以使用三角形的勾股定理(毕达哥拉斯定理)。 上面用的是正交基e1、e2来计算的, 但是,若你想用 利用勾…

2023.10.18

头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QDebug>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);~Widget();private slot…

万界星空科技/生产制造执行MES系统/开源MES/免费MES

开源系统概述&#xff1a; 万界星空科技免费MES、开源MES、商业开源MES、市面上最好的开源MES、MES源代码、免费MES、免费智能制造系统、免费排产系统、免费排班系统、免费质检系统、免费生产计划系统、免费数字化大屏。 万界星空开源MES制造执行系统的Java开源版本。开源mes…

贝叶斯学习

贝叶斯学习 文章目录 贝叶斯学习相关概率知识朴素贝叶斯多维正态密度贝叶斯 贝叶斯学习主要是依靠先验概率来推出后验概率&#xff0c;然后更具后验概率去验证。其主流分为朴素贝叶斯和高斯分布下的贝叶斯估计。 相关概率知识 **先验概率&#xff1a;**指根据以往经验和分析。…