首页 > 其他分享 >流量录制回放,不是银弹!

流量录制回放,不是银弹!

时间:2024-02-26 16:47:54浏览次数:33  
标签:落地 回放 录制 技术 流量 测试 银弹

前几天在技术交流群,大家又讨论起了流量录制回放的话题。我观察了一下,讨论的人不少,大体有这两种观点:

第一种观点认为,流量录制回放的应用前景很广阔,能大幅度提高测试效率和技术逼格,都想在自己团队落地,但需要一些最佳实践参考;第二种观点则认为只有大厂才能做这个实践,小公司就别想了。

我无法完全赞成或者反对这两种观点,只能结合自己的一些实践经验和看到过的案例,谈谈我对流量录制回放的看法。

 

什么是流量录制回放?

流量录制回放,就是通过录制线上的真实流量,然后在测试或者生产环境模拟请求进行验证的一种技术方法。

简单理解其实和我们利用其他工具(比如JMeter/postman)构造请求,然后根据返回的响应数据判断测试是否通过的本质相同。

两者的区别在于:流量录制回放的机器执行占比较多,而传统的利用测试工具来发送请求手段,人工介入的占比较多。

关于流量录制回放这个概念和技术实践,最早是在2010年,由英国公司Riverbed Technology开发,用于网络性能监控和诊断,以便在出现问题时进行快速诊断和解决。

而国内,最出名的应该是阿里在2019年开源的流量录制回放工具:JVM-Sandbox-Repeater。

JVM-Sandbox-Repeater最初要解决的是线上全链路压测时遇到的一些问题,主要如下:

  • 模拟请求和真实用户请求存在偏差;
  • 线上全链路压测对系统存在一定的侵入;
  • 模拟请求无法完全覆盖特定的业务流程和场景;

后来随着经验的累积和技术的不断迭代优化,也用来解决其他方面的测试问题,比如:

  • 线上bug在测试环境的复现;
  • 服务重构和复杂系统调用关系下的回归测试问题;
  • 业务越复杂,系统越庞大,接口自动化测试用例维护成本越高;

目前关于流量录制回放的工具有不少,下面是主要的几种工具:

  • ngx_http_mirror_module:Nginx内置的模块,提供流量复制功能;
  • TcpCopy:一个开源的流量回放工具,支持多种类型流量的实时及离线回放;
  • Sharingan:基于Golang的流量录制回放工具,通过修改Golang源码,加钩子拦截并镜像流量;
  • GoReplay:Golang编写的开源工具,利用gopacket库,基于libpacp抓包并利用go的协程特性实现回放速率控制;
  • JVM-SANDBOX-Repeater:JVM-Sandbox生态体系下的重要模块,插件式设计可以快速适配各种中间件,封装请求录制/回放基础协议,提供了很多通用可扩展的API;

 

流量录制回放的优劣点

如上所述,流量录制回放技术的应用场景很丰富,在性能测试、回归测试、自动化测试以及线上问题快速修复方面有广泛的应用前景,可以帮助技术团队解决复杂业务场景和系统架构下的稳定性保障以及研发过程效率问题。

但问题来了,看似完美的技术方案在团队中落地时,要面临很多的挑战,主要有如下几点:

  • 绝大多数业务都有各种登录状态校验和风控安全考量,录制的数据面临各种校验不通过的问题;
  • 很多业务场景非幂等,比如某商品只允许同一ID下单一次,比如三方支付回调和三单匹配问题;
  • 很多系统存在各种内外部依赖调用,而录制的数据如果不经过处理直接回放,很多场景会报错;

上述三点主要是技术层面的挑战,但在实际的工作场景中,很多技术无法落地的原因往往不是技术本身的问题,而是投入产出比的问题。

首先,流量录制回放本身对一个团队的基础技术设施建设要求较高,这背后就是高昂的前期投入成本和时间成本。

其次录制的数据要保存、脱敏、加工处理,还要和业务链路以及场景匹配,这个过程只能由工程师人工来进行,且不是短时间就能梳理清楚的,这又是成本的一部分。

再次,一个技术方案从调研到完全落地,这个过程需要一定的试错成本,也需要时间和人力资源去配合,在降本增效大环境下,企业很难在短期内看不到明显直接效益的方向投入巨额成本。

最后也是最关键的一点,技术团队从上到下都背负着KPI,越是优秀复杂的技术,落地所需的时间和人力成本越高,KPI会倒逼领导做出短视的决定,这无关对技术的信仰和认可,只关乎个人的职场生存问题。

也难怪大家说,优秀的技术实践是一种只会发生在大公司的富贵病。

 

技术落地要考虑的因素

最后分享一些我个人实践流量录制回放时的经验总结,大家避免踩坑。

  1. 流量录制回放技术,更适合复杂业务+复杂系统架构+高并发高性能的系统。因为复杂和高并发,背后才有更高的商业利润和问题的修复成本,落地的可行性才越强。
  2. 技术建设和实践是逐步迭代的,如果团队的基础技术设施建设一般,比如CICD、灰度发布、自动化测试和线上全链路压测等没有较为丰富的实践经验,不建议去实践流量录制回放。
  3. 就技术实践来说,流量录制回放要解决这几点核心问题:环境隔离、应急预案、仿真用户数据、数据加工处理以及完善的mock手段。
  4. 流量录制回放并不能直接发现多少线上问题,相比于投入巨额成本和时间去落地流量录制回放,还不如在这几个领域多投入:捋清需求、编码规范、项目管理、分支和环境管理。

