Python自动化测试中yaml文件读取操作

Ruby
Ruby
发布时间:2026-10-14| 6人浏览过
原创

本文详细介绍在Python自动化测试中如何使用PyYAML库读取配置文件。内容涵盖YAML基础语法、缩进规则、注释写法,以及通过open和load方法将YAML文件转换为Python字典或列表对象的具体代码示例,帮助测试人员高效管理测试数据。

YAML简介与安装

YAML(Yet Another Markup Language)是一种轻量级的标记语言。

  • 它专为编写配置文件而设计,具有简洁直观和强大的特点。
  • 其格式比JSON更直观,使用上也更为便捷。
  • 典型的YAML文件扩展名为.test.yaml。

在Python环境中使用YAML前,需先安装相关库。


pip install pyyaml

YAML基本语法规范

掌握YAML的基本语法规则是正确解析文件的前提。

  • YAML对大小写敏感,需注意键名的大小写一致性。
  • 层级关系通过缩进来表示,而非括号或标签。
  • 缩进时严禁使用Tab键,必须使用空格进行缩进。
  • 缩进的空格数量没有严格限制,只要同一层级的元素左侧对齐即可。
  • 使用#符号表示注释,从#到行尾的内容会被解析器忽略,这与Python的注释规则一致。

字典与列表的读取示例

YAML支持键值对结构,类似于Python中的字典(dict)。

一个基础的YAML文件示例如下所示。


user: admin
pwd: 123456

在Python中读取YAML文件的步骤如下:首先使用open方法读取文件内容,然后通过load方法将其转换为Python可操作的对象。这里的load函数与JSON库中的load功能相似。


#! /usr/bin/python3
# -*- coding:utf-8 -*-

# @Time : 2020/8/17 9:23
# @Author : 码上开始

import yaml

# 定义yaml文件路径
yaml_path = "E:\\study\\date.yaml"
# 打开yaml文件
file = open(yaml_path, "r", encoding="utf-8")
# 读取
string = file.read()
dict = yaml.load(string)
# 转换后数据类型为:dict
print(type(dict))
print(dict)
# 运行结果:
{'usr': 'admin', 'pwd': 123456}

YAML也支持序列(list)结构,用于表示有序的数据集合。

在YAML文件中定义数组时,需在每个元素前添加短横线‘-'符号。


- admin1
- admin2
- admin3

#! /usr/bin/python3
# -*- coding:utf-8 -*-

# @FileName: day6.py
# @Time : 2020/8/17 9:23
# @Author : 码上开始

import yaml

# 定义文件路径
yaml_path = "E:\\study\\date.yaml"
file = open(yaml_path, "r", encoding="utf-8")
string = file.read()
print(string)
# 转换后数据类型为列表
list = yaml.load(string, Loader=yaml.FullLoader)
print(list)
# 运行结果
<class 'list'>
['admin1', 'admin2', 'admin3']

纯量类型与混合结构应用

YAML支持纯量(str)类型,包括布尔值、整数、浮点数和空值。


# 布尔值true/false
n: true
# int
n1: 12
# float
n2: 12.3
# None
n3: ~

例如,{'n': True, 'n1': 12, 'n2': 12.3, 'n3': None}展示了不同类型的纯量值。

YAML允许混合使用字典和列表结构,以构建更复杂的数据配置。


- usr:
 name: admin
 pwd: 123456

- mail:
 user: xxx@qq.com
 pwd: 123456

运行上述混合结构示例的输出结果为:[{'usr': {'name': 'admin', 'pwd': 123456}}, {'mail': {'user': 'xxx@qq.com', 'pwd': 123456}}]。

测试实践与总结

练习建议:1. 熟悉上述基本语法和读取方法;2. 尝试将这些方法应用到实际的自动化测试代码中。

至此,关于Python自动化测试中YAML文件读取操作的介绍已完成。如需了解更多相关内容,可搜索本站往期文章或继续浏览后续文章,感谢支持!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。