当前位置: 首页 > news >正文

自动化测试 | 认识接口自动化封装中的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 是“执行说明书的机器人”。你写说明书,机器人干活!

http://www.dtcms.com/a/548741.html

相关文章:

  • dedecms做门户网站石家庄网站建站
  • windows系统下docker desktop创建容器指定ip
  • 微网站建设费用预算旅游网站开发的需求
  • Ionic + Angular 跨端实战:用 Capacitor 实现相机拍照功能并适配移动端
  • Python 爬虫:从基础到实战的完整指南
  • Angular【http服务端交互】
  • Angular【核心特性】
  • 做seo前景怎么样郑州企业网站优化多少钱
  • 华为 USG 防火墙 NAT 配置
  • uni-app App更新升级前端实现
  • 数据通信领域的专业认证——华为数通认证
  • JavaSE基础——第十二章 集合
  • iis发布网站页面出问题网上服务平台社保
  • 基于C语言上,面向对象语言:C++基础(学完C语言后再看)
  • windows npm打包无问题,但linux npm打包后部分样式缺失
  • npm install命令介绍
  • 人机交互与网页开发
  • p2p理财网站建设新浪云怎么做自己的网站
  • 手机分销网站wordpress视频上传不
  • 健身俱乐部|基于Java+Vue的健身俱乐部管理系统(源码+数据库+文档)
  • linux服务器升级显卡驱动(笔记)
  • 一个DevExpress的Docx文件处理的Bug的解决
  • Ubuntu(④Mysql)
  • Docker 拉取配置教程:解决镜像拉取连接超时问题
  • 开始改变第六天 MySQL(1)
  • 电脑网站自适应怎么做企业型网站建设怎样收费
  • 阿里培训网站建设杭州网站制作模板
  • Rust 所有权系统:如何为内存安全保驾护航
  • HarmonyOS WindowExtension深度解析:构建跨窗口交互的创新体验
  • PDF导出服务