Python 自动化测试(四):数据驱动

简介: ![](https://ceshiren.com/uploads/default/original/3X/3/c/3c2661a3dc11a451ebee2ceeb5a4f06e63f20111.jpeg)在实际的测试工作中,通常需要对多组不同的输入数据,进行同样的测试操作步骤,以验证我们的软件质量。这种测试,在功能测试中非常耗费人力物力,但是在自动化中,却比较好实现,只要实现了测试操作步骤,


在实际的测试工作中,通常需要对多组不同的输入数据,进行同样的测试操作步骤,以验证我们的软件质量。这种测试,在功能测试中非常耗费人力物力,但是在自动化中,却比较好实现,只要实现了测试操作步骤,然后将多组测试数据以数据驱动的形式注入,就可以实现了。
前面文章学习了参数化,当数据量非常大的时候,我们可以将数据存放到外部文件中,使用的时候将文件中的数据读取出来,方便测试数据的管理。数据与测试用例分别管理,可以利用外部数据源 YAML、JSON、Excel、CSV 管理测试数据。
YAML 是一种容易阅读、适合表示程序语言的数据结构、可用于不同程序间交换数据、丰富的表达能力和可扩展性、易于使用的语言。通过缩进或符号来表示数据类型。
pyyaml 模块在 Python 中用于处理 YAML 格式数据,主要使用 yaml.safe_dump() 和 yaml.safe_load() 函数将 Python 值和 YAML 格式数据相互转换。工作中常常使用 YAML 格式的文件存储测试数据。
安装
案例
创建用例文件以及数据文件来完成数据驱动的测试案例,创建一个文件夹 testdata,在这个文件夹下创建 data.yml 和 test_yaml.py 文件。
创建 data.yml 文件:
创建“test_yaml.py”,代码如下:
代码分析:
yaml 文件里定义了列表数据,通过 open() 方法获取 data.yml 文件对象,使用 yaml.safe_load() 加载这个文件对象,将 YAML 格式文件转换为 Python 值,分别传到到用例中生成多条用例分别执行。
运行结果:
运行结果中 [1-2] 和 [20-30] 代码传入的两组参数,分别传入 test_foo() 用例方法中执行,并且分别生成两条测试结果。
以上,pytest 组合 YAML 实现数据驱动,YAML 文件作为用例数据源,控制测试用例的执行,使测试用例数据维护更加方便快捷。
【相关阅读】

  • Python 测试开发实战进阶,挑战阿里P6+,年薪50W+!
  • 干货 | 一文搞定 pytest 自动化测试框架(一)
  • 干货 | 一文搞定 pytest 自动化测试框架(二)
  • Python 自动化测试(三): pytest 参数化测试用例构建
  • 干货 | 一文搞定 Linux 常用高频命令
相关文章
|
3天前
|
测试技术 数据库 UED
Python 性能测试进阶之路:JMeter 与 Locust 的强强联合,解锁性能极限
【9月更文挑战第9天】在数字化时代,确保软件系统在高并发场景下的稳定性至关重要。Python 为此提供了丰富的性能测试工具,如 JMeter 和 Locust。JMeter 可模拟复杂请求场景,而 Locust 则能更灵活地模拟真实用户行为。结合两者优势,可全面评估系统性能并优化瓶颈。例如,在电商网站促销期间,通过 JMeter 模拟大量登录请求并用 Locust 模拟用户浏览和购物行为,可有效识别并解决性能问题,从而提升系统稳定性和用户体验。这种组合为性能测试开辟了新道路,助力应对复杂挑战。
14 2
|
2天前
|
数据采集 人工智能 程序员
避坑指南!细说Python自动化办公的5大缺点
Python如今变得愈发流行,不仅程序员,许多非专业人员也开始学习它,主要目的是提高工作效率而非成为专家。然而,Python自动化办公并非完美,存在一些缺点:首先,它仅支持Windows系统,这对Mac用户不太友好;其次,其功能虽强大但不够专业,大多功能一行代码即可完成;再者,代码包体积较大,约200MB;此外,技术门槛较低,难以形成职业优势;最后,相较于专业代码,它的启动速度较慢。即便如此,它依然比人工操作高效得多。如果能接受以上缺点,可参考《50讲·Python自动化办公》教程,快速掌握自动化办公技能。
41 29
|
2天前
|
安全 JavaScript 前端开发
自动化测试的魔法:如何用Python编写你的第一个测试脚本
【8月更文挑战第41天】在软件的世界里,质量是王道。而自动化测试,就像是维护这个王国的骑士,确保我们的软件产品坚不可摧。本文将引导你进入自动化测试的奇妙世界,教你如何使用Python这把强大的魔法杖,编写出能够守护你代码安全的第一道防护咒语。让我们一起开启这场魔法之旅吧!
|
2天前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
【9月更文挑战第10天】随着软件应用的不断扩展,性能测试成为确保系统稳定运行的关键环节。本文通过对比Apache JMeter和Locust,探讨了如何在Python环境中利用这两款工具挖掘更多性能测试潜力。JMeter是一款成熟且功能强大的开源工具,支持多种协议,适用于各种应用的测试;而Locust则基于Python,通过简单脚本模拟HTTP请求,更适合Web应用测试。
8 2
|
4天前
|
消息中间件 监控 测试技术
惊呆了!Python性能测试高手都用这些神器:JMeter+Locust,效率翻倍📈
【9月更文挑战第8天】在软件开发中,性能测试对确保应用稳定性和高效运行至关重要。对于Python开发者而言,选择合适的性能测试工具能显著提升测试效率并精准定位性能瓶颈。本文深入探讨了JMeter和Locust这两款工具的独特优势。JMeter作为跨平台的性能测试工具,支持多种协议,具备高度可定制性和扩展性;而Locust则专为Python应用设计,利用协程实现高并发,提供实时监控和分布式测试功能。两者结合使用,可在实际项目中实现1+1>2的效果,帮助开发者构建全面高效的测试方案,保障应用稳定运行。
25 1
|
5天前
|
运维 监控 API
自动化运维:使用Python脚本进行日常管理
【9月更文挑战第6天】在现代的IT环境中,自动化运维已成为提升效率、减少人为错误的关键。本文将介绍如何通过Python脚本简化日常的运维任务,包括批量配置管理和日志分析。我们将从基础语法讲起,逐步深入到脚本的实际应用,旨在为读者提供一套完整的解决方案,以实现运维工作的自动化和优化。
11 1
|
6天前
|
测试技术 Apache 数据库
从慢如蜗牛到飞一般的感觉!Python性能测试实战,JMeter&Locust助你加速🏃‍♂️
【9月更文挑战第6天】你的Python应用是否曾因响应缓慢而让用户望而却步?借助JMeter与Locust,这一切将迎刃而解。JMeter作为Apache基金会的明星项目,以其强大的跨平台和多协议支持能力,成为性能测试领域的魔法师;而Locust则以Python的简洁与高效,让性能测试更加灵活。通过实战演练,你可以利用这两款工具轻松识别并解决性能瓶颈,优化数据库查询、网络配置等,最终使应用变得敏捷高效,轻松应对高并发挑战。
9 1
|
SQL 关系型数据库 MySQL
Python使用Mysql官方驱动(取出dict类型的数据)
简介 虽然Python有很多连接mysql的库,比如mysqldb, pymysql~这些都很方便,现在就教大家使用mysql的官方库来操作mysql. 安装 windows: 下载链接 选择自己的windows版本和Python版本,下载msi文件后双击安装即可。
|
2天前
|
存储 数据采集 人工智能
探索Python编程之美——从基础到进阶
【9月更文挑战第9天】本文是一篇深入浅出的技术分享文章,旨在引导读者从零基础开始掌握Python编程。我们将通过生动的实例和代码示例,探讨Python的基本语法、数据结构、函数、模块以及面向对象编程等核心概念。无论你是初学者还是有一定经验的开发者,都能在这篇文章中找到有价值的内容。让我们一起开启Python编程之旅吧!
17 11
|
2天前
|
Python
探索Python编程的奥秘:打造你的第一个程序
【9月更文挑战第8天】本文将带你进入Python编程的世界,通过一个有趣的项目——制作一个简单的猜数字游戏,让你快速入门。我们不仅会分享代码编写的步骤,还会讲解每一行代码的含义和作用,确保即使是编程新手也能跟上节奏。文章末尾附有完整代码,方便读者实践和学习。
19 12

热门文章

最新文章