本周测试公开课《Pytest 自动化测试最佳实践:实用特性与进阶技巧》!

在实际的测试工作中,通常需要对多组不同的输入数据,进行同样的测试操作步骤,以验证我们的软件质量。这种测试,在功能测试中非常耗费人力物力,但是在自动化中,却比较好实现,只要实现了测试操作步骤,然后将多组测试数据以数据驱动的形式注入,就可以实现了。

前面文章学习了参数化,当数据量非常大的时候,我们可以将数据存放到外部文件中,使用的时候将文件中的数据读取出来,方便测试数据的管理。数据与测试用例分别管理,可以利用外部数据源 YAML、JSON、Excel、CSV 管理测试数据。

pytest 结合 YAML

YAML 是一种容易阅读、适合表示程序语言的数据结构、可用于不同程序间交换数据、丰富的表达能力和可扩展性、易于使用的语言。通过缩进或符号来表示数据类型。

pyyaml 模块在 Python 中用于处理 YAML 格式数据,主要使用 yaml.safe_dump() 和 yaml.safe_load() 函数将 Python 值和 YAML 格式数据相互转换。工作中常常使用 YAML 格式的文件存储测试数据。

安装

pip install PyYAML

案例

创建用例文件以及数据文件来完成数据驱动的测试案例,创建一个文件夹 testdata,在这个文件夹下创建 data.yml 和 test_yaml.py 文件。

创建 data.yml 文件:

-  - 1  - 2-  - 20  - 30

创建“test_yaml.py”,代码如下:

import pytestimport yaml@pytest.mark.parametrize("a,b", yaml.safe_load(open("datas.yml",encoding='utf-8')))def test_foo(a,b):    print(f"a + b = {a + b}")

代码分析

yaml 文件里定义了列表数据,通过 open() 方法获取 data.yml 文件对象,使用 yaml.safe_load() 加载这个文件对象,将 YAML 格式文件转换为 Python 值,分别传到到用例中生成多条用例分别执行。

运行结果

省略...test_params.py::test_foo[1-2] test_params.py::test_foo[20-30] 省略...

运行结果中 [1-2] 和 [20-30] 代码传入的两组参数,分别传入 test_foo() 用例方法中执行,并且分别生成两条测试结果。

以上,pytest 组合 YAML 实现数据驱动,YAML 文件作为用例数据源,控制测试用例的执行,使测试用例数据维护更加方便快捷。

(文章来源于霍格沃兹测试学院)

大智慧数据文件python_Python 自动化测试(四):数据驱动相关推荐

  1. excel 两组数据交点_Python 自动化测试(四):数据驱动

    本周测试公开课<Pytest 自动化测试最佳实践:实用特性与进阶技巧>! 在实际的测试工作中,通常需要对多组不同的输入数据,进行同样的测试操作步骤,以验证我们的软件质量.这种测试,在功能测 ...

  2. 大智慧数据文件python_马克的Python学习笔记#模块和包 3

    让目录或者zip文件成为可以运行的脚本 我们的程序已经从一个简单的脚本进化为一个涉及多个文件的应用.我们希望能有某种简单的方式来让用户运行这个程序 如果应用程序已经进化为由多个文件组成的"庞 ...

  3. python自动化测试数据驱动_Python 自动化测试(四):数据驱动

    Python 自动化测试(四):数据驱动 本周测试公开课<Pytest 自动化测试最佳实践:实用特性与进阶技巧>! 在实际的测试工作中,通常需要对多组不同的输入数据,进行同样的测试操作步骤 ...

  4. C语言之文件读写探究(四):fwrite、fread(一次读写一块数据(二进制操作))

    相关博文:C语言之文件读写探究(一):fopen.fclose(文件的打开和关闭) 相关博文:C语言之文件读写探究(二):fputc.fgetc.feof(一次读写一个字符(文本操作)) 相关博文:C ...

  5. 高级性能测试系列《17. DDT数据驱动性能测试:csv数据文件设置。 》

    目录 一.jmeter元件执行顺序 二.DDT数据驱动性能测试 (一) 1.准备测试数据 2.csv数据文件设置 3.注意事项 4.编码 5.相对路径 三.提示 一.jmeter元件执行顺序 jmet ...

  6. 【转】Postman系列四:Postman接口请求设置环境变量和全局变量、测试沙箱和测试断言、测试集运行与导入数据文件

    一:Postman中接口请求设置环境变量和全局变量 全局变量和环境变量可以通过Pre-request Script和Tests设置,会在下面测试沙箱和测试断言中讲到. 全局变量的设置:官网参考http ...

  7. Oracle 学习笔记(四) Oracle表空间和数据文件

    tablespace是oracle的逻辑结构,datafile是oracle的物理结构. tablespace由datafile组成. tablespace 分为: permanent tablesp ...

  8. Python四种读取数据文件的方法

    下面介绍读取数据文件的方法: 首先说明下数据文件的格式 第一行为列名,第一列为编号 第一种:手写读取数据 f = file(路径名)x = []y = []for i, d in enumerate( ...

  9. 自动化测试和数据驱动之间的关系,十分钟带你弄清楚

    软件测试是对项目研发过程的产物(文档,代码等)进行审查,保障产品质量的过程.我们可以通过手工测试,自动化测试,工具扫描等方法完成这个任务.其中,自动化测试是当前重要的一种测试方法,具有响应速度快.稳定 ...

最新文章

  1. javascript检测浏览器精简版
  2. ASCII码对应表,ASCII码值的大小顺序
  3. 李刚java视频_《Srping视频教程》疯狂Java 李刚老师[WMV]
  4. 智能优化算法之蚁群算法(1)
  5. Android开发精要2--Android组件模型解析
  6. 关于fi dd ler 手机抓包 网卡地址地址_实测对比Wireshark利用nRF52832抓包和Packet Sniffer抓包体验...
  7. boost::contract模块实现virtual private protected的测试程序
  8. python实际应用方面的材料_python应用于哪些方面
  9. 全员学习低代码,一汽大众领跑数智化转型背后的秘密
  10. linux kvm查看线程状态,kvm线程-005-线程状态-THREAD_JUST_BORN
  11. python猜词游戏源代码_Python趣味小游戏编写教学
  12. 寻找设计独特标识LOGO的灵感?可编辑模板帮你轻松解决!
  13. 梅州市2021普通高考成绩查询,梅州高考成绩查询入口
  14. 在xp3下,Apache , PHP, Zend Studio怎样配置环境?
  15. 利用IV分析仪测量二极管的伏安特性
  16. PKPM学习:关于“悬空柱”的问题
  17. wed标准的基础知识
  18. 阿里云数据库(RDS)是什么,与传统数据库有什么区别?
  19. Vuepress-theme-reco 构建博客上传GitHub可以访问,无法正常显示。
  20. C++GUI之wxWidgets(12)-编写应用涉及的类和方法(7)-事件处理(6)

热门文章

  1. 自建分布式存储新选择,性能是Ceph的1.84倍
  2. Linux 下 4 种实时监控日志文件的方法,总有一种适合你
  3. 使用Redis实现在线点赞系统
  4. onnx.onnx_cpp2py_export.checker.ValidationError
  5. pytorch 图像与tensor转换
  6. hi3559a100解码
  7. ubuntu websocket python2
  8. python对应位置相乘
  9. 小样本学习 few-shot learning
  10. win10不能访问局域网共享