接口调用完成性能压测及全链路数据监控的方法和系统与流程

文档序号:34896299发布日期:2023-07-26 00:25阅读:39来源:国知局
接口调用完成性能压测及全链路数据监控的方法和系统与流程

本发明属于机场信息处理,尤其涉及接口调用完成性能压测及全链路数据监控的方法和系统。


背景技术:

1、机场大型信息系统采用高性能rpc分布式服务框架dubbo架构,服务提供方provider注册在注册中心registry,服务消费方consumer通过在注册中心订阅的方式进行服务调用。但传统对于dubbo架构的测试方法是采用人工编写代码并运行测试代码来获取测试结果,缺少测试工具的支持,人工编码耗费时间精力效率较低,且不支持全链路性能测试和可视化的监控。而机场核心信息系统上线对系统的性能和压力处理能力要求高,对于性能压力的全链路测试及测试过程及结果的监控是要解决的课题。

2、因此,寻找一种基于dubbo架构的全链路压测方法,既可以减少编码又能实现性能压力测试,完成测试过程的实时链路监控并能直观统计测试结果现有技术急需要解决的问题。

3、通过上述分析,现有技术存在的问题及缺陷为:传统对于dubbo架构的测试方法是采用人工编写代码并运行测试代码来获取测试结果,人工编码耗费时间精力效率较低,且不支持全链路性能测试和监控。


技术实现思路

1、为克服相关技术中存在的问题,本发明公开实施例提供了接口调用完成性能压测及全链路数据监控的方法和系统。尤其涉及一种基于dubbo架构的机场信息系统的性能测试及全链路监控方法。

2、所述技术方案如下:接口调用完成性能压测及全链路数据监控的方法,通过系统程序源代码jar包反编译获取入参形式,基于压力测试工具jmeter的jmeter-plugins-for-apache-dubbo插件进行接口调用,完成入参的参数化设定,并与prometheus的监控、zipkin分布式跟踪系统进行集成,对压力测试过程中全链路性能数据的实时可视化监控以及展示统计测试结果。

3、在一个实施例中,所述通过系统程序源代码jar包反编译获取入参形式包括:

4、在反编译模块中导入软件系统的jar包,获取所述软件系统所有的class、service、接口方法及入参字段,并对入参字段为dto形式的参数进行构造。

5、在一个实施例中,所述class为java中的一个类;

6、所述service用于对一个或多个dao进行的再次封装,封装成一个服务;

7、所述接口方法包括具体测试方案中需要进行性能测试的业务场景的java方法。

8、在一个实施例中,所述对入参字段为dto形式的参数进行构造包括:对接口方法中的dto形式的参数进行参数赋值。

9、所述基于压力测试工具jmeter的jmeter-plugins-for-apache-dubbo插件进行接口调用,完成入参的参数化设定包括以下步骤:

10、(a)测试数据管理模块依据接口方法及入参确定需要进行参数化的测试用例数据编写sql文件,在sql文件中添加被测系统需要进行性能测试的sql逻辑查询语句,并将查询结果以csv文件形式存储,通过jmeter的csv数据文件配置元件进行测试数据参数化映射关系设置;所述测试数据参数化映射关系包括:文件路径、变量名、取值方式。

11、(b)编写性能测试脚本模块通过

12、jmeter-plugins-for-apache-dubbo插件添加dubbo取样器,在取样器的主界面配置dubbo接口的注册中心地址、服务消费方信息,并且将注册中心地址信息保存至jmeter工具中的用户定义变量中;

13、(c)性能测试执行模块根据性能测试方案中对不同的测试场景设置不同的性能测试方式;所述根据性能测试方案中对不同的测试场景设置不同的性能测试方式包括:通过jmeter的thread groupe配置,一键触发执行压力测试,在压力测试中,通过添加的聚合报告、结果树监听器元件对性能测试情况进行查看。

