返回
打造卓越无侵入式mock平台
见解分享
2024-02-11 19:43:20
得物技术 | 无侵入式mock平台在得物的实践
随着业务规模的不断扩张,在开发和测试过程中,需要mock掉大量三方接口或者依赖模块,来保证开发和测试环境的稳定性和独立性,以便进行功能开发和回归测试。
在传统的mock方案中,往往需要修改代码或者额外的修改配置文件来完成mock操作。这种方案在实际开发中存在几个问题:
- 只想测试被测系统A,却需要从依赖系统开始一层层造自己想要的测试数据,造数花费时间长,边界值及异常场景不好模拟。
- 接口自动化,UI自动化,埋点自动化因为服务或者测试数据的不稳定性导致自动化维护成本高。
- 需要修改业务线代码,服务部署后又需要下线mock,修改代码成本较高,难以满足测试场景的快速迭代要求。
要解决上述问题,基本都会想到mock。目前市面上有很多优秀的开源mock工具,例如:
这些工具有很多优点,如:
- 开源免费
- 支持多种协议
- 易于使用和管理
但这些工具也有一个共同的缺点:它们都需要修改业务线代码,并在业务线代码中添加额外的逻辑来支持mock操作。这使得mock工具在实际应用中存在一些问题:
- 业务线代码耦合度高,容易导致业务逻辑混乱
- 业务线发布上线后需要将mock逻辑下线,给业务线发布带来不便
- 如果业务线使用多套测试环境,则需要在每套环境都部署mock工具,增加了运维成本
针对以上痛点,得物基于自身业务特点和技术积累,研发了一套无侵入式mock平台,该平台无需修改业务线代码即可实现mock,解决了以上问题。
该平台的核心思想是将mock操作从业务线代码中剥离出来,放到一个独立的平台上进行管理。平台对业务线提供统一的API接口,业务线通过调用该API接口即可实现mock操作。
该平台的主要功能包括:
- mock数据管理:平台提供统一的界面和API接口,可以方便地管理和维护mock数据。
- mock规则管理:平台提供统一的界面和API接口,可以方便地管理和维护mock规则。
- mock请求转发:平台将mock请求转发到相应的mock服务上,并返回mock响应。
该平台的实现架构如下图所示:
[图片]
该平台的落地实践主要包括以下几个方面:
- 平台的开发和建设
- 平台的接入和使用
- 平台的运维和监控
平台的开发和建设包括以下几个步骤:
- 需求分析和设计
- 平台的开发和测试
- 平台的部署和上线
平台的接入和使用包括以下几个步骤:
- 业务线接入平台
- 业务线使用平台进行mock操作
平台的运维和监控包括以下几个方面:
- 平台的监控和告警
- 平台的日志管理
- 平台的容量规划
得物的mock平台自上线以来,已经得到了广泛的使用。目前,平台已经支持了数十个业务线,mock了数千个接口,极大地提高了开发和测试的效率和质量。
结论
得物的mock平台是一个统一的、无侵入式的mock平台,它可以方便地管理和维护mock数据和mock规则,并可以将mock请求转发到相应的mock服务上。该平台的落地实践表明,该平台可以有效地提高开发和测试的效率和质量。