news 2026/6/11 18:04:40

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/6/10 11:48:11

Open-AutoGLM停止操作完全手册(专家级实战技巧曝光)

第一章:Open-AutoGLM停止操作的核心原理在大规模语言模型的推理过程中,控制生成行为是确保输出质量与安全性的关键环节。Open-AutoGLM 通过内置的停止机制,实现对生成内容的精准截断,防止无限扩展或生成违规信息。停止条件的触发逻…

作者头像 李华
网站建设 2026/5/30 16:32:25

SeedVR终极指南:如何用AI技术完美修复老旧视频

SeedVR终极指南:如何用AI技术完美修复老旧视频 【免费下载链接】SeedVR-7B 项目地址: https://ai.gitcode.com/hf_mirrors/ByteDance-Seed/SeedVR-7B 还在为模糊不清的老旧视频而烦恼吗?那些承载着珍贵回忆的家庭录像、毕业典礼和旅行记录&#…

作者头像 李华
网站建设 2026/6/11 8:11:34

springboot_ssm明星周边在线购物商城

目录具体实现截图系统所用技术介绍写作提纲核心代码部分展示系统性能结论源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!具体实现截图 springboot_ssm明星周边在线购物商城 系统所用技术介绍 本系统采取了一系列的设计原则&…

作者头像 李华
网站建设 2026/6/11 8:49:13

CosyVoice语音合成实战:从零开始打造智能语音助手

CosyVoice语音合成实战:从零开始打造智能语音助手 【免费下载链接】CosyVoice Multi-lingual large voice generation model, providing inference, training and deployment full-stack ability. 项目地址: https://gitcode.com/gh_mirrors/cos/CosyVoice 还…

作者头像 李华
网站建设 2026/5/30 4:47:50

Atmosphere-NX终极指南:快速修复Switch 19.0.1系统启动错误

Atmosphere-NX终极指南:快速修复Switch 19.0.1系统启动错误 【免费下载链接】Atmosphere Atmosphre is a work-in-progress customized firmware for the Nintendo Switch. 项目地址: https://gitcode.com/GitHub_Trending/at/Atmosphere 紧急故障诊断速查表…

作者头像 李华