【Github】项目名:didi/sharingan:基于golang的流量录制回放工具
一、项目简介
Sharingan(写轮眼)是一个基于golang的流量录制回放工具。在微服务架构下,服务依赖关系复杂,软件测试面临如构造测试数据难、维护测试环境成本高等挑战。该工具通过录制线上真实请求流量(包括下游调用流量),在线下进行回放。它支持下游流量录制,相比其他方案回放不依赖下游环境,还支持并发流量录制和回放等多种特性,如时间重置、噪音去除、批量回放等,适合项目重构、回归测试等场景。
二、核心技术
从模块划分来看,有recorder(流量录制模块,负责录制流量本地文件存储、发送流量到录制agent等)、recorder – agent(流量录制agent,单独进程启动,控制录制比例、流量存储等)、replayer(流量回放模块,重定向连接到MockServer、Mock时间、添加流量标识等)、replayer – agent(流量回放agent,单独进程启动,查询流量、查询/上报噪音、流量diff、批量回放、生成覆盖率报告等)。录制方案上修改golang源码,对外暴露Hook接口,提供API串联不同goroutine之间的网络调用并提供单独的agent筛选流量、控制比例。回放方案包括连接重定向、流量匹配、时间重置、噪音去除、常见协议解析等。
三、项目总结
Sharingan在流量录制回放方面有着独特的优势,从它的演进之路也能看到其不断优化改进的过程。它经历了月光宝盒、Fastdev等阶段,发展到如今的Sharingan阶段,功能不断完善。如果大家对这个项目感兴趣或者有任何想法,欢迎在评论区留言讨论。
项目地址
数据统计
数据评估
本站链氪巴士提供的didisharingan:基于golang的流量录制回放工具都来源于网络,不保证外部链接的准确性和完整性,同时,对于该外部链接的指向,不由链氪巴士实际控制,在2024年12月6日 上午12:00收录时,该网页上的内容,都属于合规合法,后期网页的内容如出现违规,可以直接联系网站管理员进行删除,链氪巴士不承担任何责任。