14、所述与prometheus的监控、zipkin分布式跟踪系统进行集成,对压力测试过程中全链路性能数据的实时可视化监控以及展示统计测试结果包括:

15、(i)全链路实时追踪模块进行实时追踪系统调用链路信息;通过zipkin的traceid串联系统调用链路,每次调用通过唯一的trace id定位到执行性能测试的链路,聚集来自各个分布式服务的实时监控数据,根据服务名、标签、响应时间进行查询,过滤耗时长的链路节点,完成性能数据的采集与数据分析;

16、(ii)性能监控及报告模块生成性能监控报告;在dubbo的拦截器中添加prometheus监控,并利用dubbo的filter接口拦截全部服务提供者;配合zipkin链路追踪采集的数据,进行最后性能数据展示,通过集成的grafana插件对采集的数据进行查询后可视化的展示。

17、本发明的另一目的在于提供一种接口调用完成性能压测及全链路数据监控系统实施所述接口调用完成性能压测及全链路数据监控的方法,该系统包括:

18、反编译模块,用于通过反编译方式获取到dubbo服务的代码,查询到需调用接口的入参类型;

19、测试数据管理模块,用于通过sql查询数据库中的参数值,并通过jmeter的csv数据文件设置实现测试数据的关联;

20、性能测试脚本管理模块,用于通过jmeter-plugins-for-apache-dubbo插件,配置接口的调用、注册中心registry设置、服务消费方consumer配置、测试数据的参数化设置;

21、性能测试执行模块,用于通过jmeter的thread groupe配置压力测试方式;

22、全链路实时追踪模块,用于通过zipkin配置,定位到执行测试的调用链路,聚集来自各个分布式服务的实时监控数据,完成数据的采集与数据分析;

23、性能监控及报告模块,用于prometheus的数据采集并集成zipkin链路追踪采集的数据,通过grafana完成性能数据展示。

24、结合上述的所有技术方案,本发明所具备的优点及积极效果为:为解决上述问题,本发明提供一种接口调用完成性能压测及全链路数据监控的方法和系统,该方法可以减少代码编写量即实现接口调用来进行性能压测且能完成测试过程的实时链路监控并能直观统计性能测试结果,即不需要编写调用接口的功能代码就能实现接口调用完成性能压测及全链路性能数据监控。该方法通过系统程序源代码jar包反编译获取入参形式,基于压力测试工具jmeter的jmeter-plugins-for-apache-dubbo插件进行接口调用并完成入参的参数化设定实现性能压力测试,并与prometheus的监控、zipkin分布式跟踪系统进行集成,进行测试过程中全链路性能数据的实时监控并能直观统计测试结果,充分解决传统测试代码编写人工耗时大、并且难以实现全链路性能测试及可视化监控的问题,显著提升测试的效率和质量。

25、相比于现有技术,本发明的优点进一步包括:本发明实现了基于dubbo架构的机场信息系统性能压测,把原先需要大量编码实现接口调用且无法进行全链路监控链路追踪,改进成通过jmeter-plugins-for-apache-dubbo插件配置即可实现性能压测并配合prometheus监控插件及zipkin分布式跟踪系统的集成,实现了性能测试过程的实时链路监控并能直观统计性能测试结果,填补了市面上对于dubbo架构性能测试、全链路监控及性能瓶颈定位分析的技术空白,为千篇一律的性能测试开辟了新的思路。

26、通过本发明实现了针对dubbo架构的系统的性能测试并能进行全链路监控及性能瓶颈定位分析,大大提高了测试效率,降低了测试成本,测试人员只需要关注性能测试工具相关插件、性能监控及链路追踪相关插件的配置正确性,并根据性能测试方案在测试工具中编写性能脚本,无需耗费巨大的工作量在接口调用编码上。本发明显著提升了性能测试的可执行性和测试结果的直观有效性并大大缩短了故障定位排查时间,极大的保障了系统的上线稳定性。

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