YAML到底是什么?
YAML 是 “YAML Ain't a Markup Language”(YAML 不是一种标记语言)—— 设计时的本意
YAML 是 “Yet Another Markup Language” (仍是另外一种标记语言) —— 出来后的实际
![215b9e43d72cf8c150ed7ccc9b123d86.png](https://i-blog.csdnimg.cn/blog_migrate/72e3349c68c0073b6a53ed0f09217ef6.jpeg)
YAML 比较适合用来表达层次结构式(hierarchical model)的数据结构。生成的文件后缀为 .yml。在 HttpRunner 中,使用 YAML 编写测试用例比用 JSON 要更加简便和快捷。
YAML 的语法规范:
- 大小写敏感
- 使用缩进表示层级关系
- 缩进不允许使用tab,只允许空格
- 缩进的空格数不重要,只要相同层级的元素左对齐即可
- '#'表示注释
编写测试用例时,主要用到以下两种 YAML 数据类型:
- 对象:键值对的集合,等价于 python 中的 dict。如:“ name: 张三 ”
- 数组:一组按次序排列的值,等价于 python 中的列表(list)。
对象举例
对象写法-1:
name: 张三
对象写法-2:
student: name: 张三 age: 20
对象写法-3:
student: { name: 张三, age: 20 }
数组举例
数组写法-1
student: [ 张三, 李四, 王五 ]
数组写法-2
student: - 张三 - 李四 - 王五
下面我们将上一节的 JSON 格式的测试用例改写为 YAML 格式:
- 去掉所有表示对象的大括号,以相同的空格数量控制缩进
- 将列表中的列表项,分别设置为以短横线开头
- config: name: 测试用例:测试百度- test: name: 测试步骤-1:打开百度首页 request: url: https://www.baidu.com method: GET validate: - eq: [status_code, 200]
执行该 YAML 格式测试用例,成功。结果与执行 JSON 格式测试用例没有任何区别。
![2b1408c6a360e571998d96935912ee90.png](https://i-blog.csdnimg.cn/blog_migrate/c2eb84597c8db3eaf5c6f0fd3c22aa10.jpeg)
执行 YAML 格式测试用例,成功
最后我们再对比着看一下 JSON 和 YAML 两种格式的区别:
- JSON 可以用TAB进行缩进,需要使用括号符号,格式显得复杂
- YAML 必须用空格进行缩进,可以不使用括号符号,格式更加清晰
![d77b4bf9fdf23375cbc5778ee1e4e77a.png](https://i-blog.csdnimg.cn/blog_migrate/0e66b7984a7da12cb829c0c26235637a.jpeg)
JSON 格式和 YAML 格式测试用例的对比