Python的五大自动化测试架构

1.Robot Framework

做为最重要的Python检测架构之一,Robot Framework关键被用在检测推动(test-driven)种类的开发设计与工程验收中。尽管是由Python开发设计而成,可是它还可以在根据.Net的IronPython和根据Java的Jython上运作。与此同时,做为一个Python架构,Robot还可以兼容例如Windows、MacOS、及其Linux等服务平台。

应用前提条件

在应用Robot Framework(RF)以前,您必须 先安裝Python 2.7.14及之上的版本号。推存您应用Python 3.6.4,以保证适度的注解可以被加上到字符串常量中,并可以追踪程序流程的变更。与此同时,您还必须 安裝Python包管理工具--pip。

自然,您也务必免费下载相对应的开发框架,比如:在开发人员圈子较为时兴的PyCharm社区版。此外,因为其字符串常量自身并不依赖于一切IDE,因而您彻底能够沿用手头上不仅有的IDE专用工具。

优势

根据应用关键词推动检测(keyword-driven-test)的方式,它可以协助测试工程师轻轻松松地建立具备易读性的功能测试,从而简单化了全部自动化技术的全过程。

用户可以轻轻松松地数据测试中的英语的语法。

由于是由各种各样通用性专用工具和检测库所构成,因此 它不仅有着巨大的生态体系,并且能够在独立的新项目中应用其每个原素。

因为有着很多种类的API,因而该架构具备高宽比的扩展性。

