作者简介
Peter Sun,携程高级测试经理。
一、引言
这里说的Mock指的是系统测试或者接口测试场景下,模拟被依赖的其他服务接口进行响应返回的工具。测试人员通过服务接口级Mock的手段隔绝真实外部依赖,创造可控、稳定的测试运行环境,以提升问题的查全率和查准率。
然而,随着业务的发展和微服务化的进程,我们系统的结构越发的庞杂,Mock工具的实际效果开始变得差强人意。这里给大家分享我们遇到的挑战以及解决思路。
二、问题的出现
随着业务发展和微服务化进程,系统结构越发庞杂。服务化场景下使用Mock,有两个问题开始浮现出来。
1)工作串扰,启用Mock影响其他应用的测试工作
理想中的场景:

操作注册中心,使依赖指向Mock服务。
现实中的场景:

通过注册中心切换被测应用的依赖指向到Mock服务的动作,同样会影响到环境中其他应用的依赖指向,引发串扰(上图中应用B受到影响)。
PS:有被问及为何不调整被测应用的代码或者配置指向目标Mock,避免串扰其他应用。这种入侵代码的手段是下策。常在河边走哪有不湿鞋,总会有忘记改回来造成生产事件的时候的。
2)生效延迟
Mock的生效依赖注册中心的服务注册生效过程。由于缓存的存在,实际的生效时间是无法

文章介绍了携程在面临Mock工具在复杂系统中引发的工作串扰和生效延迟问题时,采取的Mock边车化策略。通过servlet agent、本地Mock代理、Mock server和Mock配置客户端,实现Mock的本地化和透明化,提高测试执行的稳定性。这种方法不仅解决了串扰和延迟,还具有一定的普适性。
最低0.47元/天 解锁文章
650

被折叠的 条评论
为什么被折叠?



