首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

前几天在技术交流群,大家又讨论起了流量录制回放的话题。...我无法完全赞成或者反对这两种观点,只能结合自己的一些实践经验和看到过的案例,谈谈我对流量录制回放的看法。 什么是流量录制回放?...流量录制回放,就是通过录制线上的真实流量,然后在测试或者生产环境模拟请求进行验证的一种技术方法。...技术落地要考虑的因素 最后分享一些我个人实践流量录制回放时的经验总结,大家避免踩坑。 流量录制回放技术,更适合复杂业务+复杂系统架构+高并发高性能的系统。...流量录制回放并不能直接发现多少线上问题,相比于投入巨额成本和时间去落地流量录制回放,还不如在这几个领域多投入:捋清需求、编码规范、项目管理、分支和环境管理。

50310

流量录制回放技术实践

文章导读 本文主要介绍了流量录制回放技术在压测场景下的应用。...只要传入合适的参数就能录制,易使用 github 上的 star 数较多,知名度较大,且社区活跃 支持流量过滤功能、按倍速回放功能、回放时改写接口参数等功能,功能上贴合我们的需求 资源消耗小,不侵入业务应用...以及在流量较大情况下,资源消耗情况验证 流量过滤功能验证,验证能否过滤指定接口的流量,以及流量的完整性 回放功能验证,验证流量回放是否能如预期工作,回放的请求量是否符合预期 倍速回放验证,验证倍速功能是否符合预期...为了满足内部的使用需求,我们对 GoReplay 进行了二次开发,以便支持 Dubbo 流量录制回放。...加之没有资源来开发和维护这两个工具,因此希望我们基于流量录制回放系统来做这个事情,先把流程跑通。 项目由 QA 团队主导,流量重放与 diff 功能由他们开发,我们则提供底层的录制能力。

5.9K30
您找到你想要的搜索结果了吗?
是的
没有找到

订单流量录制回放探索实践

1.背景介绍1.1 得物 pandora 介绍什么是流量录制回放?...流量录制回放是应用端通过挂载注入录制器探针自动注册到服务端形成录制流量回流,将所有外部调用依赖的响应内容(如数据库、分布式缓存、外部服务响应等)进行完整记录。由平台向回放器分发流量回放指令。...:目前预发跟生产同库,未来会推动落地基于预发 &生产环境的流量回放,尽可能拉近录制时环境和回放时环境的仿真差异,从而降低回放阶段的噪音影响;在得物的整体 QA 体系中,流量回放短期聚焦在回归兜底保障上。...diff 比对异常,显示回放成功,异步线程的回放是一个待攻克的难点。3.3 面临的挑战3.3.1 排错的效率录制流量后对流量进行回放,发现回放结果比对失败的很多。...我们对流量录制回放的实践还处于起步的阶段,一些问题的解法也在探索中 。

1K30

订单流量录制回放探索实践

1.背景介绍 1.1 得物pandora介绍 什么是流量录制回放?...流量录制回放是应用端通过挂载注入录制器探针自动注册到服务端形成录制流量回流,将所有外部调用依赖的响应内容(如数据库、分布式缓存、外部服务响应等)进行完整记录。由平台向回放器分发流量回放指令。...预发环境回归:目前预发跟生产同库,未来会推动落地基于预发&生产环境的流量回放,尽可能拉近录制时环境和回放时环境的仿真差异,从而降低回放阶段的噪音影响; 在得物的整体QA体系中,流量回放短期聚焦在回归兜底保障上...diff比对异常,显示回放成功,异步线程的回放是一个待攻克的难点。 3.3 面临的挑战 3.3.1 排错的效率 录制流量后对流量进行回放,发现回放结果比对失败的很多。...我们对流量录制回放的实践还处于起步的阶段,一些问题的解法也在探索中 。

1K40

1.8 Star的Go流量录制回放工具,录制线上真实请求流量进行回放测试

一、简介 Sharingan是一个基于golang的流量录制回放工具,录制线上真实请求流量进行回放测试,适合项目重构、回归测试等。...1.2、方案 录制线上服务真实请求流量(包括下游调用流量),在线下进行回放,解决构造测试数据难的问题。...相比tcpcopy、goreplay等方案,回放不依赖下游环境。 支持并发流量录制回放录制对服务影响小,回放速度更快。 支持时间重置、噪音去除、批量回放、覆盖率报告、常见协议解析等等。...# 内置提前录制好的3条example示例流量 2.2、接入文档 录制接入文档 「先录制回放接入文档 「后回放」 三、技术方案 3.1、模块划分 recorder: 流量录制模块...四、演进之路 关于流量录制回放,在内部进行过多次探索,主要经历下面三个阶段: 4.1、月光宝盒(串行录制、串行回放录制:利用tcpdump录制流量,改造router层将请求串行化,利用时间来分割请求

