博客
关于我
Pytest数据驱动怎么玩?实战教程来了!
阅读量:798 次
发布时间:2023-03-05

本文共 1737 字,大约阅读时间需要 5 分钟。

数据驱动测试:从 YAML 到 CSV 再到 JSON

在自动化测试中,数据驱动测试是一种强大的技术,它通过动态加载测试数据,减少了手动配置的工作量,提高了测试效率。本文将详细介绍数据驱动测试的几种常用格式,包括 YAML、CSV 和 JSON,以及如何在实际项目中使用这些格式。


数据驱动 YAML

YAML 简介

YAML(YAML Ain't Markup Language,扩展标记语言)是一种基于键值对的数据序列化格式,广泛应用于配置文件和数据交换中。它具有良好的可读性和可编辑性,且易于与脚本语言集成。

YAML 的基本语法

  • 大小写敏感:YAML 的键和值是大小写敏感的。
  • 缩进表示层级:缩进(用空格实现)用于表示数据结构的层级。
  • 注释# 表示注释,后面的内容会被忽略。
  • 纯文本:YAML 文件通常保存为纯文本文件,适合人工编辑和机器解析。
  • YAML 的数据格式

  • 对象(字典):键值对的集合,例如:
    key: value
  • 数组(列表):一组按顺序排列的值,例如:
    - item1- item2
  • 纯量:单独的不可再分的值,例如:
    value: 123
  • 字符串:单个字符串值,例如:
    str: "hello world"
  • 布尔值、整数、浮点数:这些类型直接在 YAML 中表示。
  • Null:表示缺失值,例如:
    null: true
  • 安装与使用

  • 安装工具:可以使用 pyyaml 库来读取和解析 YAML 文件。
  • 数据文件结构:通常包括以下几个部分:
    • datas:存储测试数据的目录。
    • func:存储测试函数的目录。
    • testcases:存储测试用例的目录。
  • 读取方法
    import yamldata = yaml.safe_load(file_path)

  • 数据驱动 CSV

    CSV 简介

    CSV(Comma-Separated Values,逗号分隔值)是一种简单的文件格式,通常用于存储表格数据。每行对应一条记录,每列由逗号分隔。

    CSV 的特点

  • 格式:以纯文本形式存储数字和文本。
  • 记录:文件由多个记录组成,每行记录由多个字段组成。
  • 兼容性:支持多种应用程序和语言解析 CSV 文件。
  • 读取 CSV

  • 导入库:使用 Python 的 csv 模块。
  • 读取方法
    import csvwith open('file.csv', 'r') as file:    reader = csv.reader(file)    for row in reader:        print(row)
  • 项目示例

  • 文件结构

    test_data/├── case1.csv└── case2.csv
  • 内容示例(case1.csv):

    name,ageAlice,30Bob,25
  • 读取结果

    • name: Alice
    • age: 30

  • 数据驱动 JSON

    JSON 格式

    JSON(JavaScript Object Notation,JSON 对象表示法)是一种轻量级的数据交换格式,广泛应用于前后端通信。它以键值对的形式存储数据,支持嵌套和数组。

    JSON 的特点

  • 结构化数据:键值对的存储方式,便于数据的组织和查询。
  • 可读性:与 YAML 类似,JSON 文件易于人类阅读和编辑。
  • 解析支持:几乎所有现代编程语言都支持 JSON 的解析和生成。
  • 读取 JSON

  • 安装工具:使用 Python 的 json 模块。
  • 读取方法
    import jsondata = json.loads(json_file)
  • 项目示例

  • 文件结构

    project/└── config.json
  • 内容示例(config.json):

    {"name": "测试项目","version": "1.0","environment": "dev"}
  • 读取结果

    • name: 测试项目
    • version: 1.0
    • environment: dev

  • 总结

    在数据驱动测试中,YAML、CSV 和 JSON 是三种常用的数据格式,它们各有优缺点,适用于不同的场景。选择哪种格式取决于项目的具体需求,包括数据量、复杂度和工具支持。在实际项目中,可以根据需求选择合适的数据驱动方式,充分发挥自动化测试的优势。

    转载地址:http://gjafk.baihongyu.com/

    你可能感兴趣的文章
    pycharm中windows找不到chrome解决办法
    查看>>
    Pycharm中基于Ollama和Proxy AI使用本地算力进行AI辅助编程
    查看>>
    Pycharm中配置项目的打开方式(This Window,New Window)
    查看>>
    PyCharm为什么这么牛?
    查看>>
    Pycharm出现 Cannot find declaration to go to 解决方法(全)
    查看>>
    pycharm出现Can‘t get remote credentials for deployment server 的解决方法
    查看>>
    pycharm可视化数据库
    查看>>
    pytorch 中的 #@save的意思
    查看>>
    Pycharm如何取消自动换行
    查看>>
    PyCharm安装及使用说明
    查看>>
    pycharm导入自己写的模块时,模块下方出现红色波浪线的解决方案
    查看>>
    Pycharm常用快捷键大全
    查看>>
    PyCharm快捷键
    查看>>
    Pycharm快捷键记录
    查看>>
    pycharm怎么支持WPS?
    查看>>
    pycharm打印不全问题
    查看>>
    pycharm提示This inspection detects instance attribute definition outside __init__ method
    查看>>
    pycharm搭建spark环境
    查看>>
    pycharm无法导入本地模块问题
    查看>>
    PyTorch — 初学者教程
    查看>>