news 2026/5/11 4:09:10

Sharingan流量录制回放工具完全使用指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Sharingan流量录制回放工具完全使用指南

Sharingan流量录制回放工具完全使用指南

【免费下载链接】sharinganSharingan(写轮眼)是一个基于golang的流量录制回放工具,适合项目重构、回归测试等。项目地址: https://gitcode.com/gh_mirrors/sha/sharingan

Sharingan(写轮眼)是一款基于Go语言开发的流量录制回放工具,能够录制线上真实请求流量并进行回放测试,特别适合项目重构、回归测试等场景。通过复制真实流量和幻术能力,解决构造测试数据难和维护测试环境成本高的问题。

项目核心特性

Sharingan具有以下主要特性:

  • 支持下游流量录制,回放不依赖下游环境
  • 支持并发流量录制和回放,录制对服务影响小,回放速度更快
  • 支持时间重置、噪音去除、批量回放、覆盖率报告
  • 支持常见协议解析,包括HTTP、MySQL、Redis、Thrift等
  • 支持写流量回放,不会污染应用数据
  • 不依赖业务框架,低应用侵入

环境搭建与快速开始

获取项目源码

首先需要获取项目源代码:

git clone https://gitcode.com/gh_mirrors/sha/sharingan.git cd sharingan

安装定制Go环境

Sharingan需要使用定制版的Go语言环境:

sudo sh install.sh go1.13 export GOROOT=/tmp/recorder-go1.13 export PATH=$GOROOT/bin:$PATH

启动核心服务

启动replayer-agent服务:

cd replayer-agent go build nohup ./replayer-agent >> run.log 2>&1 &

启动示例项目:

cd ../example go build -tags="replayer" -gcflags="all=-N -l" nohup ./example >> run.log 2>&1 &

访问回放界面

在浏览器中打开回放页面地址:http://127.0.0.1:8998

页面内置了提前录制好的3条示例流量,可以直接选择执行回放测试。

项目架构与模块划分

Sharingan项目包含四个核心模块:

  • recorder:流量录制模块,负责录制流量本地文件存储、发送流量到录制agent等
  • recorder-agent:流量录制agent,单独进程启动,控制录制比例、流量存储等
  • replayer:流量回放模块,重定向连接到Mock Server、Mock时间、添加流量标识等
  • replayer-agent:流量回放agent,单独进程启动,查询流量、查询/上报噪音、流量diff、批量回放、生成覆盖率报告等

录制与回放操作指南

流量录制流程

录制流量前需要确保recorder-agent正常运行。通过正常的业务操作,流量会被自动捕获并录制。

流量回放操作

回放操作通过web界面进行,支持以下功能:

单个流量回放:

批量并发回放:

核心功能详解

代码覆盖率报告

Sharingan支持生成详细的代码覆盖率报告,帮助开发者了解测试覆盖情况。

整体覆盖率报告:

详细覆盖信息:

协议解析与流量匹配

系统支持多种常见协议的解析,包括:

  • HTTP协议
  • MySQL协议
  • Redis协议
  • Thrift协议

噪音去除功能

噪音去除功能可以过滤掉不影响回放结果的差异字段,如时间戳等,提高回放准确性。

项目演进历程

Sharingan在内部经历了三个主要发展阶段:

第一阶段:月光宝盒(串行录制、串行回放)利用tcpdump录制流量,改造router层将请求串行化,利用时间来分割请求。

第二阶段:Fastdev(并行录制、串行回放)改造golang源码,利用goroutine+工作委托技术串联区分请求。

第三阶段:Sharingan(并行录制、并行回放)接口和实现分离,golang源码改造部分只暴露接口,具体录制实现单独提供包支持。

使用场景与最佳实践

适用场景

  • 项目重构:在重构过程中确保新代码逻辑正确
  • 回归测试:快速验证系统修改后的功能完整性
  • 性能测试:基于真实流量进行性能验证

最佳实践建议

  1. 录制环境选择:建议在线上环境录制真实流量,确保测试数据的真实性

  2. 回放时机选择:建议在代码修改后进行回放测试,及时发现问题

  3. 噪音处理:合理配置噪音字段,提高回放成功率

  4. 覆盖率分析:定期查看覆盖率报告,优化测试策略