2.1K21

一、为什么要使用流量录制回放

因此,对于流量录制回放,我们进行了一些更加深入的探索和落地,也就是我们的月光宝盒平台。 二、什么是流量录制回放? 在介绍具体实践之前,先简单介绍一下什么是流量录制回放?...流量录制回放是通过复制线上真实流量录制)然后在测试环境进行模拟请求(回放)验证代码逻辑正确性。通过采集线上流量在测试环境回放逐一对比每个子调用差异和入口调用结果来发现接口代码是否存在问题。...上述的执行流程允许用户仅凭在控制台配置少量信息就能完成复杂的流量录制回放功能,下面我们将对录制回放的详细过程进行说明。 3.3 流量录制过程 下面是一个流量录制的过程。...通过这种机制在一些场景大幅度减少了录制流量数量,提高了流量的使用效率。 3.4 流量回放过程 下图是流量回放的过程。...回放过程会将录制子调用和回放子调用的入参进行对比,如果参数不一致那么会阻断回放流量,如果参数一致会使用录制子调用的结果进行Mock返回。

4.2K21

流量录制回放在vivo的落地实践

在介绍具体实践之前,先简单介绍一下什么是流量录制回放流量录制回放是通过复制线上真实流量录制)然后在测试环境进行模拟请求(回放)验证代码逻辑正确性。...利用这种机制进行回归测试具备许多优势:首先,通过录制流量取代测试用例简单高效,易于形成丰富的测试用例;其次,回放线上流量能完美模拟用户真实行为,避免人工编写存在的差异性;另外通过对录制数据和回放数据采用对象对比方式能更深入...通过这种机制在一些场景大幅度减少了录制流量数量,提高了流量的使用效率。 3.4 流量回放过程 下图是流量回放的过程。...流量回放是通过获取录制流量的入口调用,再次对迭代后的系统发起调用,然后去验证系统逻辑正确性的过程。和录制不一样的是,回放对于外部的调用都是Mock的,这个过程不会真正的去访问数据库。...回放过程会将录制子调用和回放子调用的入参进行对比,如果参数不一致那么会阻断回放流量,如果参数一致会使用录制子调用的结果进行Mock返回。

1.7K40

ServiceMock录制回放

原理: 利用Sping AOP拦截方法执行从而实现录制回放 匹配算法: 指定具体类和方法 通配包、类和方法名 上述两种的并级 工作模式: 录制:将某个方法的执行过程录制下来,形成MockRecord并序列化成...JSON文件 回放:在某个方法执行时,如果是回放范围内的,则拦截该方法的执行,将匹配方法执行的MockRecord记录作为本次执行的结果进行返回 增量录制:在回放时,如果查无记录,则执行真实的方法并进行录制...接口录制回放:在微服务运行时,通过拦截HTTP请求和处理过程中的指定依赖来自动形成可用于回放的接口自动化用例。 后端重新录制:根据提供的HTTP请求文件来回放并重新录制指定依赖来更新接口自动化用例。...特殊使用场景: 异常录制:如果方法在执行过程中产生了异常,则需要记录该异常,以便于回放时将相同的异常作为该方法被再次执行时的结果。...,按需开启 工具原型见 2021第一篇-流量录制回放完整案例

1.5K10

如何通过GoReplay进行线上流量录制回放

GoReplay简介 GoReplay是一款开源的用来进行http流量录制回放的工具,因此可以通过它来进行线上真实流量录制然后将录制流量回放到测试环境用来确认新开发的功能是否有问题,这样可以极大的提高新功能发布的信心...流量回放验证 GoReplay既支持实时回放也支持先录制下来后续回放,我们先用后一种方式来验证下是否可成功回放。执行如下命令将录制的80端口的流量存到文件 sudo ....现在尝试回放录制的文件requests.gor,且将流量回放到B服务器的81端口,为了确认刚才录制的3次请求有回放到服务器B的81端口可以抓个包确认下(也可以通过Nginx的日志确认),在服务器B执行如抓包命令...这样就可以说明回放流量确实导到测试环境的81端口了,至此流量录制回放已都验证可行。...因为线上流量的丰富性以及真实性是我们平常测试所无法比拟的,通过线上流量录制回放到测试环境可以用来验证很多我们之前传统测试所不能暴露的问题。

6.8K20

国产开源一款流量回放平台产品,无侵入线上流量录制流量回放平台

