用于全栈自动化测试的最佳Python工具

news2024/9/19 10:38:10

我知道大多数测试人员会说Java是他们创建自动化测试的首选语言。

  但是我最喜欢的是Python。为什么?为什么是Python ?

  Al Sweigart,《自动化那些无聊的东西》的作者,Python一直是他的首选语言,因为:它有一个温和的学习曲线。它适用于WindowsLinux和MAC。它仍然是专业开发人员使用的一种严肃的编程语言。它在一行中说" Hello world ",不像Java,你只需要记住public, static, void, string, ban,方括号等等。

  容易记住语法,它并不强迫您学习面向对象编程。Python代码非常简洁。有点像Perl,但不像Perl是可读的。

   那么,您可以使用哪些最好的Python库来帮助您进行测试和自动化工作呢?

  以下是我过去的受访者最喜欢的一些Python自动化库,以及一些我个人认为有用的库。

  但是首先,如果您正在寻找一种快速学习如何开始使用Python的方法,那么您应该查看Andrew Knight在自动化协会的会议,了解如何开始使用Python进行测试。在检查以下python测试库之前,这将是一个很好的开始。

  用于功能Python测试自动化 selenium

  当然,您有用于浏览器UI自动化的Selenium-Python绑定。

  这个Selenium包用于从Python自动化web浏览器交互。

  Selenium是基于浏览器的自动化的行业标准。

  如果您的团队主要由具有开发技能或SDET的测试工程师组成,这是一个完美的选择。

  Splinter

  Python中用于Selenium的一个很酷的包装器类型库是Splinter。

  Splinter是一个使用Python测试web应用程序的开源工具。它允许您自动化浏览器操作,例如访问url并与它们的项进行交互。

  它使得编写python Selenium测试更容易,因为它有一个高级API,可以让您更容易地为浏览器应用程序开发自动化脚本。

  Robot Framework

  如果您想使用Python进行测试自动化,那么使用Robot框架是不会出错的。这个成熟的产品是为测试人员创建的,它使用关键字驱动的方法使测试具有可读性和易于创建。

  它还包括一组测试库和其他工具。Robot框架是基于python的,但是您也可以使用Jython (Java)或IronPython (. net)。

  虽然Selenium WebDriver库可能是最常用的外部测试库,但Robot Framework也可以测试其他东西,比如:

  FTP

  MongoDB

  安卓

  Appium

  api

  大型机

  如果您的团队主要是由测试人员组成的,那么Robot框架是您的自动化框架的一个很好的选择。

  behave

  那么行为驱动的开发库呢?

  Python有一堆类似BDD的框架可供选择。最受欢迎的可能是行为。它和cucumber几乎一模一样,但它是用Python做的。

  requests

  需要做REST API测试或任何类型的HTTP活动?

  请求是一个Apache2授权的HTTP库,用Python编写。这个库是我认为下载次数最多的python库之一。这对您的自动化工作是必不可少的。

  Tavern

  说到测试Andrew Knight推荐给我的另一个库的API,自动化熊猫是Tavern。它使您的REST API测试更具有声明性

  Tavern将自己描述为一个命令行工具、Python库和Pytest插件,用于对RESTful api进行自动化测试,它具有简单、简洁和灵活的基于yaml的语法

  Hypothesis

  我经常听到的一个流行的测试主题是基于属性的测试。如果你一直想自己尝试一下,而且你对python很感兴趣,那就看看假设吧。

  假设基于属性的测试你可以在一定的范围内测试整数假设我们会自动为你处理各种变化。因此,它有助于在您的代码中找到您可能想不到要查找的边缘情况。

  Pywinauto

  对于非基于浏览器的功能自动化,请尝试使用pywinauto。

  pywinauto是一组Python模块,可以用来自动化Microsoft窗口gui。

  您可以使用它来发送键盘和鼠标动作到Windows对话框和控件。它还支持更复杂的操作,比如获取文本数据。

  Automagica

  Automagica是一个基于Python语言的开源智能机器人过程自动化(SRPA)平台。Automagica的最酷之处在于,你可以快速自动化一系列不同的跨平台流程,比如:

  浏览器自动化

  PDF操纵

  文件和文件夹操作

  电子邮件业务

  Word和Excel自动化

  如何自动化与功能测试无关的其他活动?

  当我说“自动化”时,我指的不仅仅是功能测试自动化,而是任何能够帮助您加速软件开发过程的活动。

  Beautiful Soup

  我用来从HTML和XML文件中提取数据的Python库之一是Beautiful Soup。

  虽然我使用的主要框架是基于java的,但是在我的框架中有一个目录,其中包含各种Python帮助器脚本—其中大多数都利用了Beautiful Soup。

  例如,我有一些脚本可以帮助我快速解析Serenity自动化框架报告。

  帮助我快速解析我的Serenity自动化框架报告。

  这也是伟大的网络废弃。如果您有一个简单的静态页面,需要在其中查找隐藏在HTML中的一些信息,那么Beautiful Soup是您的首选库。

  您可以使用请求库来帮助下载网页本身,Beautiful Soup将帮助您解析它。

  NumPy

  在我采访Python播客Test & Code的主持人Brain Okken时,他将NumPy作为他在诸如电气工程测试等方面的Python库的选择。

  NumPy是Python用于科学计算的基本包。

  PyTest

  Andrew Knight认为pytest是任何语言中最好的测试自动化框架之一。

  原因之一是,它非常简洁,并且专注于测试。在pytest测试中,编写测试函数—不是测试类—而是测试函数。如果你想做set和cleanup,你可以写一些其他的函数,它们被标记为fixture,你可以用依赖注入的方式来声明它们。

  因此,fixture将根据它们的作用域自动调用,它们返回的内容将被注入到测试函数中。这使得设置和清理更加可伸缩,更加可重用。

  Brian还提到,虽然您可能需要一段时间才能理解pytest fixture,但是这非常值得,因为它们非常强大。如果您是Python测试的新手,pytest是一个必须学习的库。

  *一定要看看Brian的书《Python测试与pytest:简单、快速、有效、可扩展》,以了解它的所有内容。

  TensorFlow

  如果你最近几年一直关注自动化领域的最新消息,你就会知道人工智能是一个多么热门的话题。

  TensorFlow是一个由谷歌创建和发布的用于快速数值计算的Python库。它是一个基础库,可以用于直接创建深度学习模型,也可以通过使用包装器库简化构建在TensorFlow之上的过程。

  TensorFlow实际上是Tariq King用来创建Ultimate Software基于python的开源AI生成和探索性测试工具Agent和AgentX的库之一。

  PDFMiner

  有多少次您发现自己需要测试PDF的内容?

  实际上,我惊讶地发现有多少Python模块用于与许多不同的技术交互,比如Excel文件或解析PDF文件。

  如果您需要测试或验证PDF文本内容,您可能会发现PDFMiner非常有用。这个库基本上是一个PDF文档的文本提取工具。

  Pyjest

  您听说过称为Jest的单元级自动测试框架吗?

  它是由Facebook创建的,它的一些特性使测试驱动开发更容易执行;例如,它的交互式监视模式,您可以使用它来改进工作流。

  它还足够智能,可以知道运行哪些测试与上次提交代码存储库后更改的文件相关。

  如果有数百个(甚至数千个)测试需要很长时间才能运行,那么这个特性非常有用,因为它只运行与您的更改相关的测试。

  Kent C. Dodds向我介绍了一个基于python的Jest实现pyjest。尽管它仍处于试验阶段,但它拥有所有Kent喜欢的观看模式功能。

  Locust

  想要在Python脚本中添加一些性能测试吗?

  Locust是一个简单易用的,基于python的负载测试工具。

  Locust还可以帮助您确定一个系统可以处理多少并发用户。

  Locust的一些很酷的功能是:

  能够使用直接的Python创建测试场景

  快速扩展您需要模拟的用户数量的能力

  一个友好的、基于web的可扩展UI

  用于测试api

  PyBuilder

  PyBuilder是一个用Python编写的软件构建自动化工具,主要针对Python程序。

  它的网站上说,它是基于基于依赖的编程的概念,但它也提供了一个强大的插件机制,允许构建生命周期,类似于Apache Maven之类的构建工具。

  panda

  panda是一个开源的、bsd许可的库,为Python编程语言提供高性能、易于使用的数据结构和数据分析工具。

  Ravi Salunkhe是我在LinkedIn上的一位测试架构师,他极力推荐我使用它。

  panda基于其网站上的信息解决的问题是“Python长期以来在数据转换和准备方面一直很出色,但在数据分析和建模方面就不那么出色了。panda有助于填补这一空白,使您能够在Python中执行整个数据分析工作流,而不必切换到更特定于领域的语言,如r。”

  Coverage.py

  py是一个度量Python程序代码覆盖率的工具。

  Kyle Tice在评论中推荐了这个库:“coverage .py是Python最流行的代码覆盖工具之一。它使用Python标准库中提供的代码分析工具和跟踪钩子来度量覆盖率。它运行在CPython、PyPy、Jython和IronPython的主要版本上。您可以将Coverage.py与单元测试和Pytest一起使用。

  他们的网站提到,它会监控你的程序,注意代码的哪些部分已经执行,然后分析源代码,以识别可能已经执行但没有执行的代码。覆盖率度量是评估测试有效性的好方法。这个工具将显示您的代码的哪些部分被测试所执行,更重要的是,哪些部分没有被测试所执行。

  PyUnit

  Francesco Piscani在LinkedIn上提到,如果您来自Java世界并且习惯于使用camel大小写,那么您可能会发现UnitTest (PyUnit)是向Python生态系统的一个简单过渡。

  PyUnit是用Python创建单元测试程序和单元测试的简单方法。

  PyCharm

  好吧,我也不知道为什么我没有把我最喜欢的ide添加到这个列表中,但是Daryl Flowers在LinkedIn上提醒我添加它是很好的。

  如果您习惯于使用Java进行自动化测试,那么您可能熟悉JetBrain的IntelliJ。对于Python,它们还为专业开发人员提供了一个非常棒的特定于Python的IDE,称为PyCharm。

  我错过了什么Python自动化工具

  这些只是我使用过或推荐给我的基于Python的库中的一部分。我错过了什么?让我知道,我会把它/他们列入名单。 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

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

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

