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

技术编号:38266355 阅读:18 留言:0更新日期:2023-07-27 10:23
本发明专利技术属于机场信息处理技术领域,公开了接口调用完成性能压测及全链路数据监控的方法和系统。该方法通过系统程序源代码jar包反编译获取入参形式,基于压力测试工具Jmeter的jmeter

【技术实现步骤摘要】
接口调用完成性能压测及全链路数据监控的方法和系统


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

技术介绍

[0002]机场大型信息系统采用高性能RPC分布式服务框架Dubbo架构,服务提供方Provider注册在注册中心Registry,服务消费方Consumer通过在注册中心订阅的方式进行服务调用。但传统对于Dubbo架构的测试方法是采用人工编写代码并运行测试代码来获取测试结果,缺少测试工具的支持,人工编码耗费时间精力效率较低,且不支持全链路性能测试和可视化的监控。而机场核心信息系统上线对系统的性能和压力处理能力要求高,对于性能压力的全链路测试及测试过程及结果的监控是要解决的课题。
[0003]因此,寻找一种基于Dubbo架构的全链路压测方法,既可以减少编码又能实现性能压力测试,完成测试过程的实时链路监控并能直观统计测试结果现有技术急需要解决的问题。
[0004]通过上述分析,现有技术存在的问题及缺陷为:传统对于Dubbo架构的测试方法是采用人工编写代码并运行测试代码来获取测试结果,人工编码耗费时间精力效率较低,且不支持全链路性能测试和监控。

技术实现思路

[0005]为克服相关技术中存在的问题,本专利技术公开实施例提供了接口调用完成性能压测及全链路数据监控的方法和系统。尤其涉及一种基于Dubbo架构的机场信息系统的性能测试及全链路监控方法。
[0006]所述技术方案如下:接口调用完成性能压测及全链路数据监控的方法,通过系统程序源代码jar包反编译获取入参形式,基于压力测试工具Jmeter的jmeter

plugins

for

apache

dubbo插件进行接口调用,完成入参的参数化设定,并与Prometheus的监控、Zipkin分布式跟踪系统进行集成,对压力测试过程中全链路性能数据的实时可视化监控以及展示统计测试结果。
[0007]在一个实施例中,所述通过系统程序源代码jar包反编译获取入参形式包括:
[0008]在反编译模块中导入软件系统的jar包,获取所述软件系统所有的Class、Service、接口方法及入参字段,并对入参字段为dto形式的参数进行构造。
[0009]在一个实施例中,所述Class为java中的一个类;
[0010]所述Service用于对一个或多个DAO进行的再次封装,封装成一个服务;
[0011]所述接口方法包括具体测试方案中需要进行性能测试的业务场景的java方法。
[0012]在一个实施例中,所述对入参字段为dto形式的参数进行构造包括:对接口方法中的dto形式的参数进行参数赋值。
[0013]所述基于压力测试工具Jmeter的jmeter

plugins

for

apache

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

plugins

for

apache

dubbo插件添加dubbo取样器,在取样器的主界面配置dubbo接口的注册中心地址、服务消费方信息,并且将注册中心地址信息保存至Jmeter工具中的用户定义变量中;
[0017](c)性能测试执行模块根据性能测试方案中对不同的测试场景设置不同的性能测试方式;所述根据性能测试方案中对不同的测试场景设置不同的性能测试方式包括:通过Jmeter的Thread Groupe配置,一键触发执行压力测试,在压力测试中,通过添加的聚合报告、结果树监听器元件对性能测试情况进行查看。
[0018]所述与Prometheus的监控、Zipkin分布式跟踪系统进行集成,对压力测试过程中全链路性能数据的实时可视化监控以及展示统计测试结果包括:
[0019](I)全链路实时追踪模块进行实时追踪系统调用链路信息;通过Zipkin的trace id串联系统调用链路,每次调用通过唯一的trace id定位到执行性能测试的链路,聚集来自各个分布式服务的实时监控数据,根据服务名、标签、响应时间进行查询,过滤耗时长的链路节点,完成性能数据的采集与数据分析;
[0020](II)性能监控及报告模块生成性能监控报告;在dubbo的拦截器中添加Prometheus监控,并利用dubbo的filter接口拦截全部服务提供者;配合Zipkin链路追踪采集的数据,进行最后性能数据展示,通过集成的Grafana插件对采集的数据进行查询后可视化的展示。
[0021]本专利技术的另一目的在于提供一种接口调用完成性能压测及全链路数据监控系统实施所述接口调用完成性能压测及全链路数据监控的方法,该系统包括:
[0022]反编译模块,用于通过反编译方式获取到Dubbo服务的代码,查询到需调用接口的入参类型;
[0023]测试数据管理模块,用于通过sql查询数据库中的参数值,并通过Jmeter的csv数据文件设置实现测试数据的关联;
[0024]性能测试脚本管理模块,用于通过jmeter