最后我要说的是,流量录制回放是看似美味实则难以下咽的技术盛宴,多了解借鉴它的思路没错,但在决定落地前一定要全方位考虑清楚。

标签:落地,回放,录制,技术,流量,测试,银弹
From: https://www.cnblogs.com/imyalost/p/18034653

相关文章

  • ffmpeg摄像头录制+屏幕录制问题
    确保权限系统该打开的权限都打开设备枚举查看设备列表在这个命令中,-devices选项用于列出可用的输入和输出设备。其中,D代表输入设备,E代表输出设备。D通常表示输入设备,如摄像头或麦克风,E通常表示输出设备,如显示器或扬声器。$ffmpeg-hide_banner-devicesDevices:D.=Dem......
  • UI自动化测试代码不想写脚本不想配?RunnerGo一键录制
    想快速配置可视化UI自动化测试脚本?RunnerGo近期上线脚本录制器,根据你的测试操作直接生成UI自动化测试脚本,下面是使用方法Step1:下载录制器点击RunnerGo上方插件按钮下载录制器Step2:录制器使用将插件文件拖入浏览器扩展程序点击打开录制器,在浏览器中进行操作时录制器会将操作录制为......
  • UI自动化测试代码不想写脚本不想配?RunnerGo一键录制
    想快速配置可视化UI自动化测试脚本?RunnerGo近期上线脚本录制器,根据你的测试操作直接生成UI自动化测试脚本,下面是使用方法Step1:下载录制器点击RunnerGo上方插件按钮下载录制器 Step2:录制器使用将插件文件拖入浏览器扩展程序 点击打开录制器,在浏览器中进行操作时录制器......
  • 拉取RTSP流后的几个去向探讨(播放|转RTMP|轻量级RTSP服务|本地录制|GB28181)
    RTSP流的几个去处写了很多关于RTSP播放和转发的blog了,今天我们做个简单的汇总,以大牛直播SDK的Android平台为例,拉取到RTSP流,除了本地播放,还有几个流向:功能实现:1.拉流:通过RTSP直播播放SDK的数据回调接口,拿到音视频数据;2.转推:通过RTMP直播推送SDK的编码后数据输入接口,把回调上来的数......
  • 阿里云参编业内首个代码大模型标准,通义灵码获 2023 AI4SE “银弹” 案例
    日前,中国人工智能产业发展联盟智能化软件工程工作组(AIforSoftwareEngineering,下文简称AI4SE)在京召开首届“AI4SE创新巡航”活动。阿里云作为AI4SE首批成员单位,与中国信息通信研究院等组织联合发起的《智能化软件工程技术和应用要求第一部分:代码大模型》(标准编号AIIA/PG0110......
  • FFmpeg的录制桌面窗口,摄像头,麦克风的命令
    FFmpeg的录制命令命令的作用它可以捕捉桌面窗口,摄像头的视频流和麦克风的音频流。命令的格式ffmpeg[输入格式][输入选项]-i[输入设备索引][输出选项]输出文件其中输入选项和输出选项是可选的,根据实际需要进行修改。输入格式:Windows:dshow:DirectShow输入格式,用......
  • FFmpeg屏幕录制(转)
    一、FFmpeg简介    FFmpeg是领先的多媒体框架,能够解码、编码、转码、混合、解密、流媒体、过滤和播放人类和机器创造的几乎所有东西。它支持最晦涩的古老格式,直到最尖端的格式。无论它们是由某个标准委员会、社区还是公司设计的。它还具有高度的便携性。FFmpeg可以......
  • Microsoft 365 新功能速递:Microsoft Teams(Premium版本)Watermark支持录制播放
    51CTO博客链接:https://blog.51cto.com/u_13637423Microsoft将在2024年2月份推出TeamsMeeting录制的视频应用水印功能,在会议录制播放过程中,电子邮件ID将显示为水印。会议结束后,用户可以在网络和移动平台上访问录制的内容,观看带有水印的录制。说明:水印功能需要TeamsPremium许可证。......
  • UI测试脚本录制器已上线,RunnerGo :UI自动化测试平台
    想快速配置可视化UI自动化测试脚本?RunnerGo近期上线脚本录制器,根据你的测试操作直接生成UI自动化测试脚本,下面是使用方法Step1:下载录制器点击RunnerGo上方插件按钮下载录制器Step2:录制器使用将插件文件拖入浏览器扩展程序点击打开录制器,在浏览器中进行操作时录制器会将操作录制为......
  • UI测试脚本录制器已上线,RunnerGo :UI自动化测试平台
    想快速配置可视化UI自动化测试脚本?RunnerGo近期上线脚本录制器,根据你的测试操作直接生成UI自动化测试脚本,下面是使用方法Step1:下载录制器点击RunnerGo上方插件按钮下载录制器 Step2:录制器使用将插件文件拖入浏览器扩展程序 点击打开录制器,在浏览器中进行操作时录制器......