全链路测试

一、全链路示意图(文本版)

复制代码
[用户操作] 
    │
    ▼
┌─────────────┐
│   客户端     │  (App/Web/小程序)
│  - 发起请求  │
│  - 接收响应  │
└──────┬──────┘
       │ HTTP/HTTPS
       ▼
┌─────────────┐
│   网关/入口   │  (Nginx/API Gateway)
│  - 鉴权      │
│  - 限流      │
│  - 路由      │
└──────┬──────┘
       │
       ▼
┌─────────────┐
│  业务服务A   │  (订单服务)
│  - 业务逻辑  │
└──────┬──────┘
       │ 调用
       ▼
┌─────────────┐
│  业务服务B   │  (库存服务)
│  - 核心逻辑  │
└──────┬──────┘
       │
       ▼
┌─────────────┐
│  数据库/缓存  │ (MySQL/Redis)
└─────────────┘
       │
       ▼
┌─────────────┐
│  第三方依赖   │ (支付/短信)
└─────────────┘

二、不同测试覆盖的"段"

1️⃣ 客户端接口测试(Mock 服务端)

复制代码
[客户端] ──请求──→ [Mock服务端]  ← 只测这里,后面的全部假的
  • 覆盖:客户端发请求、处理响应(成功/失败/超时/数据解析)
  • 不覆盖:任何真实的后端逻辑、数据库、第三方

2️⃣ 服务端接口测试(直接调接口)

复制代码
[Mock客户端] ──请求──→ [网关] → [服务A] → [服务B] → [数据库]
  • 覆盖:服务端内部链路(网关 → 微服务 → DB)
  • 不覆盖:客户端真实交互(网络波动、UI、本地缓存等)

3️⃣ 客户端 E2E 测试(Client-side E2E 真实服务端)

复制代码
[客户端] ──→ [网关] → [服务A] → [服务B] → [数据库]
  • 覆盖:从用户操作到数据落库的完整路径(但不一定覆盖所有下游,比如第三方可能用挡板)
  • 仍可能缺:第三方真实响应、复杂的跨服务事务、全量压测场景

4️⃣ 全链路测试(End-to-End 真实链路)

复制代码
[客户端] ──→ [网关] → [服务A] → [服务B] → [数据库] → [第三方真实]
  • 覆盖:从头到尾,包括真实第三方、生产级数据量、网络延迟、限流熔断等
  • 强调链路不断,所有节点都是真实的或高仿真的(除非第三方不可控,则用模拟挡板但仍会验证交互协议)

三、用泳道图(mermaid)展示分工

全链路测试范围
服务端接口测试范围
客户端接口测试范围
HTTP
用户操作
客户端
网关
业务服务A
业务服务B
数据库
第三方支付


四、一句话总结

  • 客户端测试:只测"门里"(自己的代码),门外(服务端)用假人代替。
  • 服务端测试:只测"屋里"(后端服务),敲门的人(客户端)用假人代替。
  • 全链路测试 :真人敲门,走进全屋,打开所有房间,甚至从后门出去到街上(第三方),全程必须真实打通

补充图:

相关推荐
怕浪猫8 小时前
FDE 最大的浪费不是写出有 bug 的代码,而是漂亮地解决了一个错误的问题
面试·架构·github
AI情绪识别开源9 小时前
检信 ALLEMOTION OS 加密打包可执行程序 — 全面测试报告版本: v1.3功能测试 / 性能测试 /
开发语言·数据结构·人工智能·功能测试
黄敬峰10 小时前
Next.js 全栈实战:数据清洗、ORM 设计与 AI Prompt 工程最佳实践
面试·github
雨夜之寂14 小时前
雨夜-现在有办法识别是不是ai文章么
后端·面试
天真小巫16 小时前
2026.8.30总结
职场和发展
不正经学生16 小时前
C语言动态内存管理(上):堆上的自由与责任
c语言·开发语言·c++·算法·面试
ssshooter16 小时前
AI 时代你不能不知道的 git worktree
前端·后端·面试
搜词研究员16 小时前
# 德立教育和达德教育哪个好?学历提升选哪家?
考研·职场和发展·学习方法·高考
CoderYanger17 小时前
A.每日一题:输入单词需要的最少按键次数 Ⅰ+Ⅱ
java·数据结构·算法·leetcode·面试
艾莉丝努力练剑21 小时前
【AI大模型接入SDK】SSE协议
c++·学习·面试·大模型·sdk