什么是yaml
yaml和json一樣是一種數據呈現格式
yaml文件的特點
- 對用戶極為友好
-
跨語言,支持所有編程語言,如python、java、php、js等等
-
跨平台,如windows、linux、Mac
-
格式簡單,比json更加簡潔
-
應用極為廣泛
python中處理yaml的模塊
- pyyaml
- ruamel.yaml
本文重點講解使用pyyaml處理yaml文件
基本操作
創建一個yaml文件
創建一個為learn.yaml的文件,后綴名為yaml或者yam,表示的就為yaml文件
learn.yaml文件
# 接口測試用例
login:
id: 1
title: "正常登陸"
url: http://www.baidu.com/user/login
method: "POST"
json:
username: "zhou"
password: "123456"
expected:
status_code: 200
content: "user_id"
learn1.yaml文件
# 接口測試用例1
# 將公共url抽取出來
common:
url: http://www.baidu.com/user/login
method: "POST"
# 加上-讓其變為列表
login:
- id: 1
title: "賬號為空登錄"
json:
username: ""
password: "123456"
expected:
status_code: 400
message: "用戶名不能為空"
- id: 2
title: "密碼為空登錄"
json:
username: "zhou"
password: ""
expected:
status_code: 400
message: "密碼不能為空"
python中安裝yaml
pip install pyyaml
python讀取yaml文件
import yaml
# 讀取login.yaml文件
with open(r"login.yaml", encoding='utf-8') as file:
data = yaml.full_load(file)
print(data)
# 返回數據類型為字典嵌套字典的格式(如下)
{'login': {'id': 1, 'title': '正常登陸', 'url': 'http://www.baidu.com/user/login', 'method': 'POST', 'json': {'username': 'zhou', 'password': '123456'}, 'expected': {'status_code': 200, 'content': 'user_id'}}}
# 讀取login1.yaml文件
with open(r"login1.yaml", encoding='utf-8') as file:
data = yaml.full_load(file)
print(data)
# 返回數據類型為字典嵌套列表的格式(如下)
{'common': {'url': 'http://www.baidu.com/user/login', 'method': 'POST'}, 'login': [{'id': 1, 'title': '賬號為空登錄', 'json': {'username': '', 'password': '123456'}, 'expected': {'status_code': 400, 'message': '用戶名不能為空'}}, {'id': 2, 'title': '密碼為空登錄', 'json': {'username': 'zhou', 'password': ''}, 'expected': {'status_code': 400, 'message': '密碼不能為空'}}]}