常见问题解决方案

环境配置问题

问题:执行安装脚本时提示wget命令未找到

解决方案:

  • 使用brew安装wget:brew install wget
  • 使用MacPorts安装wget:sudo port install wget

服务启动问题

问题:SUT启动阶段有TCP请求导致回放失败

解决方案:

  • 先启动Replayer-Agent服务
  • 再启动SUT服务

项目部署与扩展

部署模式

Sharingan支持多种部署模式:

  • 单机部署:Replayer-Agent和SUT部署在同一台机器
  • 分离部署:Replayer-Agent和SUT可以分开部署,通过环境变量配置

跨语言支持

新版本支持跨语言流量回放,可以使用录制的PHP流量在Go模块进行回放,满足使用Go重构PHP模块的测试需求。

总结

Sharingan作为一款强大的流量录制回放工具,通过复制真实流量和幻术能力,有效解决了测试数据构造难和环境维护成本高的问题。其丰富的功能和灵活的部署方式,使其成为项目测试过程中不可或缺的重要工具。

通过本指南的学习,您已经掌握了Sharingan的核心功能和使用方法。现在就可以开始使用这款工具,提升您的项目测试效率和代码质量。

【免费下载链接】sharinganSharingan(写轮眼)是一个基于golang的流量录制回放工具,适合项目重构、回归测试等。项目地址: https://gitcode.com/gh_mirrors/sha/sharingan

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/10 19:45:47

解锁小米摄像头的隐藏潜力:Yi-Hack-V4固件深度体验

还在为小米摄像头的功能限制而烦恼吗?想让它从简单的视频设备变身成为智能家居的核心成员?今天,让我们一起来探索 Yi-Hack-V4 这个神奇的项目,看看它如何让你的摄像头"脱胎换骨"!😊 【免费下载链…

作者头像 李华
网站建设 2026/5/3 15:25:29

终极VMware隐身指南:5大核心技术彻底消除虚拟机特征

终极VMware隐身指南:5大核心技术彻底消除虚拟机特征 【免费下载链接】VmwareHardenedLoader Vmware Hardened VM detection mitigation loader (anti anti-vm) 项目地址: https://gitcode.com/gh_mirrors/vm/VmwareHardenedLoader 在数字安全领域&#xff0c…

作者头像 李华
网站建设 2026/5/4 5:20:42

AI图像生成终极指南:从创意变体到专业应用的完整教程

在当今数字化浪潮中,AI图像生成技术正以前所未有的速度改变着我们的视觉创作方式。这项技术不仅能将文字描述转化为精美图像,更能在单张图像基础上生成无限创意变体,为设计师、艺术家和内容创作者提供了前所未有的创作工具。 【免费下载链接】…

作者头像 李华
网站建设 2026/5/1 11:28:35

工业串口调试终极指南:从设备通讯到故障排查

工业串口调试终极指南:从设备通讯到故障排查 【免费下载链接】串口调试工具Commix1.4 Commix 1.4 是一款专为工业控制设计的串口设备调试工具。它能够根据设备的通讯协议,方便地生成多种冗余校验,如Modbus。Commix 1.4 支持串口COM1~COM255&a…

作者头像 李华
网站建设 2026/5/3 11:43:10

AGI:构建下一代GPU性能分析框架的技术实践

AGI:构建下一代GPU性能分析框架的技术实践 【免费下载链接】agi Android GPU Inspector 项目地址: https://gitcode.com/gh_mirrors/ag/agi 在移动图形计算快速发展的今天,GPU性能优化已成为提升用户体验的关键环节。AGI项目作为Android GPU Insp…

作者头像 李华
网站建设 2026/4/23 14:29:51

YOLO目标检测模型部署到生产环境的5个关键步骤

YOLO目标检测模型部署到生产环境的5个关键步骤 在智能制造、自动驾驶和智能安防等场景中,实时视觉感知正从“可选项”变为“基础设施”。摄像头不再只是记录工具,而是智能系统的“眼睛”,而YOLO系列模型正是这些“眼睛”的核心引擎。 但一个训…

作者头像 李华