一种流量回放方法、装置、电子设备及存储介质与流程

文档序号:37688029发布日期:2024-04-18 21:03阅读:34来源:国知局
一种流量回放方法、装置、电子设备及存储介质与流程

本技术涉及流量回放的,尤其涉及一种流量回放方法、装置、电子设备及存储介质。


背景技术:

1、在当前微服务盛行的时代下,对于不断的业务发展、代码重构、技术升级的测试需求,复杂分布式系统如何保证在以上情况能够平滑升级是研发和测试关注的重点,在现有技术中,通过流量回放方法能够有效满足上述测试需求。

2、流量回放是通过复制线上真实流量然后在测试环境进行模拟请求,来验证代码逻辑的正确性。通过采集线上流量在测试环境回放逐一对比每个子调用差异和入口调用结果来发现接口代码是否存在问题。

3、在流量回放过程中,当存在应用(应用a)通过网络请求应用或中间件(b、c、d......)完成一次完整链路的用户行为时,现有的流量回放方法是采集a的完整链路请求报文、响应报文以及a调用b、c、d等的请求报文形成回放用例,在回放环境对比报文的一致性,并上报对比结果。

4、然而,上述方案是通过侵入式开发应用来采集请求报文和对比请求报文一致性的,需要中间件sdk提供扩展点才能实现,在进行技术升级、重构、改造时开发工作量较大,并且无法通用。


技术实现思路

1、本技术旨在至少在一定程度上解决相关技术中的技术问题之一。

2、为此,本技术的第一个目的在于提出一种流量回放方法,以实现非侵入式的线上真实流量和回放流量采集,无需中间件sdk提供扩展点,具有一定的通用性。

3、本技术的第二个目的在于提出一种流量回放装置。

4、本技术的第三个目的在于提出一种电子设备。

5、本技术的第四个目的在于提出一种计算机可读存储介质。

6、本技术的第五个目的在于提出一种计算机程序产品。

7、为达上述目的,本技术第一方面实施例提出了一种流量回放方法,包括:

8、接收目标应用在真实运行环境中的业务请求信息,并基于所述业务请求信息,在真实运行环境中生成业务请求报文,其中所述业务请求报文包括所述目标应用所依赖的其他应用的第一流量数据;

9、调用设置在真实运行环境中的所述目标应用的第一代理工具采集所述业务请求报文,并将所述业务请求信息和所述业务请求报文关联存储;

10、从存储的所述业务请求信息中获取一个或者多个业务请求信息,作为回放请求信息,并在回放环境中进行流量回放,生成回放请求报文,其中所述回放请求报文中包括所述目标应用所依赖的其他应用的第二流量数据;

11、调用设置在回放环境中的所述目标应用的第二代理工具采集所述回放请求报文,并将所述回放请求信息和所述回放请求报文关联存储。

12、进一步地,所述方法还包括:

13、对存储模块中的所述业务请求信息和所述回放请求信息进行标识匹配,获取标识一致的业务请求信息和回放请求信息,作为请求信息对;

14、基于所述请求信息对,从所述存储模块中获取匹配的业务请求报文和回放请求报文,作为请求报文对;

15、对所述请求报文对进行流量对比分析,得到流量对比结果。

16、进一步地,针对第一代理工具和所述第二代理工具中任一代理工具,所述方法还包括:

17、对所述任一代理工具接收到的请求信息和请求报文进行封装,得到封装信息;

18、基于字节码增强技术和所述任一代理工具,生成所述任一代理工具任一的封装信息对应的调用链栈;

19、基于所述调用链栈将所述任一代理工具的封装信息写入至所述存储模块;

20、其中,若所述任一代理工具为第一代理工具,所述任一代理工具的封装信息为业务封装信息;若所述任一代理工具为第二代理工具,所述任一代理工具的封装信息为回放封装信息。

21、进一步地,所述方法还包括:

22、确定所述封装信息中请求信息的标识,并基于所述请求信息的标识标记所述封装信息。

23、进一步地,所述从所述存储模块中获取匹配的业务请求报文和回放请求报文,还包括:

