适用项目:线上商品的销售与运营平台
复习状态:已复习 1 次 (2026-05-22T02:39:15)
集成测试是在单元测试之后进行的一类测试,主要用于验证已经通过单元测试的模块或服务在组合后能否正确协同工作。它关注的重点不是单个模块内部功能,而是模块之间的接口、参数、数据结构、调用顺序和交互结果是否正确。线上商品销售与运营平台采用多个业务模块协同完成交易流程,用户一次下单往往需要调用商品、库存、订单、营销、支付和消息通知等多个服务。如果这些服务之间接口不兼容、参数传递错误或状态流转不一致,即使单个服务本身功能正确,也可能产生库存超卖、优惠券重复核销、支付状态不同步等问题。因此,在本项目中,我重点开展集成测试,围绕核心交易链路验证各模块之间的接口适配和协作正确性。
首先,我在集成测试前进行了接口静态检查,重点检查服务之间的接口定义是否一致。项目中商品服务向订单服务提供商品价格、上下架状态和 SKU 信息,营销服务向订单服务提供优惠券可用性和优惠金额,库存服务向订单服务提供库存锁定和释放接口,支付服务向订单服务回传支付结果。为了避免联调时出现接口不适配问题,我组织开发人员基于接口文档和 OpenAPI 定义进行检查,重点核对请求参数名称、数据类型、必填字段、枚举值、返回码和异常信息。例如在检查订单服务调用库存服务的库存锁定接口时,我们发现订单服务传递的是 skuId 和 buyCount,而库存服务接口文档中定义的是 skuCode 和 quantity,字段名称和含义不完全一致,可能导致库存服务无法正确识别请求。通过这种静态接口检查,我们在正式联调前发现了 27 个接口定义问题,其中 8 个属于核心交易链路问题,减少了后续集成测试的阻塞时间。
其次,我采用动态黑盒方式对同步接口调用进行了集成测试。黑盒集成测试不关注各服务内部代码实现,而是通过构造输入数据,观察多个服务协作后的输出结果和状态变化。在本项目中,我重点测试了“商品详情到下单”的同步调用链路,即前端提交订单时,订单服务需要调用商品服务校验商品是否上架、调用营销服务计算优惠金额、调用库存服务完成库存锁定。测试过程中,我分别设计了商品已下架、商品价格变更、优惠券已过期、库存不足、库存刚好为 1 件等场景,验证订单服务能否根据各服务返回结果正确生成订单或返回失败提示。例如在库存刚好为 1 件的测试场景中,两名用户同时提交订单时,系统应只允许一个订单锁定库存,另一个订单返回库存不足。通过 260 条同步接口集成测试用例,我们发现了优惠金额返回为空时订单服务未进行默认值处理、库存锁定失败后订单仍进入待支付状态等问题,修复后核心下单链路通过率达到 99% 以上。
最后,我对异步消息和跨服务状态流转进行了集成测试。线上销售平台中,支付成功、库存扣减、优惠券核销、消息通知和数据统计等流程并不完全依赖同步接口,而是通过消息队列异步完成。因此,我重点验证订单服务、支付服务、库存服务、营销服务和数据统计服务之间的异步协作是否正确。例如用户支付成功后,支付服务发送支付成功消息,订单服务应更新订单状态,库存服务应完成真实扣减,营销服务应核销优惠券,数据统计服务应记录交易明细。我设计了支付成功、支付失败、重复回调、消息延迟、消息重复消费和库存扣减异常等场景,检查各服务最终状态是否一致。测试中我们发现,支付服务重复发送成功消息时,营销服务存在重复核销优惠券的风险,因此增加了业务流水号和幂等校验。通过异步集成测试,系统稳定处理了每分钟约 5000 条订单相关消息,重复支付回调和重复消息消费均未再导致订单状态异常,保证了平台核心交易链路的可靠性。