测试自动化是使用框架和工具自动执行测试以更快地执行测试并减少对人工测试人员的需求的实践。在这种软件测试方法中,创建可重用的测试脚本来测试应用程序的功能,从而减少整体回归时间并促进更快的软件发布。利用测试自动化可缩短测试生命周期的回归时间并提高发布质量。
根据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插件与多个进程并行执行
可以添加许多插件,具有报告、硒测试自动化等功能。
缺点:
文档不广泛
尽管开发周期较短,但自动化测试提供了几个优势,这些优势对于生成高质量的应用程序至关重要。它最大限度地减少了手动测试过程中不可避免地发生人为错误的可能性。通过自动化测试,软件质量得到提高,缺陷危及交付时间的可能性降低。
2023国家网络安全宣传周 | 华为安全参展指南来啦!
怎么解决有关于data保存时间的时序错误?
野外施工神级装备:大功率便携式移动电源-在施工环境及野外环境下应用
美国国家安全局NSA的议程可能不仅仅是追踪比特币的公共账簿
电化学沉积技术在集成电路行业的应用
为自动化测试选择合适的Python框架
一套基于GAN的验证码AI识别系统,能在0.5秒之内识别出验证码
iOS10系统更新更具人性化 可自创涂鸦标签设置炫酷短信背景
如果高通骁龙835,配上魅族pro7盛世美颜,简直就是内外兼修!
制造精致微细结构的压印技术
安防系统特性和未来发展方向
C语言基础知识科普
2020年ODM厂商出货量预测:华勤超1.6亿部,闻泰出货量达1.3亿部
华为荣耀V9即将开卖,对比华为P10,该怎么选?
iphone8最新真机渲染图来袭!侧手指纹加屏下指纹双识别!
麒麟9000会不会真的成为华为麒麟芯的“绝唱”
鸿蒙升级的具体教程是怎样的
盘点那些奇葩的联网设备
机器学习加速晶体结构方法设计出非金属性的富氮类钨氮化合物h-WN6
清华大学教授提出APDrawingGAN,人脸照片秒变艺术肖像画