python接口自动化测试 | yaml数据驱动参数化,看完这一篇就够了
在yaml之前,程序大多使用json、xml、ini等格式进行数据的描述和传输,这些格式数据类型简单、可读性不好,yaml作为一种数据格式,但是可读性大大提高,方面人类直接编辑、查看里面的内容。在实际测试过程中,测试一个接口往往不会像前面一个只有一个用例。如何在一个yaml里面写多个用例,并且执行呢?接下来我们就来详细讲解一下什么是yaml。经验固然重要,但观念的正确与否起决定作用。经验只能做好现
目录:导读
前言
在yaml之前,程序大多使用json、xml、ini等格式进行数据的描述和传输,这些格式数据类型简单、可读性不好,yaml作为一种数据格式,但是可读性大大提高,方面人类直接编辑、查看里面的内容。
在实际测试过程中,测试一个接口往往不会像前面一个只有一个用例。如何在一个yaml里面写多个用例,并且执行呢?
接下来我们就来详细讲解一下什么是yaml。
一、YAML文件是什么
YAML是 “YAML Ain’t a Markup Language”(YAML不是一种标记语言)的递归缩写;
实际上YAML还是一种标记语言,只不过是更加聚焦于数据的标记语言(上面是大佬们的文字游戏);
YAML也是可以用来编写配置文件的语言,语法非常简洁和强大;
在自动化测试框架中,常应用于自动化测试过程,用来进行数据驱动的数据存储载体,如典型的httprunner。
二、YAML语法规则
1.大小写敏感
2.使用缩进表示层级关系
3.不允许使用 TAB 键来缩进,只允许使用空格键来缩进
4.缩进的空格数量不重要
5.使用”#”来表示注释
其中规则中的1、2、5有没有觉得和python类似
三、YAML文件支持的数据格式
对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
纯量(scalars):单个的、不可再分的值
四、YAML文件编写示例
1、对象
name: 小王
age: 12
books:
book1: 朝花
book2: 呐喊
使用冒号(:)表示键值对,同一缩进的所有键值对属于一个map
2、数组
-
- A
- B
- C
-
- D
- E
- F
使用(- ) 表示数组,同一缩进的所有项属于一个数组
3、纯量
name: 'xiaoli'
age: 22
weight: 57.30
isStudent: true
address: ~
time: 2022-10-31t15:02:23.10-05:00
date: 2022-10-28
根据以上纯量的例子,由上往下,纯量包含:字符串 整数 浮点数 布尔值 Null(用~表示) 时间 日期
其中:用~表示null ; 时间、日期采用IS08601格式
4、对象嵌套数组
hobbys:
- 'climb mountains'
- sing
- dance
5、数组嵌套对象
-
id: 1
name: xiaowang
-
id: 2
name: xiaoli
五、YAML文件常用编写语法
在一个yml文件中,使用 — 来表示一段文档(或者一组配置)的开始,使用 … 来表示一段文档的结束。如果yml中只有一组配置,则可以省略掉 —
使用 – 来表示单个的列表项
使用 : 来表示键值对
用 ~ 表示null
使用 ! 和 !! 来做强制类型转换
单引号会将字符串里面的特殊字符转义为字符串处理
双引号不会转义字符串里面的特殊字符,特殊字符作为本身想表示的意思
使用|标注的文本内容缩进表示的块,可以保留块中已有的回车换行
使用+表示保留文字块末尾的换行
使用-表示删除字符串末尾的换行
使用 > 标注的文本内容缩进表示的块,会将块中回车替换为空格,最终连接成一行
使用true或false表示布尔值
使用 & 定义数据锚点(即要复制的数据)
使用 * 引用锚点数据(即数据的复制目的地)
ps: 语法比较多,大家当参考资料看吧,到时有更多用上了,我再补充
六、总结
经验固然重要,但观念的正确与否起决定作用。经验只能做好现成的东西,观念则决定长远的方向。思维观念高于工作经验。
没有比脚更长的路,没有比人更高的山,没有做不到的事,只有想不到的人。阻挡你前进的不是高山大海,而往往是自己鞋底一粒小小的沙粒!
发生一件事,喜欢它那就享受它,不喜欢它那就避开它,避不开那就改变它,改变不了那就接受它。接受不了是你的观念,别埋怨事情的本身。
更多推荐




所有评论(0)