我想做一个业务监控系统,对线上核心接口采样之后做一些业务校验,实时监控业务正确性 Moonbox(月光宝盒)是一个无侵入的线上流量录制流量回放平台,沿用了jvm-sandbox-repeater的SPI...通过Moonbox可以实现自动化测试、线上问题追踪、和业务监控等能力 名词解释 录制:把一次请求的入参、出参、下游RPC、DB、缓存等序列化并存储的过程 回放:把录制数据还原,重新发起一次或...子调用在录制时会记录该方法的入参、返回值;回放时用该返回值进行MOCK MOCK:在回放时,被拦截的子调用不会发生真实调用,利用字节码动态干预能力,将录制时的返回值直接返回 降噪:在回放时,部分回放子调用入参或者回放流量响应结果和原始流量对比不一致字段...,对这些非必要字段进行排除对比过程 功能介绍 流量录制流量录制模板管理,录制任务下发和录制流量查看 流量回放流量回放任务管理,回放数据查看成功率统计 回放mock:流量录制回放特殊mock(作为子调用...内部有较多新特性正在开发和使用中,预计会陆续会对外开源,包括 丰富更多的插件 mysql的数据存储 基于c++的流量录制回放 docker化平台部署 用例、场景管理能力 定时录制回放能力 地址:https

1.7K80

拨开流量录制回放从基建到业务落地的迷雾

流量录制回放的核心价值是通过直接录制生产的高保真数据,快速地在测试环境中进行回放比对接口返回值和中间链路的验证。...Magic 流量录制回放产品,从回归验证、覆盖率收集、流量复用等多个手段来赋能研发效能质量。...流量录制回放很大程度上能解决这些问题。 接下来,我们从底层基建建设到核心业务场景落地两方面跟大家分享下众安科技在流量录制回放平台的建设实践。...技术方案 整体架构基于录制回放器的主路复制,设定接口采样率、流量分组等策略,应用端通过挂载注入录制器探针自动注册到服务端形成录制流量回流,平台层向回放器分发流量回放指令,这样形成了基本的流量录制回放闭环...图 9:录制流量 然后,从生产录制流量到测试环境回放,我们需要针对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。

74231

FA8# 流量录制回放功能设计点归纳

引言 本文对流量录制回放常见的方案、用途以及设计原理做个归纳整理。...回归特定接口和链路 回归特定业务场景 全量回归特定业务线 2.与全链路压测闭环 解决全链路压测的数据准备问题,通过流量录制回放系统与压测系统打通,形成从流量录制到压测闭环。...优点归纳 支持流量录制 支持流量回放 支持流量过滤 支持插件机制 支持重写(URL、参数、Header等) 支持录制限流 抓包实现与服务语言无关 缺点归纳 只支持HTTP,其他协议需要二次开发 2.jvm-sandbox-repeater...优点归纳 流量录制回放 快速扩展插件机制 已支持众多插件支持http/dubbo/mybatis/java/redis等 缺点归纳 需要侵入运行服务的jvm 依赖虚拟机 三、实现架构图 下图为基于上述两种方案的设计简图...、录制时间、录制流量过滤 控制台对流量回放管理 例如:回放结果状态、时长设定、回放速度等 控制台与压测平台、回归测试平台的通信

89110

CCTech:自研流量录制回放平台介绍01(文末留言)

背景介绍 关于流量录制回放目前是一个比较火的方向,也看过一些测试开发团队在关于流量录制回放的一些文章介绍以及案例,多数还是在现有开源工具的基础上做的一些贴合各自团队业务方向的二次开发,如:go replay...通知开关:用于回放管理-回放任务任务完成时的通知,关闭后,所有该项目下的回放任务将不会生成通知... 录制域名:用于该项目下所有录制任务的流量域名级别过滤,默认为空,即录制所有host的流量......ES模式录制:在创建录制任务时选择ES录制;ES录制分三个环境,对应三个不同环境的流量;开启ES录制后,录制任务会定时从不同环境的ES日志中捞取时间间隔内的流量并进行记录... 6.4 回放管理 回放管理包含三个类功能...用例列表 回放任务 回放策略 用例列表:当录制任务录制流量后,需要进行筛选、组合生成测试用例......回放任务:回放任务将选择的测试用例一一进行回放,然后与录制流量响应进行对比...

1.5K21

2021第一篇-流量录制回放完整案例

在之前的《录制回放实现测试用例自由》一文中,笔者简单介绍了如何通过切面来录制HTTP接口请求和返回,并实现了用例的回放。...仅仅对HTTP接口进行录制,而不去控制数据库等依赖进行控制的话,并不能保证录制出来的用例有足够的稳定性。 本文中,我们将进一步实现一个更为完整的解决方案。 ? 录制 在哪里录制?...这样,只要在应用启动,就可以启动录制了。...在原先录制Controller方法的基础上,再叠加对Mapper的拦截,我们就具备了录制请求和(数据库)依赖的能力。...总结 通过上述实践,我们可以按照如下的方式进行测试用例的开发和执行 1)启用录制功能,对应用的请求和依赖进行录制,形成测试用例(文件) 2)将录制的文件作为测试用例来执行(集成测试) 涉及的技术点 @Aspect

