36、分布式架构下的测试策略与质量保障

分布式架构下的测试策略与质量保障

1. 契约测试与消费者驱动契约在事件驱动架构中的应用

契约测试通常与模式验证相关,如破坏性、前向或后向变更。但它更进一步,会根据消费者的期望验证生产服务的正确性。自动模式验证在事件驱动服务中至关重要,可由模式注册表(如 Kafka 中的 Avro)提供。契约测试超越了通用的模式验证规则,会根据消费者的需求验证生产服务的输入和输出。

契约测试通常位于服务与外部接口的边界,重点是确保生产服务符合消费者的期望。例如,产品目录服务消费库存服务产生的库存事件,我们可以为库存服务添加契约测试,保证产品目录服务所需的所有信息都被发布。

为了实现更好的性能和稳定性,我们可以使用消息代理的模拟或内存替代方案。不过,由于序列化和兼容性问题,许多用例依赖消息代理。测试可以确保消费者能够以相同的方式、使用相同的模式、序列化协议、头部等消费事件,从而读取消息。此外,契约测试还能保证消费者所依赖的一些业务逻辑。例如,在产品创建的多个步骤中,第一步可能只填充必填数据,其余信息在后续过程中丰富。库存需要产品有尺寸信息,因此产品服务可能期望所有库存都与产品尺寸相关联,当库存大于零时,尺寸信息也应被发布。

消费者驱动契约是契约测试的一种有价值的迭代。生产服务团队与消费者团队直接合作,理解并保证消费者服务的期望,消费者甚至可以在生产服务中实现测试。运行库存服务每次发布的契约测试,能让我们更有信心新功能不会破坏现有消费者,同时促进团队间的沟通。在事件驱动架构中,将契约测试和消费者驱动契约应用于流程中的每个组件,有助于保证端到端流程的可扩展性验证。

2. 测试分类与目的

Brian Marick 定义了测试分类的四个象限,帮

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值