python全栈测试开发_⽤于全栈⾃动化测试的最佳Python⼯具我知道⼤多数测试⼈员会说Java是他们创建⾃动化测试的⾸选语⾔。
但是我最喜欢的是Python。为什么?为什么是Python ?
Al Sweigart,《⾃动化那些⽆聊的东西》的作者,Python⼀直是他的⾸选语⾔,因为:它有⼀个温和的学习曲线。它适⽤于Windows、Linux和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
用c语言编写贪吃蛇游戏程序说到测试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⾃动化
php软件手机下载如何⾃动化与功能测试⽆关的其他活动?
当我说“⾃动化”时,我指的不仅仅是功能测试⾃动化,⽽是任何能够帮助您加速软件开发过程的活动。
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测试的新python基础知识测试
⼿,pytest是⼀个必须学习的库。
*⼀定要看看Brian的书《Python测试与pytest:简单、快速、有效、可扩展》,以了解它的所有内容。
TensorFlow
如果你最近⼏年⼀直关注⾃动化领域的最新消息,你就会知道⼈⼯智能是⼀个多么热门的话题。linux怎么退出bash模式
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的库中的⼀部分。我错过了什么?让我知道,我会把它/他们列⼊名单。
本⽂内容不⽤于商业⽬的,如涉及知识产权问题,请权利⼈联系博为峰⼩编(021-********-8017),我们将⽴即处理
修改mysql配置的两种方式
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论