一文带你掌握yaml文件的使用

以你之姓@ 2024-03-22 13:53 141阅读 0赞

在自动化测试数据存储中,比较常见的有csv、json、excel文件等,可能大家忽略了另外一个非常简单、好用的,而且更简洁的文件,那就是咱们今天的主角yaml文件。

yaml文件是一种数据序列化语言,其良好的跨语言、跨平台、易于理解、格式简单而广泛应用于配置文件、数据文件、日志文件等,因为采用了缩进方式表示层级关系,在python语言中使用就显得更加亲切。

Yaml文件特点

有人这么对比json和yaml,它们就像是两个漂亮的小姐姐,只是yaml的裙子更短些。

yaml数据虽然简洁,但也要遵循一些规则:

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进时不允许使用Tab键,只允许使用空格
  • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
  • 使用#进行注释,从这个字符一直到行尾,都会被解析器忽略

Yaml文件的组成

我们把行政区域划分作为案例,使用超级记事本创建一个文本文件,并重命名为yaml格式,编码集改为UTF-8格式,实现如下:

图片

从上图中可以看出,一个yaml文件的组成包括三部分:

对象:可以理解为python的字典,是以键值对形式出现的,如上图中的【行政中心: 北京】就是一组对象,注意冒号后需要有一个空格。

数组:可以理解为python的列表,是以-开头来标记(短杠后也要有一个空格),上图中的济宁、济南、青岛和菏泽就是隶属山东的四个元素,他们就是一个数组结构。

标量:对应到 Python 的字符串、整数、浮点数等基本数据类型,可以通过下面的案例理解。

图片

Python操作Yaml文件

1、安装ruamel.yaml

ruamel.yaml是pyyaml的衍生版,可以支持YAML类型文件最新版本,安装命令:

  1. pip install ruamel.yaml

图片

2、python中读取yaml文件

其实就是将yaml格式的数据转化为python中的数据类型(字典、列表及基本类型)的过程。

以读取上文中area.yaml文件中数据为例:

  1. from ruamel.yaml import YAML
  2. import pprint # 美化输出数据
  3. yaml = YAML(typ='safe')
  4. with open(r'e:\area.yaml',“r“,encoding='utf-8') as file:
  5. data = yaml.load(file)
  6. pprint.pprint(data)

输出结果为:

图片

3、python输出数据到yaml文件

其实是将python中的字典、列表等数据类型写入yaml格式文件中。

  1. from ruamel.yaml import YAML
  2. import pprint
  3. area = {'山东': [{'济宁': ['邹城', '兖州', '曲阜', '泗水']},
  4. {'济南': ['历下区', '莱城区', '高新区']},
  5. '青岛',
  6. '菏泽'],
  7. '河北': ['石家庄', '廊坊', '张家口', '唐山'],
  8. '直辖市': {'经济中心': '深圳', '行政中心': '北京', '金融中心': '上海'}}
  9. yaml = YAML(typ='safe')
  10. with open(r'e:\area1.yaml','w', encoding='utf-8') as file:
  11. yaml.dump(area,file)

输出结果为:

图片

总结

yaml文件数据相比json文件更加简洁,读取效率也更高,使用yaml文件存储序列化数据并进行数据驱动,会大幅提高自动化执行的效率。、

学习更多自动化测试技术、技巧,欢迎关注公众号伤心的辣条》,一定能为你的职业生涯添砖加瓦。

最后: 为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】
在这里插入图片描述

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

全套资料获取方式:

在这里插入图片描述
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,141人围观)

还没有评论,来说两句吧...

相关阅读