写点什么

Python 自动化测试框架有哪些?

  • 2018-07-22
  • 本文字数:1526 字

    阅读完需:约 5 分钟

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

随着技术的进步和自动化技术的出现,市面上出现了一些自动化测试框架,你可以使用这些框架,在调整特定测试适用性和效率参数后,测试你项目的任何模块。这节省了时间,而且由于这些框架被广泛使用,它们非常稳健,具有广泛多样的用例集和技术来轻易发现微小的缺陷。今天,我们将看一看可用的 Python 自动化测试框架。

Robot Framework

Robot Framework 是最流行的 Python 自动化测试框架。它是完全用 Python 开发的,对于验收测试非常有用。这个框架可以运行在 Java 和.NET 环境。它还支持跨平台,例如 Windows、MacOS 和 Linux。这个产品是由世界上一些著名的测试人员创建的,拥有关键词驱动方案。它有如此多可用的工具和库,使得这个框架非常先进和健壮。

它是一个开源框架,并且留有 API 扩展空间。表格式的测试数据语法和关键词驱动测试使得它在全球的测试人员中非常流行。它无疑是最易用的自动化测试框架,并且允许你进行并行测试。

RedwoodHQ

RedwoodHQ 是一个流行的自动化测试工具,它的流行是由于大部分流行的编程语言都可以用来编写测试,例如 Java、Python、C#和 likewise。它有一个网站界面,在那里多个测试人员可以在一个平台上协作和运行测试用例。在 RedwoodHQ 中出现的 action 关键字可以用来毫不费力地创建和修改测试用例。你所需要做的只是找到你需要的 action,将它拖到你的测试盒中,然后输入参数并改变它们的值来生成一份完整的测试报告。它有一个内置的 IDE(集成开发环境),你可以在那里创建和修改测试用例,并且并行运行它们。它是对用户最友好或对测试人员最友好的平台之一,它关注一个重大项目的全部测试过程。

Jasmine

Jasmine 对于 JavaScript 单元测试使用行为驱动开发框架。它适用于任何使用 JavaScript 的地方。除了 JavaScript 之外,它还被用于 Python 和 Ruby 自动化测试。因此,它使得你可以并行运行客户端测试用例和服务端测试用例。它是一个将客户端和服务端单元测试结合起来的完美的测试框架,而且被认为是测试领域的未来。它现成可用,除了需要一个名为 Karma 的测试运行器之外,不需要其它外部依赖。

Pytest

如果你的项目比较小、复杂度比较低,Pytest 是最适合的自动化测试平台。非常多的 Python 开发者都喜欢它,他们大部分用它来进行单元测试。它也具有 Robot Framework 所闻名的验收测试能力。Pytest 最好的特性之一是,它提供了测试用例的详细失败信息,使得开发者可以快速准确地改正问题。它兼容最新版本的 Python。它还兼容 unittest、doctest 和 nose,开箱即用。它还有包含更多功能的插件和多样化的现有测试技术和测试用例。事实上,有 300 多个可用插件来自它的活跃社区。该平台设计用于编写更简单错误率更小的代码。你可以将 Pytest 与诸如 Selenium 和 Splinter 之类的图形用户界面一起使用,来使得测试工作更轻松。

结论

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

查看英文原文: WHAT PYTHON FRAMEWORKS ARE AVAILABLE FOR TEST AUTOMATION?

感谢张婵对本文的审校。

2018-07-22 12:0712872

评论

发布
暂无评论
发现更多内容

Go http 包详解

Rayjun

Go 语言

MySQL基础之九:子查询

打工人!

myslq 6月日更

【LeetCode】完全平方数Java题解

Albert

算法 LeetCode 6月日更

【Vue2.x 源码学习】第十一篇 - Vue的数据渲染流程

Brave

源码 vue2 6月日更

三步教你编写一个Neumorphism风格的小时钟

空城机

JavaScript Vue 大前端 6月日更

明晚Django组队学习就要开始了

IT蜗壳-Tango

6月日更

动态规划电路布线问题(Java代码实现)

若尘

数据结构 6月日更

JavaScript学习(一)——简介

空城机

JavaScript 大前端 6月日更

MySQL 中的反斜杠 \\,真是太坑了!!

xcbeyond

MySQL 6月日更

Windows 使用 PowerShell 来管理另外一台 Windows 机器

HoneyMoose

22 图 |M1 和 Docker 谈了个恋爱

悟空聊架构

Mac M M1 Dock 6月日更 dokcer

如何拆分大型单体系统为微服务

Zhang

微服务

沿着“云云协同”的桥梁,奔赴全面云化的产业之海

脑极体

【译】是时候了解 CSS 逻辑属性了

KooFE

6月日更

JAVA对象直接输出的打印结果是什么?

加百利

Java 后端 字符串 6月日更

kubelet分析-pvc扩容源码分析

良凯尔

Kubernetes 源码分析 kubelet Ceph CSI

小型电商微服务架构拆分

Simon

架构实战营

Java 并发编程——volatile 关键字解析

Antway

6月日更

Windows PowerShell ISE 是什么和 PowerShell 有什么区别

HoneyMoose

区块链行业的《高考志愿填报指南》

CECBC

2021年最新阿里巴巴Java面试权威指南(泰山版)震撼来袭

Java 程序员 架构 面试 计算机

Java Shutdown Hook 场景使用和源码分析

陈皮的JavaLib

Java 线程安全 Thread

Python——列表元素的排序

在即

6月日更

面试系列-4 hash应用场景分析实践

李阿柯

php 面试 Redis 核心技术与实战

【21-3】Zabbix 重置 Admin 密码

耳东@Erdong

zabbix 6月日更

并发王者课-黄金1:两败俱伤-互不相让的线程如何导致了死锁僵局

MetaThoughts

Java 多线程 并发

栈和队列没想象中那么难

北游学Java

Java 数据结构 队列

记一次差点跑路的 RabbitMQ 运维经历

看山

运维 RabbitMQ 删库 6月日更

读深入ES6记[五]

蛋先生DX

ES6 6月日更

NQI国家质量基础设施“一站式”公共服务平台开发建设

源中瑞-龙先生

开发 NQI 质量基础设施“一站式”

深入SpringBoot的异常处理(一)

卢卡多多

异常 SpringBoot 2 全局异常 6月日更

Python自动化测试框架有哪些?_软件工程_KITTY GUPTA_InfoQ精选文章