Python YAML 模块实战:接口测试参数存储与配置管理
YAML 是一种人类可读的数据序列化语言,常用于以简洁的形式存储配置信息。在接口自动化测试中,它常被用来管理测试用例参数、环境配置等数据。相比 JSON,YAML 去除了大量引号和括号,通过缩进表达层级,阅读起来更直观。
YAML 核心特点与语法对比
YAML 文件通常使用 .yaml 或 .yml 后缀。它的语法对缩进非常敏感(类似 Python),且区分大小写。以下是它与 JSON 的主要区别:
| 数据类型 | YAML 语法示例 | JSON 语法示例 |
|---|---|---|
| 简单标量值 | key: value | {"key": "value"} |
| 列表 | list_key:\n- item1\n- item2 | {"list_key": ["item1", "item2"]} |
| 映射(字典) | map_key:\n sub_key: sub_value | {"map_key": {"sub_key": "sub_value"}} |
在实际编写时,如果不确定格式是否正确,可以借助在线转换工具辅助生成,但务必二次检查缩进和特殊字符。
Python 环境下的 PyYAML 操作
在 Python 中处理 YAML 需要安装 PyYAML 库。该库提供了安全的加载和转储方法,非常适合用于读写配置文件。
1. 安装依赖
pip install PyYAML
安装完成后,可通过 pip list 确认是否成功。
2. 核心功能实现
我们通常关注三个操作:追加写入、读取指定键、清空文件内容。下面是一个封装好的工具类逻辑,可以直接集成到测试框架中。
2.1 安全写入数据
向 YAML 文件追加数据时,推荐使用 safe_dump。这能防止恶意代码执行风险。注意,如果目标文件夹不存在,需要先确保目录已创建,否则程序会报错。
import yaml
import os
def write_yaml(filename, data):
# 拼接文件路径,默认在项目根目录的 data 文件夹下
file_path = os.getcwd() + "/data/" + filename
# 以追加模式打开文件,指定编码为 utf-8
with open(file_path, encoding="utf-8", mode="a+") as f:
yaml.safe_dump(data, stream=f, allow_unicode=)