plugins

for

apache

dubbo插件,配置接口的调用、注册中心Registry设置、服务消费方Consumer配置、测试数据的参数化设置;
[0025]性能测试执行模块,用于通过Jmeter的Thread Groupe配置压力测试方式;
[0026]全链路实时追踪模块,用于通过Zipkin配置,定位到执行测试的调用链路,聚集来自各个分布式服务的实时监控数据,完成数据的采集与数据分析;
[0027]性能监控及报告模块,用于Prometheus的数据采集并集成Zipkin链路追踪采集的数据,通过Grafana完成性能数据展示。
[0028]结合上述的所有技术方案,本专利技术所具备的优点及积极效果为:为解决上述问题,本专利技术提供一种接口调用完成性能压测及全链路数据监控的方法和系统,该方法可以减少代码编写量即实现接口调用来进行性能压测且能完成测试过程的实时链路监控并能直观
统计性能测试结果,即不需要编写调用接口的功能代码就能实现接口调用完成性能压测及全链路性能数据监控。该方法通过系统程序源代码jar包反编译获取入参形式,基于压本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种接口调用完成性能压测及全链路数据监控的方法,其特征在于,该方法通过系统程序源代码jar包反编译获取入参形式,基于压力测试工具Jmeter的jmeter

plugins

for

apache

dubbo插件进行接口调用,完成入参的参数化设定,并与Prometheus的监控、Zipkin分布式跟踪系统进行集成,对压力测试过程中全链路性能数据的实时可视化监控以及展示统计测试结果。2.根据权利要求1所述的接口调用完成性能压测及全链路数据监控的方法,其特征在于,所述通过系统程序源代码jar包反编译获取入参形式包括:在反编译模块(1)中导入软件系统的jar包,获取所述软件系统所有的Class、Service、接口方法及入参字段,并对入参字段为dto形式的参数进行构造。3.根据权利要求2所述的接口调用完成性能压测及全链路数据监控的方法,其特征在于,所述Class为java中的一个类;所述Service用于对一个或多个DAO进行的再次封装,封装成一个服务;所述接口方法包括具体测试方案中需要进行性能测试的业务场景的java方法。4.根据权利要求2所述的接口调用完成性能压测及全链路数据监控的方法,其特征在于,所述对入参字段为dto形式的参数进行构造包括:对接口方法中的dto形式的参数进行参数赋值。5.根据权利要求1所述的接口调用完成性能压测及全链路数据监控的方法,其特征在于,所述基于压力测试工具Jmeter的jmeter

plugins

for

apache

dubbo插件进行接口调用,完成入参的参数化设定包括以下步骤:(a)测试数据管理模块(2)依据接口方法及入参确定需要进行参数化的测试用例数据编写sql文件,在sql文件中添加被测系统需要进行性能测试的sql逻辑查询语句,并将查询结果以csv文件形式存储,通过Jmeter的csv数据文件配置元件进行测试数据参数化映射关系设置;(b)编写性能测试脚本模块(3)通过jmeter

plugins

for

apache

dubbo插件添加dubbo取样器,在取样器的主界面配置dubbo接口的注册中心地址、服务消费方信息,并且将注册中心地址信息保存至Jmeter工具中的用户定义变量中;(c)性能测试执行模块(4)根据性能测试方案中对不同的测试场景设置不同的性能测试方式。6.根据权利要求5所述的接口调用完成性能压测及全链路数据监控的方法,其特征在于,在步骤(a)中,所述测试数据参数化映射关系包括:文件路径、变...

【专利技术属性】
技术研发人员:顾文陈娟张芳孙瀚博倪守娟张丽刘伟刘晓疆
申请(专利权)人:青岛民航凯亚系统集成有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1