微服务架构是近些年来比较流行的一种架构模式,它提倡将单一应用程序划分成一组小的服务,每个服务运行在其独立的进程中,服务间采用轻量级通信机制互相沟通。每个服务都围绕着具体的业务进行构建,并且能够被独立部署到生产环境、预生产环境。 微服务的它有如下好处:
在微服务架构模式下,对于项目流程中的重要角色“测试”来讲,面临诸多新的挑战。以往单一应用的测试手段,不足以对微服务架构应用的质量进行全面保障,那么在微服务架构上,测试策略该如何制定呢?与以往单一应用的测试手段有哪些不同呢?
我们首先思考一下测试的目标是什么?
根据微服务架构的特点,我们梳理出了三个软件测试的方向:
数据一致性是微服务特别需要关注的。举个例子,在电商平台某个订单支付成功以后,需要更新订单状态、优惠券信息、积分信息,当订单服务、优惠券服务、积分服务其中有一个出现故障的时候,就会导致最终的数据不一致性。 测试这种情况,从业务的角度分析哪些服务会导致数据不一致性,制造对应的异常情况去测试数据的最终一致性。
系统被拆分成独立的服务,每个服务都是一个完整的小系统,此方面的测试与单一应用的测试手段基本一致,主要是保证服务自身的业务功能正确性。所采用的测试手段主要为:API接口测试、单元测试。
在针对具体项目的测试策略制定时,需要根据具体实际情况灵活调整,在后续的文章中,我们会将实践中的更多成果与大家分享。