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

    文章

    1382

    浏览量

    60992
  • 代码
    +关注

    关注

    30

    文章

    4555

    浏览量

    66771
  • python
    +关注

    关注

    51

    文章

    4675

    浏览量

    83467
收藏 人收藏

    评论

    相关推荐

    OPhone自动化测试技术概述

    本文将对OPhone平台上可采用的几种自动化测试技术进行介绍,并对每种技术的优缺点做简要的总结。OPhone台除了为应用程序开发提供丰富的API外,也为开展自动化测试提供了多种途径。【
    发表于 05-06 08:58

    非标自动化设备|送料自动化设备|pcba功能测试

    pcba功能测试本公司专业生产屏蔽箱与测试治具,非标机械自动化设备采用手柄连杆结构,操作省力。东莞非标自动化设备机架比较适合电子半成品的
    发表于 03-10 09:11

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

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

    手机自动化测试

    之前发布过小萝贝控机大师与按键精灵结合实现手机自动化测试功能,小萝贝控机大师升级了实现了更多手机自动化
    发表于 07-08 13:36

    【上海】猎头推荐职位-自动化测试工程师(java/python

    猎头职位:自动化测试工程师(java/python)工作职责:1.负责测试报告输出、项目风险评估,对测试结果负责;2.负责对产品进行接口
    发表于 06-28 17:37

    【北京】诚聘自动化测试工程师

    猎头招聘:自动化测试工程师(薪资:25-40 K/月)工作职责:1、负责硬件相关测试效率的提升;2、负责老化测试,长时间可靠性验证及其自动化
    发表于 12-05 16:15

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

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

    自动化测试框架思想和构建

    自动化测试一般是指软件测试自动化,软件测试就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。本文介绍的是
    发表于 07-18 06:52

    七个步骤实现自动化测试

    本文介绍自动化测试的 7 个步骤:改进自动化测试过程,定义需求,验证概念,支持产品的可测试性,具有可延续性的设计( design for s
    发表于 07-18 07:42

    馈线自动化通信系统怎么实现

    馈线自动化是配电网自动化的重要组成部分。要实现馈线自动化,需要合理的配电网结构,具备环网供电的条件;各环网开关、负荷开关和街道配电站内开关的操作机构必须具有远方操作
    发表于 09-17 09:01

    如何对用户界面进行自动化测试

    按键操作)的自动化, 可以实现完全的自动化测试。 如下图所示,界面测试蚂蚁机器人自动控制相机拍摄
    发表于 03-06 19:57

    自动化测试系统问答

    和配置管理,学会在开发工具的同时也学会一些开发和测试自动化流程。而在测试过程中,因为开发的工具不是非常系统,所以可以主要从功能点(按照需求
    发表于 10-12 19:02

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

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

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

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

    测试自动化中的Python

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