0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用Python实现功能测试自动化

星星科技指导员 来源:embedded 作者:Rahul Vala 2023-05-04 11:20 次阅读

当今的现代企业需要更快的软件功能发布,以生产高质量的产品,并在不牺牲软件质量的情况下快速进入市场。为了确保成功部署,加速发布新功能或修复现有功能中的错误需要严格的端到端软件测试。

虽然手动测试可用于小型应用程序或软件,但大型和复杂的应用程序需要专用的资源和技术,如 python 测试框架、自动化测试工具等,以确保在更短的时间内实现最佳的测试覆盖率和更快的质量发布。

PyTest 是一个测试框架,允许个人使用 Python 编写测试代码,使您能够为数据库、API 和用户界面创建简单且可扩展的测试用例。PyTest 主要用于编写 API 测试。它有助于开发从简单的单元测试到复杂的功能测试的测试。根据Future Market Insights集团发布的一份报告,到14年底,全球自动化测试市场预计将以3.93%的复合年增长率增长,市场价值将达到6亿美元。

为什么选择 Pytest?

选择正确的测试框架可能很困难,并且依赖于可行性、复杂性、可伸缩性和框架提供的功能等参数。PyTest 是测试自动化工程师的首选测试框架,对 Python 基础知识有很好的了解。使用 PyTest 框架,您可以创建高覆盖率单元测试、复杂功能测试和验收测试。除了是一个极其通用的测试自动化框架之外,PyTest 还具有大量的测试执行功能,例如参数化、标记、标记、并行执行和依赖项。

使用 Pytest 作为测试框架时没有样板

Pytest 可以运行用 unittest、doctest 和 nose 编写的测试

Pytest 支持用于行为驱动测试的插件

有 150 多个插件可用于支持不同类型的测试自动化

下图显示了 Pytest 框架的典型结构。

pYYBAGRTI9KAZiAdAACJYnJJaVE343.png

(Pytest 根框架)

如上面的结构所示,框架核心组件的业务逻辑完全独立于 Pytest 组件。Pytest 使用核心框架就像在测试脚本中实例化对象并调用其函数一样。测试脚本文件名应以“test_”开头或以“_test”结尾。测试函数名称也应采用相同的格式。Pytest 中的报告可以通过 Pytest-html 报告来处理。

重要的 Pytest 特性

1. pytest 夹具

Pytest最突出的功能是Fixtures。顾名思义,夹具是 Pytest 中用于生成特定条件的装饰器函数,需要安排该条件才能成功运行测试。

条件可以是任何前提条件,例如创建所需类的对象,将应用程序带到特定状态,在单元测试的情况下启动模拟程序,初始化依赖项等。夹具还负责拆除或还原测试执行完成后生成的条件。通常,夹具负责测试的设置和拆卸条件。

夹具范围

设置和拆卸不必仅用于测试功能。设置的范围可能因测试功能而异,可能与整个测试会话一样大。这意味着每个定义的范围仅执行一次设置-拆卸。为了实现相同的目的,我们可以定义范围以及夹具装饰器,即会话、模块、类、函数。

夹具使用

Pytest 提供了隐式使用灯具或使用 autouse 参数显式调用灯具的灵活性。要默认调用夹具函数,需要将 autouse 参数值设置为 True,否则设置为 False。

2. Conftest.py

测试框架中使用的所有夹具通常都以 conftest.py 定义。它是任何 Pytest 执行的入口点。夹具不必是自动使用的=True。所有定义的夹具都可以由所有测试文件访问。conftest.py 需要放在 Pytest 框架的根目录中。

3. Pytest 钩子

Pytest 提供了许多钩子,这些钩子将被调用以执行特定的设置。钩子是刚好产生一次的生成器函数。用户还可以为 Pytest 钩子编写包装器。

4. 标记

Pytest 提供了标记,用于根据功能、范围、测试类别等对一组测试进行分组。可以根据标记自动筛选测试执行。即接受、回归套装、登录测试等。

标记还充当参数化测试的推动因素。将对作为参数传递的所有参数执行测试。请注意,Pytest 将一个参数的测试视为完全独立的测试。许多事情都可以通过标记来实现,例如将测试标记为跳过,在某些条件下跳过,具体取决于特定测试等。

5. 断言

Pytest 不要求测试脚本具有其断言。它可以完美地与Python内置断言一起工作。

6.皮特测试.ini

所有默认配置数据都可以放在pytest中.ini并且conftest可以读取相同的数据,而无需任何特定的实现。

PyTest 支持大量插件,通过这些插件,几乎任何级别的复杂系统都可以实现自动化。Pytest 的一个主要好处是,任何类型的结构实现都是使用原始 Python 代码完成的,没有任何样板代码。这意味着在 Pytest 中实现任何东西就像在 Python 中实现任何东西一样灵活和干净。

