测试动态 / 质量专栏 / 2020年Selenium自动化的顶级Python测试框架
2020年Selenium自动化的顶级Python测试框架
2020-08-14 作者:wjy 浏览次数:3607

根据StackoverFlow网站的开发者调查,Python是2019年增长最快的编程语言。在整体排名中,它甚至超越了Java,排在第二位,成为最受喜爱的编程语言之一。


Python流行的几个原因之一是对测试自动化框架的广泛支持。大多数流行的Python框架都与Selenium测试自动化框架兼容,并用于自动化浏览器测试和跨浏览器测试。

随着2020年Python测试框架的增加,有必要选择适合你需求的理想的Selenium测试自动化框架。除了2020年默认的Python测试框架unittest(或PyUnit)之外,还有更多的Python框架可供选择。

以下是卓码测评总结的2020年实现Selenium测试自动化需求的顶级Python测试框架:

1、Behave

Behave是广泛用于BDD(业务驱动开发)测试的Selenium Python测试框架之一。Behave使用Gherkin语言开发场景和特性文件。由于Gherkin在测试用例开发中使用了简单的可读语言,所以还可以为团队中的非技术人员创建测试,从而支持业务驱动的开发。

随着工程师、经理、质量分析师、业务开发经理等之间协作的增加,BDD框架的使用可以保证团队成员之间能够更好地沟通。如果你有关于其他BDD框架(如SpecFlow、Cucumber、- jvm等)的工作知识,那么开始使用行为驱动的Python测试框架(如Behave)就相对容易一些。

