自动化测试 | 认识接口自动化封装中的YAML用例
认识和学习什么是YAML测试用例
- 🌟 第一步:什么是“接口自动化”?
- 🧩 第二步:为什么用 YAML 写测试用例?
- ❓ 问题:如果把测试数据写死在代码里,会怎样?
- ✅ 解决方案:**把“测试数据”和“测试逻辑”分开**
 
- 📄 第三步:YAML 是什么?长什么样?
- ✅ 例子:一个登录接口的测试用例(YAML)
 
- 🛠️ 第四步:小白怎么动手写一个?
- 步骤 1:创建 YAML 文件
- 步骤 2:写一个通用的 Python 执行器(只需写一次)
- 步骤 3:运行
 
- 📚 第五步:小白学习建议
- 💡 小贴士
- ✅ 总结
 
“接口自动化封装:使用 YAML 作为用例,小白如何了解?”
我们从零基础视角出发,一步步讲清楚:
- 什么是接口自动化?
- 为什么用 YAML 写测试用例?
- YAML 长什么样?怎么读?
- 小白怎么上手写一个简单的接口自动化用例?
🌟 第一步:什么是“接口自动化”?
简单说:
接口自动化 = 用代码自动调用接口 + 自动检查结果是否正确
比如:
- 手动测试:你在 Postman 里点“Send”,看返回是不是 {"code": 200}
- 自动化测试:你写一段 Python 代码,自动发请求、自动判断结果,不用人盯着
🧩 第二步:为什么用 YAML 写测试用例?
❓ 问题:如果把测试数据写死在代码里,会怎样?
# bad example
def test_login():response = requests.post("http://api.com/login", json={"user": "admin", "pwd": "123"})assert response.json()["code"] == 200
- 改个账号?要改代码!
- 加个用例?要写新函数!
- 非程序员(比如测试)想改数据?不会 Python!
✅ 解决方案:把“测试数据”和“测试逻辑”分开
- 逻辑写在 Python 里(怎么发请求、怎么断言)
- 数据写在 YAML 文件里(用什么 URL、参数、期望结果)
这样:
- 测试人员只需改 YAML,不用碰代码
- 代码复用率高,维护简单
- 用例清晰、可读性强
📄 第三步:YAML 是什么?长什么样?
YAML 是一种人类友好的数据格式,比 JSON 更简洁、易读。
✅ 例子:一个登录接口的测试用例(YAML)
# test_login.yaml
- name: "正常登录"url: "/api/login"method: POSTheaders:Content-Type: application/jsonjson:username: "admin"password: "123456"validate:status_code: 200json:code: 200msg: "success"
你看:
- 没有大括号 {},没有引号(可选),靠缩进表示层级
- 结构清晰:url、method、参数、预期结果一目了然
🛠️ 第四步:小白怎么动手写一个?
步骤 1:创建 YAML 文件
新建文件 cases/login.yaml,内容如上。
步骤 2:写一个通用的 Python 执行器(只需写一次)
# run_test.py
import yaml
import requests
import pytest# 读取 YAML 用例
def load_cases(file_path):with open(file_path, encoding='utf-8') as f:return yaml.safe_load(f)# 通用测试函数
@pytest.mark.parametrize("case", load_cases("cases/login.yaml"))
def test_api(case):base_url = "http://127.0.0.1:8000"url = base_url + case["url"]method = case["method"].lower()response = getattr(requests, method)(url,headers=case.get("headers", {}),json=case.get("json"),params=case.get("params"))# 断言状态码assert response.status_code == case["validate"]["status_code"]# 断言 JSON 响应resp_json = response.json()for key, expected in case["validate"]["json"].items():assert resp_json[key] == expected
步骤 3:运行
pip install pytest requests pyyaml
pytest run_test.py -v
✅ 成功!你用 YAML 驱动了自动化测试!
📚 第五步:小白学习建议
| 阶段 | 建议 | 
|---|---|
| 第一步 | 学 YAML 基础语法(缩进、列表 -、字典key: value) | 
| 第二步 | 用 Postman 调一个接口,记录下 URL、参数、返回 | 
| 第三步 | 把这个接口写成 YAML 用例 | 
| 第四步 | 用上面的 Python 脚本跑起来 | 
| 第五步 | 尝试加多个用例(正常、异常、边界) | 
💡 小贴士
- YAML 缩进必须用空格,不能用 Tab!
✅ 总结
YAML 就是“测试用例的说明书”,Python 是“执行说明书的机器人”。你写说明书,机器人干活!
