全网超细,Pytest自动化测试YAML数据驱动实战(详全)


前言

1、YAML简介

yaml是一种文件类型,往细了说,是一种通用的数据序列化格式;它与python中的字典数据类型大致相同。也是遵循key=value(键值对形式)的方式进行数据存储。

YAML是一个可读性高,用来表达数据序列化的格式。YAML参考了其他多种语言,包括:C语言、Python、Perl,并从XML、电子邮件的数据格式(RFC 2822)中获得灵感。Clark Evans在2001年首次发表了这种语言,另外Ingy döt Net与Oren Ben-Kiki也是这语言的共同设计者。当前已经有数种编程语言或脚本语言支持(或者说解析)这种语言。

YAML是"YAML Ain’t a Markup Language"(YAML不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言),但为了强调这种语言以数据做为中心,而不是以标记语言为重点,而用反向缩略语重命名。

yaml是一个多平台的数据格式,文件后缀名以.yaml或.yml命名。根据平台不同,命名不同,python中的后缀名是.yaml

2、YAML语法格式

1)yaml语法格式

区分大小写
使用空格缩进表示层级关系。切记不要使用tab缩进。

缩进空格数没有规定,按照个人喜好。
只要保证字段最左侧对其即可
数据模板是key: value的形式展示。value前面有一个空格。
yaml的#开头的表示注释的意思。(与python单行注释一样)

2)数据类型

yaml支持的数据格式如下
字符串;
整形;
浮点;
布尔;
日期;
空(null);
数组;

上述类型除数组外。其他数据类型无特殊语法格式。只需要输入数据,底层会自动转换类型。

说到数组,在yaml中想定义一个数组,需要在key值前增加一个"-"来表示数组。

示例:

- name: 张三
- age: 14


# 输出:[{'name': '张三'}, {'age': 14}]


- name
- age


# 输出:['name', 'age']

使用“-”来标注的数据类型,就会直接转换成Python中列表的形式。yaml中可以灵活运用嵌套规则,形成不同的数据格式:字典嵌套列表,列表嵌套字典等等

3)锚点

锚点主要作用就是引用公共变量。

语法:
‍设置锚点:
使用&锚点名称。可以标注锚点

引用锚点:
使用*+锚点名称。可以应用锚点
<< 锚点名称。表示将锚点追加到本数据组中

举一个简单例子来说明锚点作用:

张三和小李同属一家公司。在某些场景想要得到他们两人的职位信息。在某些场景只需要这两个人的个人信息。在yaml中就可以定义一个人员信息的数据和一个部门信息数据

A1

输出:

{
   
  'manager'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值