1.9K30

FA12# 流量录制回放智能降噪知识点梳理

引言 已录制流量进行回放,如果回成功率较低,比如20000个请求错误率5%,也有1000个错误, 对开发测试排查成本过高,疲惫抱怨也会增加。...本文降低排查成本提升开发测试效率,侧重在智能降噪这块涉及的知识点进行整理,主要内容有: 常见噪点 智能降噪 文章小结 一、常见噪点 1.时间差异 流量录制回放时间戳不同,代码中使用该时间戳进行逻辑判断...通过三个版本系统进行流量对比,将其噪声过滤: 候选版本:即待提测上线版本 稳定版本:可以部署线上Master分支 稳定版本副本:可以部署线上Master分支 工作原理: 通过向稳定版本和稳定版本副本回放流量...,对比其流量差异得到【噪声 】 通过向候选版本和稳定版本回放流量,对比其流量差异得到【原始区别 】 再从【原始区别】剔除【噪声】得到最终的diff结果 Diffy的Github的地址: https://...github.com/twitter-archive/diffy 三、文章小结 本文罗列了流量回放中常见的噪音以及解决噪音的常见措施。

1.1K20

实现流量回放

GoReplay提供了一个简单的想法,可以重用现有流量进行测试,从而使其功能异常强大。先进的技术可让您分析和记录您的应用程序流量,而不会对其造成影响。这消除了将第三方组件置于关键路径中所带来的风险。...GoReplay是一个用于捕获和回放实时HTTP流量的开源工具,可以通过真实的数据不断在测试环境测试你的系统。 GoReplay提供了独特的屏蔽处理方法。...现在是时候将原始流量重播到另一个环境了。...有的时候,不可能实时回放请求,Gor允许我们保存请求到文件,并且使用它进行回放。...: gor –input-raw :80 –output-file requests.gor HTTP 流量回放和压测: gor –input-file “requests.gor|200%” –output-http

2K20

12.3 实现模拟鼠标录制回放

这些任务可能消耗大量时间和精力,为了解决这个问题,可自行设计并实现一个简单而强大的鼠标录制回放工具,旨在帮助用户轻松录制鼠标动作,通过借助鼠标录制回放工具,用户可以轻松实现自动化操作,从而解放双手。...如下代码段实现了鼠标动作脚本的回放功能,它从之前录制保存的脚本文件中读取鼠标动作信息,并按照脚本中记录的顺序模拟鼠标动作,实现鼠标动作的回放。...调用 SetCursorPos 函数设置鼠标的位置,并使用 Sleep 函数模拟鼠标移动的延时,实现鼠标动作的回放。 循环执行以上步骤,直到脚本文件中的所有动作都被回放完毕。...,通过F2则实现鼠标回放,最后通过GetMessage函数接收全局消息事件,当出现WM_HOTKEY消息则依次判断是否启用录制回放等功能,代码如下所示; int main(int argc, char*...break; } default: break; } } return 0; } 读者可自行编译并运行这段代码,通过录制一段鼠标功能并回放

19520

12.3 实现模拟鼠标录制回放

这些任务可能消耗大量时间和精力,为了解决这个问题,可自行设计并实现一个简单而强大的鼠标录制回放工具,旨在帮助用户轻松录制鼠标动作,通过借助鼠标录制回放工具,用户可以轻松实现自动化操作,从而解放双手。...如下代码段实现了鼠标动作脚本的回放功能,它从之前录制保存的脚本文件中读取鼠标动作信息,并按照脚本中记录的顺序模拟鼠标动作,实现鼠标动作的回放。...调用 SetCursorPos 函数设置鼠标的位置,并使用 Sleep 函数模拟鼠标移动的延时,实现鼠标动作的回放。 循环执行以上步骤,直到脚本文件中的所有动作都被回放完毕。...,通过F2则实现鼠标回放,最后通过GetMessage函数接收全局消息事件,当出现WM_HOTKEY消息则依次判断是否启用录制回放等功能,代码如下所示; int main(int argc, char*...break; } default: break; } } return 0; } 读者可自行编译并运行这段代码,通过录制一段鼠标功能并回放

30420
领券