全链路测试

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

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


四、一句话总结

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

补充图:

相关推荐
倦王2 小时前
力扣日刷47
算法·leetcode·职场和发展
AI成长日志3 小时前
【笔面试算法学习专栏】哈希表基础:两数之和与字母异位词分组
学习·算法·面试
abant24 小时前
leetcode 239 单调队列 需要一些记忆
算法·leetcode·职场和发展
ShineWinsu4 小时前
对于Linux:文件操作以及文件IO的解析
linux·c++·面试·笔试·io·shell·文件操作
U盘失踪了5 小时前
面试题:你在测试工作中有使用过AI吗?具体是怎么用的?
面试
2301_809049425 小时前
HAL库速成--嵌入式赛道--蓝桥杯速成
职场和发展·蓝桥杯
Baihai_IDP5 小时前
微软多模态推理模型 Phi-4-reasoning-vision 训练经验分享
人工智能·面试·llm
前端Hardy5 小时前
前端开发效率翻倍:15个超级实用的工具函数,直接复制进项目(建议收藏)
前端·javascript·面试
打瞌睡的朱尤6 小时前
4.1蓝桥杯训练
职场和发展·蓝桥杯