在更短的开发周期中,测试自动化提供了几个对生成高质量应用程序至关重要的好处。它减少了在手动测试方法中发生不可避免的人为错误的可能性。自动化测试可提高软件质量,并降低缺陷危及交付时间的可能性。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • API
    API
    +关注

    关注

    2

    文章

    1470

    浏览量

    61732
  • 代码
    +关注

    关注

    30

    文章

    4714

    浏览量

    68196
  • python
    +关注

    关注

    55

    文章

    4764

    浏览量

    84353
收藏 人收藏

    评论

    相关推荐

    【NanoPi2申请】华为基站自动化测试

    申请理由:我公司主要业务是基站维修。本项目是要做华为基站自动化测试设备。软件部分是Python+PyQt4完成的。主要功能是操作安捷伦的E4438c和N9020A对基站各项指标作的
    发表于 12-02 16:14

    开关电源自动化测试系统的设计与实现

      摘 要: 按照以软件为核心的模块系统构架,设计并实现了新一代开关电源自动化测试系统。该系统能自动完成开关电源
    发表于 11-29 16:59

    python控制CANoe实现自动化测试的方法

    ”完成了python控制CANoe实现自动化测试。那么,python能控制钉钉么?答案是可以的。那么用py
    发表于 12-29 08:12

    LabVIEW与Tektronix示波器实现电源测试自动化

    LabVIEW与Tektronix示波器实现电源测试自动化 在现代电子测试与测量领域,自动化测试
    发表于 12-09 20:37

    ATE自动化测试系统是什么_ATE自动化测试系统介绍

    本文首先介绍了ATE自动化测试系统发展线路,其次阐述了ATE自动化测试系统的作用及原理、特点、优势,最后介绍了ATE自动化
    发表于 05-23 16:47 3.2w次阅读

    自动化测试框架unittes详解

    测试框架,不妨“软为硬用”。这里就基于python自动化测试框架unittest来实现一个简单的自动
    的头像 发表于 05-20 14:47 2863次阅读

    测试自动化中的Python

      用于测试的编程需要与开发应用程序的编程不同的方法。如果你想要一种专门用于测试编码的简单而精简的语言,Python 是一个不错的选择。Python
    的头像 发表于 12-09 14:53 777次阅读

    使用Python脚本实现自动化运维任务

    许多运维工程师会使用 Python 脚本来自动化运维任务。Python 是一种流行的编程语言,具有丰富的第三方库和强大的自动化能力,适用于许多不同的领域。
    的头像 发表于 04-08 10:36 1604次阅读

    什么是自动化测试框架

    自动化测试框架,即是应用于自动化测试所用的框架。按照框架的定义,自动化测试框架要么是提供可重用的
    发表于 04-18 14:44 854次阅读

    自动化测试选择合适的Python框架

    测试自动化是使用框架和工具自动执行测试以更快地执行测试并减少对人工测试人员的需求的实践。在这种软
    的头像 发表于 05-04 12:02 1359次阅读

    python自动化测试攻城记

    本文介绍实施自动化测试需要具备的技能及具体实践流程。
    的头像 发表于 08-16 11:39 983次阅读
    <b class='flag-5'>python</b><b class='flag-5'>自动化</b><b class='flag-5'>测试</b>攻城记

    Facebook群组自动化python – 网络自动化

    电子发烧友网站提供《Facebook群组自动化python – 网络自动化.zip》资料免费下载
    发表于 07-05 14:26 0次下载
    Facebook群组<b class='flag-5'>自动化</b><b class='flag-5'>python</b> – 网络<b class='flag-5'>自动化</b>

    Python 模拟键盘鼠标的方式实现自动化

    在某些情况下,如果我们需要进行自动化操作的应用没有提供相应的接口,我们无法直接通过Python来调用API实现自动化。这种情况下,Python
    的头像 发表于 11-02 14:48 1293次阅读
    <b class='flag-5'>Python</b> 模拟键盘鼠标的方式<b class='flag-5'>实现</b><b class='flag-5'>自动化</b>

    电源测试怎么自动化?电源模块自动化测试系统如何实现

    纳米软件在电测行业深耕十余年,在行业的大背景下,为了进一步完善自动化测试,开发出了新的智能的电源模块自动化测试系统ATECLOUD-POW
    的头像 发表于 12-15 14:40 782次阅读
    电源<b class='flag-5'>测试</b>怎么<b class='flag-5'>自动化</b>?电源模块<b class='flag-5'>自动化</b><b class='flag-5'>测试</b>系统如何<b class='flag-5'>实现</b>?

    Python自动化测试框架及其应用

    Pytest是一个非常成熟的全功能Python测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起
    的头像 发表于 04-03 16:15 491次阅读
    <b class='flag-5'>Python</b><b class='flag-5'>自动化</b><b class='flag-5'>测试</b>框架及其应用