相关文章

42.哀家要长脑子了!

1.965. 单值二叉树 - 力扣(LeetCode) 深度优先搜索,看边两端的结点是不是一样的值 class Solution { public:bool isUnivalTree(TreeNode* root) {if(!root) return true;if(root->right) {if(root->val ! root->right->val || …

数字图像处理基础:图像处理概念、步骤、方式介绍

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 👍感谢小伙伴们点赞、关注! 《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发…

5.2.数据结构-c/c++二叉树详解(下篇)(算法面试题)

本章所有代码请见:5.3.数据结构-c/c二叉树代码-CSDN博客 上篇:5.数据结构-c/c二叉树详解(上篇)(遍历方法,完全二叉树)-CSDN博客 目录 1 求二叉树 第k层的节点 2 查找一个节点是否在二叉树中 3 求二叉树节点的个数 4 求二叉树…

c#笔记5 详解事件的内置类型EventHandler、windows事件在winform中的运用

为什么要研究这一问题? 事件和委托可以说是息息相关。 前面先解释了什么是委托,怎么定义一个委托以及怎么使用匿名方法来内联地新建委托。 事实上事件这一机制在c#的程序开发中展很重要的地位,尤其是接触了winform软件开发的同学们应该都知…

chapter12-异常(Exception)——(注解)——day14

444-异常处理入门 445-异常基本介绍 446-异常体系图 虚线代表 实现接口,实线代表继承 447-五大运行时异常 448-异常课堂练习 449-异常处理机制 450-tryCatch异常处理 1)如果异常发送,则异常发生后面的代码不会执行,直接进入到Catc…

接口报错403 Forbidden 【已解决】

接口报错403 Forbidden 【已解决】 在Web开发中,接口请求错误是开发者经常遇到的问题之一。其中,403 Forbidden错误尤为常见,它表明服务器理解了客户端的请求,但是拒绝执行此请求。本文将深入探讨接口请求403 Forbidden错误&#…

iMazing 3官方中文版软件新功能全面解析,最好用的ios设备管理软件

iMazing 3是一款专为iOS设备设计的全面管理软件,想要更换设备的用户,iMazing 3的数据迁移功能能确保无缝切换。iMazing 3不仅提供了强大的备份和恢复功能,确保用户数据安全无虞,还实现了设备与电脑间的高效文件传输。无论是照片、…

浅析SVG无功补偿器在新能源发电中的应用

引言 随着新能源技术的不断进步,光伏发电已经崛起为未来能源发展的一个关键领域,各地纷纷建立起越来越多的光伏电站。然而,光伏发电领域仍面临诸多挑战,包括电网电压不稳定、发电过剩以及电压波动等问题。在这样的背景下&#xf…

《零散知识点 · Kafka 知识拓展》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…

【教学类-56-04】数感训练——数字04(中2班寻找自己的学号数字,1号-29号,出现5-10\10-15\15-20次)

背景需求: 今天有个客户购买“学号版的数感训练” 我找到文件夹,发现里面没有1-40号的学号数感,只有上学期为重4班制作的1-31号(其中缺了1和7号)的数感训练模版 于是用代码重新生成 【教学类-56-03】数感训练——数字…

HarmonyOS开发实战( Beta5版)Swiper高性能开发指南

背景 在应用开发中,Swiper 组件常用于翻页场景,比如:桌面、图库等应用。Swiper 组件滑动切换页面时,基于按需加载原则通常会在下一个页面将要显示时才对该页面进行加载和布局绘制,这个过程包括: 如果该页面…

学习算法需要数学知识吗?

目录 算法与数学:看似不可分割的关系常见算法中的数学元素案例分析:不需要高深数学知识的算法1. 二分查找2. 深度优先搜索 (DFS)3. 动态规划:斐波那契数列 如何在有限的数学背景下学习算法1. 专注于算法的逻辑和过程2. 可视化算法流程3. 从简单的实现开始,逐步优化4. 学习算法设…

centos7使用ifconfig查看IP,终端无ens33信息解决办法

1.问题描述 大概有十几天没用虚拟机,最后一次用忘记关闭虚拟机系统了;突然,发现我用远程连接工具,连接不上,去到虚拟机内部查看IP发现终端竟然没有输出enss33地址信息,额,就像下面这样。 2.解决…

android so的加载流程(Android 13~14)

序言 分析环境: Android 13~14 其实大佬 << 安卓so加载流程源码分析 >> 已经写得非常好了,我就没必要再写了 建议读者看看这篇文字,比较新,质量很高<< 安卓so加载流程源码分析 >> 为什么要分析 android so的加载流程 ??? 我想明白 so是怎么打…

无人机之反制系统篇

无人机的反制系统是一个复杂而精细的系统&#xff0c;旨在应对无人机的不当使用或潜在威胁。该系统通常由多个关键部分组成&#xff0c;包括搜索系统、光电跟踪系统、射频干扰系统及显控单元等&#xff0c;这些部分共同协作以实现对无人机的有效反制。以下是对无人机反制系统的…

SpringBoot开发——初步了解SpringBoot

文章目录 一、SpringBoot简介1、什么是Spring Boot2、Spring Boot的优点3、Spring Boot功能 二、Spring与Spring Boot对比三、Spring Boot与Spring MVC四、Spring Boot体系结构五、Springboot Initializr1、Spring Initializr2、Spring Initializr模块 一、SpringBoot简介 1、…

docker ps 得到的ports列的含义

前言 每次使用docker ps 查询容器运行情况的时候就很容易搞混ports列的含义&#xff0c;今天浅记一下 docker ps ports列含义 首先看docker ps的查询结果显示&#xff1a; CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 容器ID …

Axure中继器教程及案例详解

Axure RP 是一款强大的原型设计工具&#xff0c;广泛应用于产品设计、UI/UX 设计及交互设计中。中继器&#xff08;Repeater&#xff09;作为 Axure 中的一个重要元件&#xff0c;以其强大的数据处理和动态交互能力&#xff0c;成为设计师们不可或缺的工具。本文将从中继器基础…

LLM agentic模式之multi-agent: ChatDev,MetaGPT, AutoGen思路

文章目录 Multi-agentChatDev设计阶段编码阶段测试阶段文档编写 MetaGPTSOP模式下的Agent通信协议带执行反馈的迭代编程 AutoGenconversable agentsConversation ProgrammingAutoGen的应用 参考资料 Multi-agent ChatDev ChatDev出自2023年7月的论文《ChatDev: Communicative…

告别文档处理烦恼,PDF Guru Anki一键搞定所有

前言 知识就像烛光&#xff0c;能照亮一个人&#xff0c;也能照亮无数人&#xff0c;科技之光更是如此&#xff1b;这一理念深刻地影响了我们如何看待和应用新技术。正是在这样的背景下&#xff0c;一款集PDF处理与高效学习工具于一体的软件——PDF Guru Anki应运而生&#xf…