【GUI自动化测试】YAML 配置文件应用:从语法解析到 Python 读写
文章目录
- 一、关于窗口
- 二、YAML介绍
- 2.1 菜单介绍
- 🚩总结
一、关于窗口
官⽅⽂档:https://pyyaml.org/wiki/PyYAMLDocumentation
YAML是⼀种数据序列化语⾔,⽤于以⼈类可读的形式存储信息。它最初代表“YetAnotherMarkup Language”,但后来更改为“YAMLAin’tMarkupLanguage”(YAML不是⼀种标记语⾔),以区别于真正的标记语⾔。
它类似于XML和JSON⽂件,但使⽤更简洁的语法。
特点:
YAML是一种非常简单的基于文本的人类可读的语言,用于在人和计算机之间交换数据。
YAML是不是一种编程语言。它主要用于存储配置信息。
YAML的缩进就像 Python的缩进一样优雅。
YAML还减少了JSON和XML文件中的大部分“噪音”格式,例如引号、方括号和大括号。
注意:
- YAML是区分大小写。
- YAML 不允许使用制表符Tab键,(你之所按下Tab YAML仍能使用,是因为编辑器被配置为按下Tab键会导致插入适当数量的空格)。
- YAML 是遵循严格缩进的。
二、YAML介绍
2.1 菜单介绍
YAML文件的后缀名是.yaml或.yml),本着能少写不多写的原则,我们常用的是[.ymlyaml中支持不同数据类型,但在写法上稍有区别,详见下:
以下是提取的 YAML 和 JSON 文本内容(按数据类型分组,保留原生代码格式):
- 简单标量值
YAML:
key: value
JSON:
{ "key": "value" }
- 整数和浮点数
YAML:
int_key: 123
float_key: 123.456
JSON:
{ "int_key": 123, "float_key": 123.456 }
- 布尔值
YAML:
bool_key: true
JSON:
{ "bool_key": true }
- 字符串
YAML:
string_key: "This is a string"
JSON:
{ "string_key": "This is a string" }
- 列表
YAML:
list_key:- item1- item2- item3
JSON:
{ "list_key": ["item1", "item2", "item3"] }
- 映射(字典)
YAML:
map_key:sub_key1: sub_value1sub_key2: sub_value2
JSON:
{ "map_key": { "sub_key1": "sub_value1", "sub_key2": "sub_value2" } }
- 嵌套结构
YAML:
nested_key:list_key:- item1- item2map_key:sub_key1: sub_value1sub_key2: sub_value2
JSON:
{ "nested_key": { "list_key": ["item1", "item2"], "map_key": { "sub_key1": "sub_value1", "sub_key2": "sub_value2" } } }
2.2 使⽤
yaml文件通常作为配置文件来使用,可以使用yaml)库来读取和写入(YAML 文件安装yaml库
pip install PyYAML==6.0.1
创建yaml⽂件
读取和写⼊yaml⽂件
import yaml#追加写入
def write_yaml(filename, data):with open(filename, encoding="utf-8",mode="a+") as f :yaml.safe_dump(data, stream=f)#读取
def read_yaml(filename, key):with open(filename, encoding="utf-8", mode="r") as f:data = yaml.safe_load(f)return data[key]#清空
def clear_yaml(filename):with open(filename, encoding="utf-8", mode="w") as f:f.truncate()def test_yaml():#写入yaml 文件data = {"str": "12345"}write_yaml("test.yaml", data)#读取yaml文件ret = read_yaml("test.yaml", "str")print("ret", ret)#清空yaml文件clear_yaml("test.yaml")