在利用pytest
进行自动化测试时,会将测试用例写入yaml
文件中,前面也做了一些应用,不过大都是根据别人的例子仿照着写,今天就来简单学习一下关于它的一些皮毛吧~
简介
因为其格式以及语法清晰简单,非常适合表达数据结构清晰的信息,例如成为配置文件或者是测试用例数据文件。
特点
- 大小写敏感
- 以空格代表层级,不可以用
tab
- 相同层级空格数相同,即居左对齐
- 以
#
号代表注释本行
数据类型
支持三种数据类型
- 对象:即字典
- 数组:即列表
- 纯量:单个不可再分的值
对象表示方法
注意key值的冒号后面要加空格;
注意字符串前后不需要加引号,但如果字符串包含有特殊字符比如冒号,则需用引号将整个字符串进行标注。
case: 正常输入姓名
body: '内容:无'
python
读取后为{'case':'正常输入姓名','body':'内容:无'}
数组表示方法
以-
开始的层级相同的行,代表一个数组,-
后面同样需要有一个空格。
- a
- b
- c
python
读取后为['a','b','c']
纯量表示方法
包括字符串、浮点数、布尔值、null
、整数、时间、日期。
-
null
用~
来表示
name: ~
python
读取后为{'name': None}
- 日期必须使用ISO 8601格式,即yyyy-MM-dd
- 时间使用ISO 8601格式,时间和日期之间使用T连接,最后使用+代表时区,例 2021-09-01T19:00:00+08:00
python中进行yaml读取
在同一个yaml
文件中,用---
来分段,代表不同的文档。
如果没有分段,则在读取yaml文件时,直接利用yaml.safe_load()
。
with open(data_path,mode='r', encoding='utf-8') as f:
data=yaml.safe_load(f)
如果yaml
文件中有分段,则需要利用yaml.safe_load_all()
及for
循环进行输出。
with open(data_path,mode='r', encoding='utf-8') as f:
data=yaml.safe_load(f)
data=yaml.safe_load_all(f)
for u in data:
print(u)
自我记录,有错误欢迎指正~
网友评论