24、对所述业务封装信息的标识和所述回放封装信息的标识进行匹配,得到标识相同的业务封装信息和所述回放封装信息,作为所述封装信息对;

25、从所述封装信息对中的业务封装信息中获取业务请求报文,以及所述封装信息对中的回放封装信息中回放请求报文。

26、进一步地,所述请求信息的标识至少包括所述请求信息的全限定类名、方法名和方法签名中的一种。

27、进一步地,所述第一代理工具中配置有代理配置文件,所述采集所述业务请求报文,还包括:

28、基于所述第一代理工具的代理配置文件,确定所述目标应用的信息采集阈值;

29、在所述信息采集阈值的约束下,通过所述第一代理工具采集所述业务请求报文。

30、进一步地,所述在所述信息采集阈值的约束下,通过所述第一代理工具采集所述业务请求报文,包括:

31、基于所述信息采集阈值确定所述调用链栈的第一数量阈值和所述调用链栈中所述封装信息的第二数量阈值;

32、基于所述第一数量阈值,生成在第一数量约束下的所述调用链栈;

33、基于所述封装信息的第二数量阈值,采集每个所述调用链栈对应的在第二数量约束下的业务请求报文。

34、进一步地,所述从存储的所述业务请求信息中获取一个或多个请求信息,作为回放请求信息,包括:

35、响应于流量回放请求,基于所述流量回放请求从候选回放用例中选择回放用例;

36、从存储的所述业务请求信息中,确定一个或多个与所述目标回放用例对应的业务请求信息,作为所述回放请求信息。

37、为达上述目的,本技术第二方面实施例提出了一种流量回放装置,包括运行模块、第一采集模块、回放模块和第二采集模块;

38、所述运行模块用于接收目标应用在真实运行环境中的业务请求信息,并基于所述业务请求信息,在真实运行环境中生成业务请求报文,其中所述业务请求报文包括所述目标应用所依赖的其他应用的第一流量数据;

39、所述第一采集模块用于调用设置在真实运行环境中的所述目标应用的第一代理工具采集所述业务请求报文,并将所述业务请求信息和所述业务请求报文关联存储;

40、所述回放模块用于从存储的所述业务请求信息中获取一个或者多个业务请求信息,作为回放请求信息,并在回放环境中进行流量回放,生成回放请求报文,其中所述回放请求报文中包括所述目标应用所依赖的其他应用的第二流量数据;

41、所述第二采集模块用于调用设置在回放环境中的所述目标应用的第二代理工具采集所述回放请求报文,并将所述回放请求信息和所述回放请求报文关联存储。

42、进一步地,所述装置还包括对比分析模块;所述对比分析模块用于对存储模块中的所述业务请求信息和所述回放请求信息进行标识匹配,获取标识一致的业务请求信息和回放请求信息,作为请求信息对;并基于所述请求信息对,从所述存储模块中获取匹配的业务请求报文和回放请求报文,作为请求报文对;并对所述请求报文对进行流量对比分析,得到流量对比结果。

43、为达上述目的,本技术第三方面实施例提出了一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;

44、所述存储器存储计算机执行指令;

45、所述处理器执行所述存储器存储的计算机执行指令,以实现如上述的方法。

46、为达上述目的,本技术第四方面实施例提出了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上述的方法。

47、为达上述目的,本技术第五方面实施例提出了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上述的方法。

48、本技术提供的一种流量回放方法、装置、电子设备及存储介质,通过设置在真实运行环境中的第一代理工具获取业务请求报文,并将业务请求信息和业务请求报文关联存储;通过设置在回放环境中的第二代理工具获取回放请求报文,并将回放请求信息和回放请求报文关联存储,在进行对比分析时,确定对应的业务请求信息和回放请求信息,从而选择对应的业务请求报文中的第一流量数据和回放请求报文的中第二流量数据进行对比分析即可,实现了非侵入式的流量回放,无需中间件sdk提供扩展点,同时也具有一定的通用性。

49、本技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1