尽管并不是内嵌作用,可是Robot能够根据Selenium Grid(请参照https://www.lambdatest.com/blog/lambdatest-now-live-with-an-online-selenium-grid-for-automated-cross-browser-testing/),来协助用户运作各种各样并行处理检测。

缺陷

尽管拥有以上各种各样便捷,可是Robot Framework在建立自定的HTML汇报层面较为繁杂。您顶多能用它来转化成xUnit文件格式的简洁明了汇报。

此外,Robot Framework在并行处理检测层面也并不渐长。

 

2.Pytest

适用多种多样自动化测试的Pytest,是另一个Python种类的功能测试架构。凭着其开源系统和易懂的特性,该专用工具常常被QA(质量检查)精英团队、开发设计精英团队、本人精英团队、及其各种各样开源软件所应用。由于Pytest具备“肯定调用(assert rewriting)”这类的基本功能,很多大中型互联网技术运用,如Dropbox和Mozilla,都早已从下边即将提及的unittest(Pyunit)转换到Pytest以上。

应用前提条件

除开基本上的Python专业知识,用户并不一定大量的技术实力。此外,用户只必须 有一台含有命令行界面的检测设备,而且安裝好啦Python包管理工具、及其可用以开发设计的IDE专用工具。

优势

以往,开发者务必将她们的检测包括在各种各样大中型的类中。现如今,Pytest能够让用户写下更加紧密的检测模块。

别的的检测工具会规定开发设计或测试工程师应用程序调试,或以日志查验的方法检验某一特殊值的来源于。而用户在使用Pytest来撰写功能测试时,彻底能够将全部的值都储存在功能测试当中,直至***再获知有什么值失败了、及其什么非常值得到肯定。

因为牵涉到的样版编码(boilerplate code)并不是很多,因而用户可以非常容易地撰写和了解各种各样检测。

检测工装夹具(Fixture)涵数常被用于向测试函数加上某一主要参数,并回到不一样的值。在Pytest中,您能够根据应用一个工装夹具来模块化设计此外一个。与此同时,用户能够应用好几个工装夹具,在不用调用功能测试的状况下,将检测遮盖到全部主要参数的组成。

Pytest开发者根据公布各种各样好用软件,来维持架构的扩展性。比如:pytest-xdist能够在没有应用别的测试工具的状况下,被用以实行并行处理检测。与此同时,单元测试卷还可以在不用拷贝一切编码的状况下,完成参数化设计。

根据为开发者给予各种各样独特的方法,它可以促使功能测试的撰写更加简易、更不容易错误,与此同时编码也会越来越更短、更加容易被了解。

缺陷

以上谈及的独特方法,也代表着用户务必舍弃一定的兼容模式。尽管便捷了用户撰写功能测试,可是这种测试用例却没法与一切别的的检测架构一起被应用。

 

3.UnitTest/PyUnit

遭受了JUnit启迪的UnitTest/PyUnit,也是一种规范化的对于单元测试卷的Python类功能测试架构。它的基类TestCase给予了各种各样肯定方式、及其全部清除和设定的方法。因而,TestCase派生类中的每一种方式全是以“test”做为专有名词作为前缀,以标志他们可以被做为功能测试所运作。用户能够应用load方式和TestSuite类来排序、并载入各种各样检测。自然,您还可以根据协同应用,来搭建自定的稳定性测试器。如同大家应用Junit去检测Selenium那般,UnitTest也会采用UnitTest-sml-reporting、并能转化成各种各样XML种类的汇报。

应用前提条件

因为UnitTest默认设置应用了Python,因而大家并不一定哪些前提条件。除开必须 具有Python架构的基础知识,您还可以附加地安装pip、及其用以开发设计的IDE专用工具。

优势

开发者并不一定安裝一切别的的控制模块。

UnitTest是xUnit的衍生品,其原理与别的xUnit架构十分相近。因而针对这些沒有扎实Python情况的人而言,也可以迅速地面上手。

用户可以以更加简易的方法运作单独功能测试。您只需在终端设备上预订好名称,该架构便可灵便地实行各种各样测试用例的检测,并造成精练的輸出。

它可以在几ms内转化成各种各样检测报告。

缺陷

尽管该架构常见snake_case来取名各种各样Python编码,可是因为它源于Junit,因而仍保存了一些传统式的camelCase命名方法。这通常会令人造成搞混。

因为它太多地适用了抽象方法,因而导致了测试程序的目地有时候不足清楚。

必须 很多的样版编码。

 

 

4.Behave

大家都了解:个人行为驱动开发(behavior-driven development,BDD),是一种根据灵巧开发软件的***方式。它可以激励开发者、业务流程参加者和QA工作人员,三者中间的合作。做为另一种Python检测架构,Behave容许精英团队绕开各种各样繁杂的状况,去实行BDD检测。从实质上说,该架构与SpecFlow和Cucumber十分类似,常被用以实行功能测试。用户能够根据简易最易读的语言表达来撰写功能测试,并可以在其实行期内黏贴到编码当中。并且,这些被设置的行为准则与流程,还可以被器重到别的的测试方法中。

应用前提条件

一切具有Python基本知识的人都能够应用Behave。别的前提条件还包含:

您务必先安裝Python 2.7.14及之上的版本号。

必须 根据Python包管理工具或pip来与Behave合作。

大部分开发者会挑选Pycharm做为开发工具,自然您还可以采用别的的IDE专用工具。

优势

因为系统软件个人行为应用了半宣布(semi-formal)语言表达、及其域词汇(domain vocabulary),因而Behave有利于在机构中维持一致性的个人行为。

让这些工作中在不一样控制模块上的开发设计精英团队,根据融洽解决来具备相近的特点。

其搭建的每个功能块可以实行各种各样功能测试。

因为具备大量非常值得用户逻辑推理和思索的关键点,因而总体目标商品会具备更强的规范化。

依据相近的标准文件格式,它可以让工程项目经理和相关者,对开发设计精英团队和QA精英团队的輸出具备更清晰地掌握。

缺陷

只适用黑盒测试方法。

 

5.Lettuce

Lettuce是另一种根据Cucumber和Python的个人行为推动类自动化技术专用工具。Lettuce关键致力于这些具备个人行为驱动开发特点的一般每日任务。它不仅简易实用,并且可以促使全部检测全过程更顺畅、乃至更有意思。

应用前提条件

您必须 安裝含有IDE的Python 2.7.14、及之上的版本号。自然,您还可以应用Pycharm或一切别的IDE专用工具。与此同时,您还必须 安裝Python包管理工具。

优势

和别的BDD检测架构相近,Lettuce可以让开发者建立好几个情景,并且用简易的自然语言理解去叙述不一样的作用。

依据相近的标准文件格式,开发设计与QA精英团队可以融洽相处。

针对黑盒测试方法来讲,Lettuce特别适合于这些个人行为推动的功能测试。

缺陷

为了更好地取得成功地完成个人行为推动检测,开发设计精英团队、QA工作人员及其相关者中间必须 不断开展沟通交流。假若欠缺该类沟通交流,则会造成步骤模模糊糊,并让精英团队碰到难题。

Python的五大自动化测试架构bj.qa.tedu.cn/news/445373.html

posted @ 2022-04-18 15:42  韩、饭饭  阅读(776)  评论(0编辑  收藏  举报