测试自动化是使用框架和工具自动执行测试以更快地执行测试并减少对人工测试人员的需求的实践。在这种软件测试方法中,创建可重用的测试脚本来测试应用程序的功能,从而减少整体回归时间并促进更快的软件发布。利用测试自动化可缩短测试生命周期的回归时间并提高发布质量。
根据Future Market Insights集团发布的一份报告,到14年底,全球自动化测试市场预计将以3.93%的复合年增长率增长,市场价值将达到6亿美元。
自动化测试脚本可以用几种不同的编程语言编写,例如Python,C#,Ruby,Java等。其中,Python是迄今为止自动化工程师用于自动化测试的最流行的语言。它提供了用于自动化测试的各种有用的工具和库。Python还广泛支持许多不同类型的测试自动化框架。除了默认的Python测试框架,单元测试(或PyUnit)之外,还有各种Python框架更适合该项目。可以根据项目需求、规模和实践的自动化框架来选择最适合项目的测试框架,例如 TDD(测试驱动开发)、BDD(行为驱动开发)、ATDD(验收测试驱动开发)、KDD(关键字驱动开发)等。
Python 测试框架的类型
PyTest:
PyTest 是一个开源框架,它支持单元测试、API 测试和功能测试。在 PyTest 中,测试用例遵循特定的格式,其中测试以 test_ 开头或以 _test 结尾。
先决条件:
测试驱动开发框架的基础知识
蟒蛇的工作知识
优点:
可用于练习 TDD 的项目
帮助以紧凑的方式编写测试服
夹具和参数化测试涵盖了多种测试用例组合,无需重写它们
标记可用于对测试进行分组或在运行整个测试套件时跳过它们
许多内置和第三方插件支持,可以添加新功能,如报告生成等。
支持使用 pytest-xdist 插件并行执行测试用例
巨大的社区支持
实现 python 装饰器,可以完全利用 python 编程灵活性
缺点:
它与其他python框架不兼容。如果有人想迁移到另一个 python 框架,则必须重写所有测试。
它纯粹基于python编程,需要对python编程有扎实的知识。
机器人
机器人是一个广泛用于硒测试自动化的开源框架。
先决条件:
关键词驱动开发框架基础知识
创建新关键字需要python的工作知识
优点:
可用于实践 ATDD、BDD 或关键字驱动开发的项目
如果使用预定义的关键字,则不需要事先的编程知识
对于来自非技术背景的客户和高级管理人员来说,易于理解。
许多库和内置关键字,特别是用于硒测试
良好的内置报告机制
良好的社区支持
缺点:
难以自定义 HTML 报告
没有用于并行测试执行的内置功能。Pabot 可用于并行执行测试用例
创建新关键字可能很耗时,或者可能会限制具有编码知识的测试人员,因此灵活性较低
Beact
Beact 是一个最适合 Web 测试的开源框架。脚本或功能文件的语法非常接近外行英语。
先决条件:
行为驱动发展框架的基本知识
蟒蛇的工作知识
优点:
可用于练习 BDD 的项目
环境功能、配置设置、夹具等的可用性易于设置和清理
易于理解的框架
可以与其他Web开发框架(如烧瓶等)集成。
易于添加新的测试用例
以 JUnit 格式生成报告
出色的文档支持
缺点:
不支持并行执行测试用例
只能用于黑盒测试
不适合集成测试
PyUnit
PyUnit(单元测试)是 Python 附带的单元测试的默认测试框架。与 PyTest 类似,在 PyUnit 中,测试用例也遵循特定的格式,其中测试以 test_ 开头或以 _test 结尾。
先决条件:
Python的工作知识
优点:
无需额外安装软件包
测试报告生成速度更快
只需在终端上键入测试名称即可运行单个测试
默认输出易于理解
缺点:
将 PyUnit 用于大型项目会受到对过多抽象的支持和大量样板代码的严重阻碍。
Nose2
Nose2 是单元测试的扩展。Nose2 通过提供插件增加了对 PyUnit 框架的支持。
先决条件:
Python的工作知识
优点:
易于安装
具有夹具、参数化测试等功能。像 PyTest
测试可以使用(多进程)mp插件与多个进程并行执行
可以添加许多插件,具有报告、硒测试自动化等功能。
缺点:
文档不广泛
尽管开发周期较短,但自动化测试提供了几个优势,这些优势对于生成高质量的应用程序至关重要。它最大限度地减少了手动测试过程中不可避免地发生人为错误的可能性。通过自动化测试,软件质量得到提高,缺陷危及交付时间的可能性降低。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !