跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python

Python YAML 模块实战:接口测试参数存储与配置

YAML 是一种人类可读的数据序列化语言,常用于接口测试配置管理。演示了 Python 中 PyYAML 库的安装与核心操作,包括文件读写、清空及安全加载方法。通过实际代码示例,展示了如何处理路径拼接、编码格式及字典结构,确保配置数据的准确存储与读取,避免常见安全风险。

灵魂伴侣发布于 2026/3/20更新于 2026/7/2532 浏览
Python YAML 模块实战:接口测试参数存储与配置

YAML 介绍

YAML 是一种数据序列化语言,旨在以人类可读的形式存储信息。它最初代表 Yet Another Markup Language,后来改为 YAML Ain't Markup Language(YAML 不是一种标记语言),以此区别于传统标记语言。

核心特点

  • 简洁易读:语法简洁,减少了 JSON、XML 中大量的引号、括号等格式噪音;
  • 非编程语言:主要用于存储配置信息,不具备编程逻辑;
  • 缩进敏感:缩进规则类似 Python,通过缩进来表示层级关系;
  • 区分大小写:对键名、值的大小写严格区分;
  • 禁用 Tab 键:不允许使用制表符缩进,需通过空格实现(部分编辑器可配置 Tab 自动转为空格)。

支持的数据类型及语法对比

YAML 文件后缀名为 .yaml 或 .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
{"list_key": ["item1", "item2"]}
映射(字典)map_key:
sub_key1: sub_value1
{"map_key": {"sub_key1": "sub_value1"}}

语法辅助工具

若对 YAML 语法不熟悉,可使用在线转换工具快速生成,但生成后务必二次检查格式正确性。

Python 环境下的使用

在 Python 中使用 YAML 需借助 PyYAML 库,主要用于读取、写入、清空 YAML 配置文件,适用于接口自动化测试中的参数存储、配置管理等场景。

安装 PyYAML 库

pip install PyYAML

安装后可通过 pip list 查看是否安装成功。

核心操作(读取、写入、清空)

追加写入 YAML 文件

向指定 YAML 文件追加数据(若文件不存在则自动创建)。这里需要注意文件路径的处理,示例默认将文件放在项目根目录的 data 文件夹下。

import yaml
import os

 ():
    
    file_path = os.getcwd() +  + filename
    
     (file_path, encoding=, mode=)  f:
        
        yaml.safe_dump(data, stream=f, allow_unicode=)
def
write_yaml
filename, data
# 拼接文件路径
"/data/"
# 以追加模式打开文件,指定编码为 utf-8
with
open
"utf-8"
"a+"
as
# 安全写入数据,支持 Unicode 字符
True
读取 YAML 文件数据

根据指定键读取 YAML 文件中的对应值。加载时建议使用 safe_load 以确保安全性。

import yaml
import os

def read_yaml(filename, key):
    file_path = os.getcwd() + "/data/" + filename
    with open(file_path, encoding="utf-8", mode="r") as f:
        # 安全加载 YAML 数据
        data = yaml.safe_load(f)
        # 返回指定键对应的值
        return data[key]
清空 YAML 文件

清空指定 YAML 文件中的所有内容,通常用于重置测试数据。

import os

def clear_yaml(filename):
    file_path = os.getcwd() + "/data/" + filename
    with open(file_path, encoding="utf-8", mode="w") as f:
        # 清空文件内容
        f.truncate()

完整使用示例

下面是一个整合了写入、读取和清空功能的测试脚本,可以直接运行验证效果。

import yaml
import os

# 追加写入
def write_yaml(filename, data):
    file_path = os.getcwd() + "/data/" + filename
    with open(file_path, encoding="utf-8", mode="a+") as f:
        yaml.safe_dump(data, stream=f, allow_unicode=True)

# 读取
def read_yaml(filename, key):
    file_path = os.getcwd() + "/data/" + filename
    with open(file_path, encoding="utf-8", mode="r") as f:
        data = yaml.safe_load(f)
        return data[key]

# 清空
def clear_yaml(filename):
    file_path = os.getcwd() + "/data/" + filename
    with open(file_path, encoding="utf-8", mode="w") as f:
        f.truncate()

# 测试函数
def test_yml():
    # 1. 写入 YAML 文件(数据为字典类型)
    data = {"str": "12345", "user": "zhangsan", "password": "123456"}
    write_yaml('test.yml', data)

    # 2. 读取 YAML 文件中 "str" 键对应的值
    ret = read_yaml('test.yml', "str")
    print("读取结果:", ret)  # 输出:读取结果:12345

    # 3. 清空 YAML 文件
    clear_yaml('test.yml')

if __name__ == "__main__":
    test_yml()

关键说明

  • 安全写入:推荐使用 yaml.safe_dump(),避免执行恶意代码,而非 yaml.dump();
  • 安全加载:同样推荐 yaml.safe_load(),防范潜在的安全风险,避免使用 yaml.load();
  • 文件路径:示例中默认将 YAML 文件放在项目根目录的 data 文件夹下,需确保该文件夹已创建,否则会抛出文件不存在异常;
  • 编码格式:指定 encoding="utf-8" 以避免中文等特殊字符出现乱码。

目录

  1. YAML 介绍
  2. 核心特点
  3. 支持的数据类型及语法对比
  4. 语法辅助工具
  5. Python 环境下的使用
  6. 安装 PyYAML 库
  7. 核心操作(读取、写入、清空)
  8. 追加写入 YAML 文件
  9. 读取 YAML 文件数据
  10. 清空 YAML 文件
  11. 完整使用示例
  12. 追加写入
  13. 读取
  14. 清空
  15. 测试函数
  16. 关键说明
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Spring Web MVC 从入门到实战
  • 支持国内股票分析的 AI 开源项目精选与实战指南
  • Python 函数、列表与元组核心用法及实战
  • 闲置 Mac Mini 部署 OpenClaw 实现金融 AI 分析助手
  • 新版 VS Code 禁用 Ctrl+I 快捷键调用的 Copilot AI 对话框
  • Python 中 NumPy 库的基础使用详解
  • 深度学习实战:卷积神经网络(CNN)原理与 LeNet-5 搭建
  • Web.xml 中 Listener、Filter、Servlet 加载顺序详解
  • 大模型产品经理转型指南:核心技能与职业发展路径
  • Git Push 失败?配置 SSH Key 实现代码推送
  • 使用 AI 智能体辅助完成 C 语言与前端实训项目
  • jQuery 系列教程 8:插件生态与最佳实践
  • Pico 4XVR 1.10.13 安装包下载与安装教程
  • Flutter BIP340 适配鸿蒙 HarmonyOS 实战:Schnorr 签名应用
  • 国产时序数据库云原生实践:Apache IoTDB 与 TimechoDB 深度应用
  • MySQL 数据库身份鉴别与安全配置指南
  • SpringBoot 整合 DL4J 构建智能写作助手
  • CentOS 系统定时执行 Python 邮件发送的五种方案
  • OpenClaw 龙虾机器人本地部署技术指南
  • 前端代码可读性优化:让代码更易维护与协作

相关免费在线工具

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online