全链路测试

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

复制代码
[用户操作] 
    │
    ▼
┌─────────────┐
│   客户端     │  (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
数据库
第三方支付


四、一句话总结

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

补充图:

相关推荐
快乐非自愿1 天前
RAG夺命10连问,你能抗住第几问?
人工智能·面试·程序员
一只幸运猫.1 天前
2026Java 后端面试完整版|八股简答 + AI 大模型集成技术(最新趋势)
人工智能·面试·职场和发展
拾贰_C1 天前
【Agent | openai | Streaming | 】流式输出Streaming
ubuntu·面试·prompt
Moment1 天前
面试官:给 llm 传递上下文,有哪几个身份 role ❓❓❓
前端·后端·面试
木斯佳1 天前
前端八股文面经大全:字节抖音前端三面(2026-04-27)·面经深度解析
前端·面试·笔试·八股·面经
嘻嘻哈哈樱桃1 天前
牛客经典101题题解集--动态规划
java·数据结构·python·算法·职场和发展·动态规划
愚者游世1 天前
noexcept 说明符与 noexcept运算符各版本异同
开发语言·c++·程序人生·面试·visual studio
生信研究猿1 天前
leetcode 416. 分割等和子集
算法·leetcode·职场和发展
前端那点事2 天前
Vue批量文件上传并发踩坑指南:3步解决阻塞、限流、进度混乱
前端·面试