一种流量录制与回放的实现方法与流程

专利2025-04-11  22


本发明涉及一种流量录制与回放的方法,具体为一种流量录制与回放的实现方法,属于性能压测。


背景技术:

1、一般而言,应用在迭代过程中,需要对上线的新版本做很多测试工作,然而,人工构造出来的测试数据很难保证覆盖线上所有场景。一方面是,在压力测试场景下,人工构造数据不能压测出真实线上的性能指标;另一方面是,应用上下游依赖又加剧了测试的复杂程度。

2、r2(record&replay),是一种网络安全工具,能够提供流量录制、功能测试、压力测试、mock等功能,可以用于模拟和重现实际网络流量,以便于网络安全测试、漏洞分析和生产问题重现等场景,解决后台业务系统测试场景中用户的痛点。

3、现有技术中,公开号为cn110474820a所公开的一种流量回放方法,应用于流量发起方,对线上业务流量执行录制,获得录制流量;确定录制流量中的各业务请求之间的依赖关系,并基于依赖关系将录制流量中的业务请求划分为若干个流量分组;针对若干个流量分组中的业务请求分别执行流量回放,将录制流量划分为若干流量分组,针对若干流量分组中的业务请求分别执行流量回放;从而实现了有状态的流量模拟及回放,提高了测试效率,降低了人力成本和系统开销。但是现有技术存在的问题有:一是,只能回放读操作,不能回放写操作,不具备全链路特性,扩展性差;二是,无法全面支持所有业务测试场景,即不能够允许用户注入自定义脚本扩展录制和回放流程中所有功能,进而导致回放场景不够真实以及无法灵活地进行回放操作。


技术实现思路

1、本发明的目的就在于为了解决上述至少一个技术问题而提供一种流量录制与回放的实现方法。

2、本发明通过以下技术方案来实现上述目的:一种流量录制与回放的实现方法,包括流量录制回放工具,流量录制回放工具提供流量录制、功能测试、压力测试和mock功能,且流量录制回放工具允许用户注入自定义脚本扩展流量录制和回放流程中所有功能;

3、该实现方法包括以下步骤:

4、步骤一、录制线上流量:流量录制回放工具在调用端和被调用端进行线上流量的录制,其中,在被调用端录制用于回放测试,包括功能测试和压力测试;在调用端录制用于在回放过程中做mock或者对比;

5、步骤二、全链路回放:线上流量录制后,通过下载到本地进行回放,并在回放过程中根据traceid获取录制时期各个环节的数据;

6、步骤三、回放过程进行mock对比:回放过程中,在调用端mock调依赖。

7、作为本发明再进一步的方案:步骤一中,流量录制回放工具在进行线上流量的录制时,具有零侵入录制和侵入录制两种方式;其中,零侵入录制指对于用户代码和配置零侵入,侵入录制指功能逻辑侵入到进程运行。

8、作为本发明再进一步的方案:步骤二中,线上流量录制后的下载可以在外部节点下载也可以在被调用者本身下载。

9、作为本发明再进一步的方案:步骤三中,调用端mock调依赖包括但不限于mock调rpc和mock调mysql;

10、其中,rpc为远程过程调用协议服务,mysql为关系型数据库管理系统。

11、作为本发明再进一步的方案:流量录制回放工具支持写流量回放,且流量录制回放工具在回放流程中mock写操作api,mock写操作api包括服务层面的rpc接口和存储中间件层面的api,即:通过中间件级别的mock支持写流量回放;其中,api为应用程序接口。

12、作为本发明再进一步的方案:流量录制回放工具基于全链路,且流量录制回放工具和pfinder结合,在录制线上流量的过程中携带traceid将一个应用内部调用链路甚至跨应用的调用链路完整录制下来,具体包括:

13、展示完整的调用链路;

14、在可视化链路上配置录制、回放、mock、对比规则;

15、以traceid为线索存储流量数据;

16、根据traceid检索数据进行回放和对比。

17、作为本发明再进一步的方案:流量录制回放工具支持噪声处理,是让用户指定字段名称,在对比时不对比这些字段,且流量录制回放工具还支持注入对比脚本。

18、本发明的有益效果是:本发明能够在调用端和被调用端进行线上流量的录制,在被调用端录制用于回放测试,包括功能测试和压力测试;在调用端录制用于在回放的时候做mock或者对比,能够实现全链路回放,流量录制后,通过下载到本地进行回放,并在回放过程中根据traceid获取录制时期各个环节的数据,并且本发明所采用的流量录制回放工具允许用户注入自定义脚本扩展录制和回放流程中所有功能,通过脚本进行灵活的扩展,解决常规流量录制回放过程中的精细化管控问题,还能够在回放过程进行mock对比,回放过程中,在调用端mock调依赖,以在回放过程中根据traceid获取录制时期各个环节的数据,从而进行更加全面的mock或者对比,相比其他录制回放成品,回放场景更加真实。



技术特征:

1.一种流量录制与回放的实现方法,其特征在于:包括具有流量录制、功能测试、压力测试和mock功能的流量录制回放工具,且所述流量录制回放工具允许用户注入自定义脚本扩展流量录制和回放流程中所有功能;

2.根据权利要求1所述的实现方法,其特征在于:所述步骤一中,所述流量录制回放工具在进行线上流量的录制时,具有零侵入录制和侵入录制两种方式;其中,所述零侵入录制指对于用户代码和配置零侵入,所述侵入录制指功能逻辑侵入到进程运行。

3.根据权利要求1所述的实现方法,其特征在于:所述步骤二中,线上流量录制后的下载在外部节点下载或是在被调用者本身下载。

4.根据权利要求1所述的实现方法,其特征在于:所述步骤三中,所述调用端mock调依赖包括但不限于mock调rpc和mock调mysql;

5.根据权利要求1所述的实现方法,其特征在于:所述流量录制回放工具支持写流量回放,且所述流量录制回放工具在回放流程中mock写操作api,mock写操作api包括服务层面的rpc接口和存储中间件层面的api;

6.根据权利要求1所述的实现方法,其特征在于:所述流量录制回放工具基于全链路,且所述流量录制回放工具和pfinder结合,在录制线上流量过程中携带traceid将一个应用内部调用链路甚至跨应用的调用链路完整录制下来,具体包括:

7.根据权利要求1所述的实现方法,其特征在于:所述流量录制回放工具支持噪声处理,是让用户指定字段名称,在对比时不对比这些字段,且所述流量录制回放工具还支持注入对比脚本。


技术总结
本发明公开了一种流量录制与回放的实现方法,该实现方法包括录制线上流量、全链路回放和回放过程进行mock对比。在调用端和被调用端进行线上流量的录制,能够实现全链路回放;通过下载到本地进行回放,并在回放过程中根据traceId获取录制时期各个环节的数据;通过脚本进行灵活的扩展,解决常规流量录制和回放过程中的精细化管控问题,还能够在回放过程进行mock对比,回放过程中,在调用端mock调依赖,以在回放过程中根据traceId获取录制时期各个环节的数据,从而进行更加全面的mock或者对比,相比其他录制回放成品,回放场景更加真实。

技术研发人员:杨哲
受保护的技术使用者:语联网(武汉)信息技术有限公司
技术研发日:
技术公布日:2024/12/17
转载请注明原文地址:https://xbbs.6miu.com/read-23341.html