小王刚改完登录模块,顺手把用户中心模块也连上了,跑完集成测试发现报错:「用户头像没加载出来」。他挠头——明明两个模块单独测都绿的,怎么一合起来就红了?
集成测试不是「能跑就行」
很多人以为,只要接口调通、页面不崩,就算集成通过。其实不然。集成测试的核心,是验证「模块之间协作是否靠谱」。它不关心单个模块多漂亮,只盯着它们握手时有没有掉链子。
几条实在的通过条件
1. 接口调用全部成功,且返回符合约定
比如订单服务调用户服务查昵称,必须拿到 status=200 + 正确 nickname 字段。哪怕只多一个空格、少一个字段,都不算过。
2. 数据流转无丢失、无错乱
从 A 模块传给 B 的订单 ID 是 10086,B 处理完再发给 C,C 收到的还得是 10086,不能变成 '10086a' 或 null。常见坑:JSON 序列化时字段名大小写不一致、时间戳格式混用(毫秒 vs 秒)。
3. 异常场景有兜底,不崩溃、不静默失败
比如支付模块调库存服务超时,不能直接卡死或返回 500 页面,而应降级显示「库存查询中,请稍候」,并记录日志。集成测试要主动模拟网络延迟、服务返回 503 等情况。
4. 关键业务流端到端走通
不是测单点,而是拉通一条真实路径:用户下单 → 扣库存 → 生成支付单 → 推送消息。中间任一环节断掉,整个流程就算没过。
举个接地气的例子
电商后台新增「批量导出订单」功能,依赖订单服务 + Excel 生成服务 + 文件存储服务。集成测试通过至少得满足:
- 导出请求发出后,三个服务日志里都有对应 traceId;
- 生成的 Excel 文件打开能看清 10 条订单数据,且金额、时间、状态全对;
- 故意关掉文件存储服务,前端收到明确提示「导出失败,请重试」,而不是转圈半天没反应。
这些条件看起来琐碎,但每一条都对应线上可能出问题的真实切口。集成测试不是走形式,是提前替用户踩一遍合作模块之间的「接缝处」。
所以别急着点「运行测试」,先想清楚:这次联调,到底在验什么?