因为behavior是一个BDD框架,它从根本上不同于其他Selenium Python测试框架,(如unittest(或PyUnit)、PyTest等。

先决条件是什么?

安装Behave需要Python 2.7.14以上版本。使用任何BDD工具的经验对于开始使用Behave框架都是非常方便的。

Behave的优点

(1)如果团队之前有使用任何现有BDD框架(如SpecFlow、Cucumber等)的经验,则很容易升级。

(2)可用的环境功能,配置设置,夹具等,可实现简单的设置和清理。

(3)它支持与其他web框架(如Django和Flask)的集成。

(4)它有优秀的支持文档和教程,可以帮助你开始使用behave框架。

(5)添加新的测试用例更简单,因为测试由不同的场景步骤、场景结果、特性文件等组成。

(6)除了技术人员之外,非技术人员也可以在测试用例(或测试场景)开发中扮演重要角色。

Behave的缺点

(1)PyCharm(社区版)不支持Behave。

(2)在Behave中的不同功能文件(*.feature)之间共享场景步骤(*_steps.py)是非常困难的。

(3)没有对并行测试执行的内置支持,而并行测试是自动化浏览器测试的主要需求之一。并行测试执行的工作区需要安装额外的软件,就像热门网站讨论线程中所述。

(4)Behave只能用于黑盒测试。

Behave是最好的Python测试框架吗?

Behave框架适合于web测试,因为测试场景可以使用简单的英语开发。另一方面,Behave对于集成测试并不理想,因为冗长会导致测试场景不必要的复杂性。

许多开发人员更喜欢pytest- BDD,它是pytest.runner的BDD库,因为它使用了pytest中可用的优秀特性,因此适合于BDD测试。

2、PyUnit(或unittest

PyUnit(也称为unittest)是默认的Python测试框架,它是Python标准库的一部分。Python测试框架的灵感来自于JUnit框架。它是自Python版本2.1发布以来发布的unittest模块的一部分。

由于unittest Python测试框架是开箱即用的,许多开始使用Selenium测试自动化的开发人员更喜欢unittest框架。测试用例遵循特定的命名法,其中测试要么以test_开始,要么以_test结束。

TestCase是一个基类,它包含断言方法、设置和销毁例程。可以将测试用例的数量分组在一起,以形成一个TestSuite类并构建定制的测试运行程序。

先决条件是什么?

由于PyUnit框架与Python测试框架是开箱即用的,所以它不需要任何额外的软件包安装。

PyUnit(或unittest)的优点

(1)因为PyUnit是xUnit框架的派生,并且与xUnit框架有明显的相似之处,所以Python中的新手开发人员也很容易开始使用unittest框架。

(2)不需要额外的软件包安装。

(3)测试场景可以独立执行,也可以将它们分组到一个测试套件中。执行过程很简单,因为测试只能通过在终端上提到它们的名称来执行。

(4)默认的执行输出是简洁且易于理解的。这个Python测试框架还有许多命令行选项,可以帮助提供更详细的输出。

(5)测试报告的生成非常快,只需要几毫秒。

PyUnit(或unittest)的缺点

(1)测试用例的命名仍然基于在Java中使用的camelCase命名约定。

(2)大量的样板代码用于测试实现。

(3)没有提供彩色输出。

PyUnit是最适合你的Python自动化框架吗?

由于PyUnit(或unittest)是Python附带的默认Selenium Python测试框架,大多数开发人员使用PyUnit开始他们的Python自动化测试之旅。太多的样板代码和对太多抽象的支持是在大型项目中使用Python测试框架的主要障碍。

了解如何使用PyUnit进行Selenium Python测试。

3、Robot

Robot是另一个广泛使用的Python测试框架,用于Selenium测试自动化、RPA(机器人流程自动化)和ATDD(验收测试驱动开发)。它是一个开源的、可扩展的Python测试框架。它可以很容易地与任何其他工具集成,因为它是创建灵活的自动化测试解决方案的理想工具。

Python测试框架是独立于操作系统和应用程序的,即相同的实现在不同的平台(即Windows、Linux和MacOS)上是兼容的。Robot框架的语法很容易理解,因为它使用了人类可读的关键字。Robot框架的功能可以通过使用Python在Selenium中实现的库进行扩展。它有一个丰富的生态系统,由作为独立项目开发的库和工具组成。

先决条件是什么?

如果安装了Python 2.7.14或更高版本,可以使用Robot框架。Python包管理器(pip)命令用于安装Python测试框架。

Robot框架的优点

(1)使用Robot框架编写测试用例不需要编程知识。

(2)由于Python测试框架是独立于平台和应用程序的,因此在从一个平台执行代码到另一个平台时不需要进行移植。

(3)它可以用于BDD、ATDD和关键字驱动的Selenium测试自动化。

(4)很容易开始使用Robot框架,因为可以轻松地使用测试数据语法。

(5)Robot framework拥有丰富的库生态系统,例如用于移动自动化的Appium、用于DB测试的数据库库等,用于测试不同的应用程序。

(6)它有一个很好的内置报告机制,因为每次构建之后都会生成一个HTML日志。

Robot的缺点

(1)没有对并行测试执行的内置支持。

(2)创建定制的HTML报告不是一项简单的任务。

Robot是最适合你的Python测试框架吗?

由于其丰富的库集和简单的语法,与PyUnit(或unittest)和PyTest相比,Robot框架更易于使用。如果我们正在为ATDD寻找一个理想的Python自动化框架,那么你应该选择Robot framework。

4、Nose2

Nose2是一个Python单元测试框架,它是Nose框架的后续版本。它是unittest的,也被称为unittest的扩展。Nose2通过为测试执行提供插件、支持测试用例的自动发现和收集文档,为PyUnit框架增加了支持。

所有这些新增的功能使得使用PyUnit进行测试变得简单和容易。Nose2的插件生态系统增加了对装饰器、装置、参数化测试、模块、类和测试发现的支持。在Nose2中是一种DSL(领域特定语言),用于编写具有昂贵的嵌套特性的测试,也称为功能测试。更多关于Nose2的详细信息请访问该网站的官方网站。

先决条件是什么?

Nose2只依赖于与Python库一起提供的unittest模块。可以使用Python包管理器(pip)安装Nose2。

Nose2的优点

(1)它很容易安装并开始使用Nose2,因为它扩展了现有的unittest框架。

(2)有了诸如测试发现、fixture、参数化测试等特性,nose2使unittest与PyTest一样有用。

(3)用Nose2编写的脚本支持许多命令行选项和通过配置文件进行的大量配置。

(4)使用Nose2中的mp插件,测试可以与多个进程并行执行。这加快了测试执行的速度,以防你的测试被IO或CPU严重限制。

(5)Nose2有大量的插件,可以帮助加速Selenium测试自动化过程。

Nose2的缺点

(1)Nose2的文档不像PyTest框架那样广泛。

(2)Python 2.4(及以上版本)支持的nose框架的废弃可能会对希望在项目中使用Nose2的开发人员造成潜在的负面影响。

Nose2是最适合你的Python测试框架吗?

如果你的团队成员正在使用unittest框架,并且不打算切换到任何其他框架(例如Lettuce、行为、PyTest等),那么值得尝试一下Nose2,因为它是unittest的扩展。

因为Nose2也支持并行测试,所以它可以用于自动化的浏览器测试,这种测试场景可以在不同的浏览器和平台组合中执行。

5、Lettuce

Lettuce是一个Python测试框架,它促进了BDD测试。它的灵感来自Cucumber(是为Ruby设计的)。Lettuce的名字是受到了绿色植物的启发。最新版本的Lettuce是0.2.23,被称为Kryptonite。

这个特殊的Python测试框架是开源的,并托管在GitHub上。正如他们的官方网站所提到的,Lettuce是为了让测试变得简单和有趣而开发的。

先决条件是什么?

可以使用Python包管理器(pip)安装Lettuce。前提条件是Python 2.7.14(或更高版本)。

Lettuce的优点

(1)像其他Python测试框架(如有助于BDD的Behave)一样,Lettuce也使用小黄瓜语言来创建场景和特性文件。如果你之前有使用任何BDD测试工具的经验,那么开始使用Lettuce是很容易的。

(2)除了开发人员和其他技术人员之外,其他项目干系人,即营销人员、项目经理等,也可以在测试过程中发挥主要作用。

(3)因为特性文件和场景文件中需要主要的更新,添加新的测试用例会很容易。

Lettuce的缺点

(1)它主要用于黑盒测试。

(2)使用像Lettuce这样的BDD测试工具,完美的执行需要在项目的所有相关涉众之间进行及时的沟通。

Lettuce是最适合你的Python自动化框架吗?

Lettuce使Selenium测试自动化的整个过程具有可伸缩性、可读性和简单性。使用像Lettuce这样的BDD工具的最佳部分是,非技术人员也可以参与测试创建过程,因为测试是从业务需求派生出来的。Python开发人员和测试人员更倾向于pytest-bdd,因为它具有其他BDD工具支持的大部分特性。

6、PyTest

使用PyTest编写的测试套件更加紧凑,因为不需要大量样板代码,也不需要将测试包含到大型测试类中。与默认的Python测试框架2020不同,它要求测试以test_开始(或以_test结束),PyTest中没有固定的测试用例命名法。这是因为PyTest具有支持自动发现测试模块和函数的内置特性。

不需要记住assert*名称,这是由于引入了assert重写的有用特性,该特性有助于提供关于失败断言语句的详细信息。

先决条件是什么?

PyTest (Python测试框架)最好的地方在于它包含了一个简单的学习曲线。开始使用PyTest是很容易的,特别是如果你事先了解任何现有的Python测试框架。

你只需要一个用于开发的Python IDE和用于安装PyTest的Python包管理器。

PyTest的优点

PyTest框架有很多优点,主要有以下几点:

(1)它与其他Python测试框架(如unittest(或PyUnit))兼容。

(2)除了简单的测试之外,PyTest还可以用于创建复杂的功能测试用例。

(3)使用其他Python测试框架将现有实现移植到PyTest所需的工作较少。

(4)PyTest可以用于实践TDD(测试驱动开发)的项目,也可以用于开源项目。

(5)PyTest有助于创建有效的测试用例(和测试套件),因为它支持参数化。使用参数化,可以使用不同的输入配置执行测试用例,从而减少代码重复。

(6)使用PyTest的测试很容易理解,因为只有很少的样板代码。

(7)它支持fixture和类,由于这些测试对象在模块/类/函数/会话的生命周期中都是可用的。

(8)PyTest是可扩展的,Python测试框架已经有了丰富的插件架构。目前PyTest有315+的外部插件。

它通过pytest-xdist插件支持并行测试执行。

PyTest中的断言提供了关于失败场景的详细信息。

PyTest作为Python测试框架的缺点

(1)PyTest与其他Selenium Python测试框架不兼容,因为它使用自己的特殊例程进行开发。

(2)重写完整的代码是使用PyTest将现有的实现移植到其他Python测试框架的唯一方法。

PyTest是最适合你的Python测试框架吗?

如果你正在开发复杂的功能测试,那么你可以选择PyTest而不是默认的Selenium Python框架,即unittest。fixture、类以及参数化对于自动化测试开发非常方便。

7、Testify

prove是另一个在2020年流行的Python测试框架,它被认为是unittest和nose框架的替代品。由于框架是在unittest之后建模的,为unittest编写的测试将需要最小的调整来使用prove。

证实可用于执行自动化单元、集成和系统测试。最新版本的是0.11.0。它有一个可扩展的插件系统,提供了有用的报告功能。与Nose2框架一样,prove也提供了增强的测试发现和类级设置&拆卸fixture方法,这些方法只对整个测试方法集执行一次。

先决条件是什么?

证明框架的主要优点是,它涉及一个温和的学习曲线,因为它是基于现有的单元测试框架。安装相当简单,因为它只需要Python包管理器。

Testify的优点

(1)因为它是基于unittest框架的,所以很容易开始使用prove。

(2)这个框架有一个可扩展的插件生态系统。

(3)它还有额外的测试实用程序,可以帮助集成、分析和代码覆盖。

(4)与Nose2框架一样,prove也带有增强的测试发现,这使得发现测试非常容易。

(5)它为fixture方法提供了一种基于装饰的方法。

Testify的缺点

(1)和Nose2一样,也有同样的问题,文档不是很丰富,如果你刚刚开始使用框架,这可能是一个障碍。

(2)与Testify的并行测试可能是一个障碍,正如一些在线论坛指出的那样。

Testify是最好的Python测试框架吗?

与Nose2一样,如果你的团队正在寻找构建在unittest之上的Python测试框架,那么它值得一试。由于使用witness实现并行测试有点困难,所以它可能不适合自动化浏览器测试之类的场景。

总结

在本文中,我们了解了一些可以与Selenium一起使用的流行Python测试框架。这些框架都有各自的优缺点。如果你打算在测试创建过程中包含非技术人员,你可以尝试有效BDD工具,例如Behave或Lettuce 。总之,选择正确的Python测试框架完全取决于项目需求和团队中可用的能力。

以上是2020年Selenium自动化的顶级Python测试框架推荐,更多测试动态可关注卓码测评!


卓码软件测评是一家[ 具备CMA、CNAS双重资质 ]的专业做软件测试的第三方软件测试服务机构, 可根据您的需求提供各类软件测试服务,并出具合格有效的软件测试报告。点击→→可了解测试报价

部分文字、图片来自网络,如涉及侵权,请及时与我们联系,我们会在第一时间删除或处理侵权内容。负责人:曾菲       电话:4006070568

文章标签: 软件兼容测试 第三方测试 自动化测试 软件测试 测试平台
热门标签 换一换
软件崩溃 稳定性测试 API测试 API安全测试 网站测试测评 敏感数据泄露测试 敏感数据泄露 敏感数据泄露测试防护 课题软件交付 科研经费申请 软件网站系统竞赛 竞赛CMA资质补办通道 中学生软件网站系统CMA资质 大学生软件网站系统CMA资质 科研软件课题cma检测报告 科研软件课题cma检测 国家级科研软件CMA检测 科研软件课题 国家级科研软件 web测评 网站测试 网站测评 第三方软件验收公司 第三方软件验收 软件测试选题 软件测试课题是什么 软件测试课题研究报告 软件科研项目测评报告 软件科研项目测评内容 软件科研项目测评 长沙第三方软件测评中心 长沙第三方软件测评公司 长沙第三方软件测评机构 软件科研结项强制清单 软件课题验收 软件申报课题 数据脱敏 数据脱敏传输规范 远程测试实操指南 远程测试 易用性专业测试 软件易用性 政府企业软件采购验收 OA系统CMA软件测评 ERP系统CMA软件测评 CMA检测报告的法律价值 代码原创性 软件著作登记 软件著作权登记 教育APP备案 教育APP 信息化软件项目测评 信息化软件项目 校园软件项目验收标准 智慧软件项目 智慧校园软件项目 CSRF漏洞自动化测试 漏洞自动化测试 CSRF漏洞 反序列化漏洞测试 反序列化漏洞原理 反序列化漏洞 命令执行 命令注入 漏洞检测 文件上传漏洞 身份验证 出具CMA测试报告 cma资质认证 软件验收流程 软件招标文件 软件开发招标 卓码软件测评 WEB安全测试 漏洞挖掘 身份验证漏洞 测评网站并发压力 测评门户网站 Web软件测评 XSS跨站脚本 XSS跨站 C/S软件测评 B/S软件测评 渗透测试 网站安全 网络安全 WEB安全 并发压力测试 常见系统验收单 CRM系统验收 ERP系统验收 OA系统验收 软件项目招投 软件项目 软件投标 软件招标 软件验收 App兼容性测试 CNAS软件检测 CNAS软件检测资质 软件检测 软件检测排名 软件检测机构排名 Web安全测试 Web安全 Web兼容性测试 兼容性测试 web测试 黑盒测试 白盒测试 负载测试 软件易用性测试 软件测试用例 软件性能测试 科技项目验收测试 首版次软件 软件鉴定测试 软件渗透测试 软件安全测试 第三方软件测试报告 软件第三方测试报告 第三方软件测评机构 湖南软件测评公司 软件测评中心 软件第三方测试机构 软件安全测试报告 第三方软件测试公司 第三方软件测试机构 CMA软件测试 CNAS软件测试 第三方软件测试 移动app测试 软件确认测试 软件测评 第三方软件测评 软件测试公司 软件测试报告 跨浏览器测试 软件更新 行业资讯 软件测评机构 大数据测试 测试环境 网站优化 功能测试 APP测试 软件兼容测试 安全测评 第三方测试 测试工具 软件测试 验收测试 系统测试 测试外包 压力测试 测试平台 bug管理 性能测试 测试报告 测试框架 CNAS认可 CMA认证 自动化测试
专业测试,找专业团队,请联系我们!
咨询软件测试 400-607-0568