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

本周测试公开课《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. python自动化库_Python自动化测试常用库整理

    基本库: sys 程序和Python解析器的交互 os 启动新进程:操作文件和目录 re 正则表达式,字符串匹配 string 基本字符串操作 inspect 提供自省和反射功能 importlib ...

  2. python ui自动化测试框架_Python自动化测试框架

    Python+unittest+requests+HTMLTestRunner框架 1 目录说明 common:公共文档,存放包含HTMLTestRunner.py,logUtils.py等公用文件 ...

  3. python 接口数据驱动_python接口测试实例--数据驱动(程序与数据分离)

    #encoding=utf-8 import requests import json import os import hashlib import pickle from conf import ...

  4. python可变参数_Python 的四种共享传参详解

    点击上方"Python数据之道",选择"星标公众号" 精品文章,第一时间送达 作者 | 杨仁聪 编辑 | Lemon 出品 | Python数据之道 本文来自公 ...

  5. python统计词频_Python统计四六级考试的词频

    Python统计四六级考试的词频 此文首发于公众号 「Python知识圈」, 欢迎直接去公众号查看 阅读文本大概需要 4.6 分钟. 今天是教师节,先祝天下所有老师教师节快乐,感谢您在我学生时代对我的 ...

  6. python数据结构 树_python 数据结构四 之 二叉树和树

    python数据结构教程第四课 树形结构是复杂结构中最简单的一类,这是一类非常重要的结构,在实际中使用广泛,反映了许多计算过程的抽象结构 一.简介 1.树 2.二叉树 二.二叉树和树的抽象数据类型(A ...

  7. python四级考试_Python统计四六级考试的词频

    现在是开学之初,风华正茂的青年才俊们应该已经在图书馆占好了座位,开始备战 6/12 月份的英语四六级考试了吧!想当年,pk 哥四级考试前也在图书馆待了一阵子,后来四级考了 450 分惊险过关,六级考试 ...

  8. 【python数据驱动+接口自动化测试】pytest+allure+yaml+jenkins+git(gitlab/gitee)下的接口自动化测试实战

    大家好,我是好学的小师弟.今天和大家分享下我前段时间的工作学习心得-接口自动化测试及其全套工作流程. 注:本文的侧重点在于工作流程,代码讲解.工具安装步骤方面可能就浅尝辄止了. 目录 前言: 工作流程 ...

  9. python数据驱动读取用例_Python Selenium 之数据驱动测试

    数据驱动模式的测试好处相比普通模式的测试就显而易见了吧!使用数据驱动的模式,可以根据业务分解测试数据,只需定义变量,使用外部或者自定义的数据使其参数化,从而避免了使用之前测试脚本中固定的数据.可以将测 ...

最新文章

  1. 从60多场技术面试中,我总结了这份面试经验
  2. 湖南中医药大学计算机刘伟老师,喜讯 | 湖南中医药大学在全省高校教师课堂教学竞赛中喜获佳绩...
  3. eeglab教程系列(5)-预处理工具
  4. html求和按钮,使用模板标记在html模板中求和
  5. c语言乘法口诀倒三角,乘法口诀表,C语言实现
  6. Jquery ValidateEngine表单验证
  7. 无盘 服务器 聚合,四网卡汇聚技术详解(为windows7无盘铺路)
  8. 机器人 瓷砖墙面清洗_墙壁清洁机器人解析
  9. OpenJudge NOI 1.2 05:填空:类型转换2
  10. JavaScript 变量及数据类型
  11. BZOJ4196 NOI2015 软件包管理器
  12. 387. First Unique Character in a String - String
  13. 【Windows】win10电脑Miracast投屏到电视
  14. matlab自回归模型AIC,时间序列笔记-自回归模型(二)
  15. linux敏感内容检测工具,认识Linux平台四大IDS***检测工具
  16. php 中国时间转换美国时间差,美国中国时差换算(世界时间换算器在线)
  17. iOS开发--微信和支付宝网页支付(过审, 支付宝支付成功可回跳)
  18. C++调用ffmpeg批量合并bilibili缓存视频
  19. OpenCV入门笔记-更新篇
  20. 双目视觉定位方案设计

热门文章

  1. php使用strstr函数 ,判断字符串A中是否含有字符串B
  2. LeetCode 55. 跳跃游戏 中等难度
  3. C++程序设计之使用istringstream
  4. (一)为什么你应该(从现在开始就)写博客
  5. WaitForSingleObject的用法举例
  6. qt 二维数组初始化_第十九章、C语言学习之数组3
  7. android java设置颜色_java – 设置背景颜色:Android
  8. 090_块元素行内元素行内块元素空元素
  9. Unity5x编辑器的视图一
  10. 计算机的c盘是硬盘吗,c盘是硬盘吗