Python YAML 模块实战:接口测试参数存储与配置
YAML 简介
YAML 是一种数据序列化语言,旨在以人类可读的形式存储信息。它最初代表 "Yet Another Markup Language",后来改为 "YAML Ain't Markup Language"(YAML 不是一种标记语言),以此区别于传统的标记语言。
核心特点
- 简洁易读:语法简洁,减少了 JSON、XML 中大量的引号、括号等格式噪音;
- 非编程语言:主要用于存储配置信息,不具备编程逻辑;
- 缩进敏感:缩进规则类似 Python,通过缩进来表示层级关系;
- 区分大小写:对键名、值的大小写严格区分;
- 禁用 Tab 键:不允许使用制表符缩进,需通过空格实现(部分编辑器可配置 Tab 自动转为空格)。
支持的数据类型及语法对比(与 JSON)
YAML 文件后缀名为 .yaml 或 .yml(常用 .yml),支持多种数据类型。其语法与 JSON 的对比如下:
| 数据类型 | YAML 语法 | JSON 语法 |
|---|---|---|
| 简单标量值 | key: value | {"key": "value"} |
| 整数和浮点数 | int_key: 123 float_key: 123.456 | {"int_key": 123, "float_key": 123.456} |
| 布尔值 | bool_key: true | {"bool_key": true} |
| 字符串 | string_key: "This is a string" | {"string_key": "This is a string"} |
| 列表 | list_key: - item1 - item2 - item3 | {"list_key": ["item1", "item2", "item3"]} |
| 映射(字典) | map_key: sub_key1: sub_value1 sub_key2: sub_value2 | {"map_key": {"sub_key1": "sub_value1", "sub_key2": "sub_value2"}} |
| 嵌套结构 | nested_key: list_key: - item1 - item2 map_key: sub_key1: sub_value1 sub_key2: sub_value2 | {"nested_key": {"list_key": ["item1", "item2"], "map_key": {"sub_key1": "sub_value1", "sub_key2": "sub_value2"}}} |
语法辅助工具
若对 YAML 语法不熟悉,可使用在线转换工具快速生成,生成后建议二次检查格式正确性。
工具地址:https://www.jashtool.com/json/to-yaml
Python 环境下的使用
在 Python 中使用 YAML 需借助 库,主要用于读取、写入、清空 YAML 配置文件,适用于接口自动化测试中的参数存储、配置管理等场景。


