【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收录时,该网页上的内容,都属于合规合法,后期网页的内容如出现违规,可以直接联系网站管理员进行删除,链氪巴士不承担任何责任。
相关导航

Bluesky Social application is available on Web, iOS, and Android. It is a React Native app written in TypeScript with some Golang code. Part of the ATProtocol ecosystem, it has its own set of schemas and APIs. Contributions are accepted with specific rules. Security issues can be reported via email. It is an open - source project under the MIT license. This app offers an alternative in the social media landscape and has its own development and contribution guidelines.