一种车辆OTA的Kafka性能测试系统和方法与流程

文档序号:33339315发布日期:2023-03-04 02:03阅读:61来源:国知局
一种车辆OTA的Kafka性能测试系统和方法与流程
一种车辆ota的kafka性能测试系统和方法
技术领域
1.本发明涉及性能测试技术领域,更具体地,涉及一种车辆ota的kafka性能测试系统和方法。


背景技术:

2.远程升级(over-the-air,简称ota),是通过移动通信的空中接口实现对移动终端设备进行远程管理和升级的技术。在汽车智能驾驶领域,ota升级主要是指汽车软件和地图资源包的在线升级,车辆ota升级方式大体分为两种类型。主动升级是由车端向云端发起升级请求或资源下载请求。被动升级是云端平台主动推送升级任务到车端,由车辆判定自身升级条件后,进行升级包下载等操作。
3.kafka是一个分布式的基于发布/订阅模式的消息队列(message queue),具有高吞吐量、持久性、分布式三大特点。当前对于kafka的测试,主要为使用kafka自带的kafka-consumer-perf-test.sh、kafka-producer-perf-test.sh或者第三方kafka客户端发送报文,针对车辆ota场景的测试存在脚本构造复杂、操作步骤繁琐、无法满足业务的定制化需求、无法满足kafka性能测试的压力需求等诸多问题。因此,如何进一步简化车辆ota场景中kafka性能测试是亟待解决的问题。


技术实现要素:

4.本发明针对现有技术中存在的技术问题,提供一种车辆ota的kafka性能测试系统和方法,用以解决如何进一步简化车辆ota场景中kafka性能测试的问题。
5.根据本发明的第一方面,提供了一种车辆ota的kafka性能测试系统,系统包括:场景初始化模块、服务支持模块、jmeter执行模块、场景构建模块和性能监控模块;
6.所述场景初始化模块,用于根据用户选定的测试场景生成其对应的测试数据;
7.所述服务支持模块,用于车辆ota的kafka系统的性能测试提供接口服务;
8.所述jmeter执行模块,用于调用所述服务支持模块中的系统接口服务,对所述kafka系统进行测试;
9.所述场景构建模块,用于通过软件和/或硬件的方式,模拟车辆ota实际场景中的异常场景;
10.所述性能监控模块,用于实时监控所述kafka系统的性能参数。
11.在上述技术方案的基础上,本发明还可以作出如下改进。
12.优选的,所述系统还包括:参数配置模块;
13.所述参数配置模块,用于为用户提供多种测试参数配置方式,其中配置方式至少包括gui界面、数据库、配置文件;其中配置文件方式至少支持json、csv、yaml格式的数据。
14.优选的,所述场景初始化模块包括:场景选择单元和数据模板单元;
15.所述场景选择单元,用于为用户提供多种预设场景的选择,所述多种预设场景至少包括车辆注册、车辆激活、车辆续费、ota全量更新和/或ota增量更新。
16.所述数据模板单元,用于根据客户选择的场景按照其对应的预设数据模板生成测试数据,所述预设数据模板包括业务类型模板、数据类型模板和数据存储类型模板。
17.优选的,所述业务类型模板生成的数据至少包括车辆类型、车辆数量、车辆vin码、激活时长和/或引擎/数据权限;所述数据类型模板生成的数据至少包括int、float、boolean、null、char、日期和/或时间;所述数据存储类型模板生成的数据至少包括文件和/或数据库方式存储测试数据。
18.优选的,所述服务支持模块包括:加解密单元、认证单元、文件读取单元、业务接口调用单元和日志单元;
19.所述加解密单元,用于对车辆的敏感信息进行加密和解密;
20.所述认证单元,用于自动生成认证参数,并将其与业务数据组合计算哈希值。
21.所述文件读取单元,用于从多种文件格式中的文件中读取需要的信息,其中多种文件格式至少包括json、yml、csv、xml;
22.所述业务接口调用单元,用于组装测试数据,调用api进行测试;
23.所述日志单元,用于分级记录用户操作日志和接口交互信息。
24.优选的,所述车辆ota实际场景中的异常场景至少包括网路丢包、网路信号丢失和/或带宽受限。
25.优选的,所述kafka系统的性能参数至少包括:cpu使用率、内存占用大小和磁盘io吞吐量。
26.优选的,所述系统还包括:数据清洗存储模块;
27.所述数据清洗存储模块,用于对系统中的数据进行提取与转换,按预设数据存储规则对数据进行存储。
28.优选的,所述系统还包括:断言模块;
29.所述断言模块,用于根据预设业务要求对数据进行断言,检查数据是否符合预设预期值。
30.优选的,所述系统还包括:结果展示模块;
31.所述结果展示模块,用于通过图表、饼状图和/或折线图,在测试报告上展示测试结果以及显示统计信息。
32.根据本发明的第二方面,提供一种车辆ota的kafka性能测试方法,包括:
33.根据用户选定的测试场景生成其对应的测试数据;
34.根据异常的车辆ota场景构建模拟场景;
35.基于jmeter组件将所述测试数据和所述模拟场景结合,并通过接口服务将结合后的测试数据发送至kafka系统;
36.实时监测所述kafka系统的性能参数,基于所述性能参数进行性能分析。
37.根据本发明的第三方面,提供了一种电子设备,包括存储器、处理器,所述处理器用于执行存储器中存储的计算机管理类程序时实现上述第二方面中车辆ota的kafka性能测试方法的步骤。
38.根据本发明的第四方面,提供了一种计算机可读存储介质,其上存储有计算机管理类程序,所述计算机管理类程序被处理器执行时实现上述第二方面中车辆ota的kafka性能测试方法的步骤。
39.本发明提供的一种车辆ota的kafka性能测试系统和方法,系统包括:场景初始化模块、服务支持模块、jmeter执行模块、场景构建模块和性能监控模块;所述场景初始化模块,用于根据用户选定的测试场景生成其对应的测试数据;所述服务支持模块,用于车辆ota的kafka系统的性能测试提供接口服务;所述jmeter执行模块,用于调用所述服务支持模块中的系统接口服务,对所述kafka系统进行测试;所述场景构建模块,用于通过软件和/或硬件的方式,模拟车辆ota实际场景中的异常场景;所述性能监控模块,用于实时监控所述kafka系统的性能参数。本发明通过测试数据场景化,然后结合车辆ota实际场景中异常情况生成模拟场景,将测试数据基于模拟场景发送至kafka系统,进而对kafka系统进行测试,进一步简化了kafka系统测试的难度,并针对kafka集群的测试更好的与实际业务相结合,有利于更快、更准确的识别出系统的性能瓶颈,并能显著的节省问题分析定位的时间。
附图说明
40.图1为本发明提供的一种车辆ota的kafka性能测试系统结构示意图;
41.图2为本发明提供的车辆ota的kafka性能测试系统网络结构的示意图;
42.图3为本发明提供的车辆ota的kafka性能测试系统架构图;
43.图4为本发明提供的系统运行流程示意图;
44.图5为本发明提供的一种车辆ota的kafka性能测试方法流程图;
45.图6为本发明提供的一种可能的电子设备的硬件结构示意图;
46.图7为本发明提供的一种可能的计算机可读存储介质的硬件结构示意图。
具体实施方式
47.下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
48.请参阅图1,图1为本发明实施例提供的一种车辆ota的kafka性能测试系统结构图示意图,如图1所示,一种车辆ota的kafka性能测试系统,包括:场景初始化模块、服务支持模块、jmeter执行模块、场景构建模块和性能监控模块;
49.其中,所述场景初始化模块,用于根据用户选定的测试场景生成其对应的测试数据;所述服务支持模块,用于车辆ota的kafka系统的性能测试提供接口服务;所述jmeter执行模块,用于调用所述服务支持模块中的系统接口服务,对所述kafka系统进行测试;所述场景构建模块,用于通过软件和/或硬件的方式,模拟车辆ota实际场景中的异常场景;所述性能监控模块,用于实时监控所述kafka系统的性能参数。
50.可以理解的是,上述测试场景可以是预先配置好的,上述测试场景包括但不限于车辆注册、车辆激活、车辆续费、ota全量更新和/或ota增量更新。
51.应理解的是,上述接口服务为用于测试kafka系统性能的接口服务,且上述服务是由与kafka系统关联的业务系统提供的,上述服务包括单不限于:加解密服务、认证服务、文件读取服务、业务接口调用服务和日志操作服务。
52.还可以理解的是,上述jmeter执行模块是采用人工编写jmeter groovy脚本和使用python调用业务api结合的方式实现的执行模块,可以实现对车辆ota场景下各类消息的模拟发送和接收。
53.还应理解的是,上述车辆ota实际场景中的异常场景包括但不限于网路丢包、网路信号丢失和/或带宽受限。在实际应用中,经常会产生由于网络丢包、网络信号丢失和/或带宽受限,从而导致数据发送时丢包以及数据发送延时,从而导致kafka系统数据处理性能下降,因此在测试过程中,可以针对上述场景逐个或者组合进行测试。
54.还需要理解的是,上述kafka系统的性能参数为kafka系统所运行的服务器的性能参数,包括但不限于cpu使用率、内存占用大小和磁盘io吞吐量。本实施例中,通过对kafka系统所在的服务器性能参数进行分析,即可得到不同场景下对kafka性能的评估。
55.作为实施例,所述系统还包括:参数配置模块;所述参数配置模块,用于为用户提供多种测试参数配置方式,其中配置方式至少包括gui界面、数据库、配置文件;其中配置文件方式至少支持json、csv、yaml格式的数据。
56.在具体实施中,上述参数配置模块支持通过gui界面、数据库、配置文件等方式配置测试参数。其中配置文件方式支持json、csv、yaml等格式的数据。
57.作为实施例,所述场景初始化模块包括:场景选择单元和数据模板单元;
58.其中,所述场景选择单元,用于为用户提供多种预设场景的选择,所述多种预设场景至少包括车辆注册、车辆激活、车辆续费、ota全量更新和/或ota增量更新。所述数据模板单元,用于根据客户选择的场景按照其对应的预设数据模板生成测试数据,所述预设数据模板包括业务类型模板、数据类型模板和数据存储类型模板。
59.在具体实现中,上述场景初始化模块还需要根据测试人员选择的场景生成对应的测试数据,其中,支持选择的场景包括但不限于车辆注册、车辆激活、车辆续费、ota全量更新和/或ota增量更新。生成测试数据按分类可以为:

根据业务类型分类,生成的数据包括车辆类型、车辆数量、车辆vin码、激活时长、引擎/数据权限等;

根据数据类型分类,生成的数据包括int、float、boolean、null、char、日期、时间等。

根据数据存储类型分类,支持使用文件、数据库等方式存储测试数据,目前支持csv、json、sql、yml等类型的文件。
60.作为实施例,所述服务支持模块包括:加解密单元、认证单元、文件读取单元、业务接口调用单元和日志单元;
61.其中,所述加解密单元,用于对车辆的敏感信息进行加密和解密;所述认证单元,用于自动生成认证参数,并将其与业务数据组合计算哈希值。所述文件读取单元,用于从多种文件格式中的文件中读取需要的信息,其中多种文件格式至少包括json、yml、csv、xml;所述业务接口调用单元,用于组装测试数据,调用api进行测试;所述日志单元,用于分级记录用户操作日志和接口交互信息。
62.在具体实现中,本发明实施例可以用于针对车辆ota场景下的kafka集群进行测试,因此需针对车辆特有的功能与接口进行适配。其中包括:
63.(1)加解密单元。车辆license、密码等信息需加密传输。
64.(2)认证单元。根据api调用的认证要求,需自动生成accesskey,secretkey,nonce、timestamp等认证参数,并与业务数据组合,再计算出他们的hash,统一发送给后台校验。当前数据通过json格式传输。
65.(3)文件读取单元。支持从json、yml、csv、xml等读取需要的信息。
66.(4)业务接口调用单元。组装测试数据,调用系统api进行测试。
67.(5)日志单元。分级别记录操作日志及接口交互信息。
68.作为实施例,所述系统还包括:数据清洗存储模块;
69.其中,所述数据清洗存储模块,用于对系统中的数据进行提取与转换,按预设数据存储规则对数据进行存储。
70.可以理解的是,上述预设数据存储规则包括但不限于按照csv、json、yaml和/或xml格式进行存储。
71.在具体实现中,上述数据清洗存储模块从业务系统的返回数据以及jmeter生成的测试数据,数据结构、文件格式各不相同,后续各功能模块对数据格式的要求也各不相同,需对数据进行提取与转换,当前支持的输出格式有csv、json、yaml等。
72.作为实施例,所述系统还包括:断言模块;
73.所述断言模块,用于根据预设业务要求对数据进行断言,检查数据是否符合预设预期值。
74.可以理解的是,上述预设业务要求可以是根据用户提前定制的展示需求进行设定的,其中可以针对于业务系统返回的数据、jmeter生成的测试数据以及性能参数的全部数据进行分析,也可以是针对部分关键数据进行分析。
75.应理解的是,上述预设预期值可以测试人员提前设定的,可以针对于不同的测试数据以及返回数据来设定一个合理的性能参数范围。
76.作为实施例,所述系统还包括:结果展示模块;
77.所述结果展示模块,用于通过图表、饼状图和/或折线图,在测试报告上展示测试结果以及显示统计信息。
78.在具体实现中,为了便于上述测试报告的展示,上述测试报告可以支持通过web方式查看以及根据用户的分析需求进行图形切换。
79.可以理解的是,基于背景技术中的缺陷,本发明实施例提出了一种车辆ota的kafka性能测试系统。系统包括:场景初始化模块、服务支持模块、jmeter执行模块、场景构建模块和性能监控模块;所述场景初始化模块,用于根据用户选定的测试场景生成其对应的测试数据;所述服务支持模块,用于车辆ota的kafka系统的性能测试提供接口服务;所述jmeter执行模块,用于调用所述服务支持模块中的系统接口服务,对所述kafka系统进行测试;所述场景构建模块,用于通过软件和/或硬件的方式,模拟车辆ota实际场景中的异常场景;所述性能监控模块,用于实时监控所述kafka系统的性能参数。本发明通过测试数据场景化,然后结合车辆ota实际场景中异常情况生成模拟场景,将测试数据基于模拟场景发送至kafka系统,进而对kafka系统进行测试,进一步简化了kafka系统测试的难度,并针对kafka集群的测试更好的与实际业务相结合,有利于更快、更准确的识别出系统的性能瓶颈,并能显著的节省问题分析定位的时间。
80.在一种可能的应用场景中,在车辆ota场景中,kafka消息的生成和消费主要集中在车辆注册、激活和ota升级等场景中,其中每个场景又涉及多种不同方式的topic生成与消费,因此在测试kafka性能的时候不仅仅需要考虑测试系统的通用性,还需要考虑测试系统便捷性。
81.基于上述通用性和便捷性,本发明实施例提供了一种通用的测试环境,其网络结构参见图2,图2为本发明提供的车辆ota的kafka性能测试系统网络结构的示意图;在图2中,kafka部署在k8s容器集群环境中,并且通过无线与客户端相连,以此模拟真实应用场景
中的车辆ota。
82.可以理解的是,在图2中的客户端和k8s环境服务器还部署有本实施例提供的车辆ota的kafka性能测试系统,系统包括场景初始化模块、服务支持模块、jmeter执行模块、场景构建模块和性能监控模块。其中,场景初始化模块、jmeter执行模块、场景构建模块和性能监控模块可以部署在图2的客户端中,服务支持模块部署在图2的k8s环境服务器中。
83.在图2中的客户端和k8s环境服务器还部署有本实施例提供的车辆ota的kafka性能测试系统,参见图3,图3为本发明提供的车辆ota的kafka性能测试系统架构图,图3中将本实施例中的系统分为四个子系统:测试数据准备与接口调用子系统、jmeter工具子系统、待测环境子系统和测试数据处理与展示子系统,其中测试数据准备与结构调用子系统和jmeter工具子系统可以部署在图2的客户端中,待测环境子系统部署在k8s环境服务器中,测试数据处理与展示可以根据实际的展示需求进行部署。
84.在图3中,测试数据准备与接口调用子系统包括参数配置、数据模板和业务逻辑与接口,待测环境子系统包括资源使用监控模板、待测环境和异常场景构造模块,测试数据处理与展示子系统包括断言模块、数据清洗与存储模块和测试结果展示与统计模块。
85.其中,jmeter工具子系统调用业务系统的注册、激活、ota更新接口,实现对kafka系统的高并发调用。实际并发数量可根据业务需求调整。当并发量较大时,采用部署jmerter集群的方式进行测试。异常场景构建模块可以是在测试数据发送时与测试数据结合进行模拟,也可以是在业务系统返回的结果数据时与结果数据结合进行模拟,本实施例对此不做限制。
86.其中,上述车辆ota的kafka性能测试系统的运行流程可以参见图4,图4为本发明提供的系统运行流程示意图,上述运行流程可以为,用户选择场景,系统(或用户自己)根据场景进行参数定制,系统根据选择的参数以及数据模板生成测试数据,再使用jmeter调用业务测试接口,同时根据测试需要模拟丢包、网络带宽小等实际场景对数据传输的环境进行影响,然后对业务系统返回的数据以及系统监控模块返回的数据进行清洗、提取与转换得到分析需要的基础数据,再将上述基础数据根据预设需求存储在csv、json或数据库中,再对提取的数据字段进行断言,判断是否符合预期值,最后对测试结果进行展示和统计分析。
87.本实施例中,显著简化了测试的难度,使针对kafka集群的测试更好的与实际业务相结合。有利于更快、更准确的识别出系统的性能瓶颈,并能显著的节省问题分析定位的时间。
88.图5为本发明提供的一种车辆ota的kafka性能测试方法流程图,如图5所示,方法包括:
89.步骤s100:根据用户选定的测试场景生成其对应的测试数据;
90.需要说明的是,本实施例方法的执行主体可以是具有数据处理、网络通信及程序运行功能的计算机终端设备,例如:电脑、平板电脑等;也可以是具有相同相似功能的服务器设备,还可以是具有相似功能的云服务器,本实施例对此不做限制。为了便于理解,本实施例及下述各实施例将以服务器设备为例进行说明。
91.步骤s200:根据异常的车辆ota场景构建模拟场景;
92.步骤s300:基于jmeter组件将所述测试数据和所述模拟场景结合,并通过接口服
务将结合后的测试数据发送至kafka系统;
93.步骤s400:实时监测所述kafka系统的性能参数,基于所述性能参数进行性能分析。
94.可以理解的是,本发明提供的一种车辆ota的kafka性能测试方法与前述各实施例提供的车辆ota的kafka性能测试系统相对应,车辆ota的kafka性能测试方法的相关技术特征可参考车辆ota的kafka性能测试系统的相关技术特征,在此不再赘述。
95.请参阅图6,图6为本发明实施例提供的电子设备的实施例示意图。如图6所示,本发明实施例提供了一种电子设备,包括存储器1310、处理器1320及存储在存储器1310上并可在处理器1320上运行的计算机程序1311,处理器1320执行计算机程序1311时实现以下步骤:
96.根据用户选定的测试场景生成其对应的测试数据;根据异常的车辆ota场景构建模拟场景;基于jmeter组件将上述测试数据和上述模拟场景结合,并通过接口服务将结合后的测试数据发送至kafka系统;实时监测上述kafka系统的性能参数,基于上述性能参数进行性能分析。
97.请参阅图7,图7为本发明提供的一种计算机可读存储介质的实施例示意图。如图7所示,本实施例提供了一种计算机可读存储介质1400,其上存储有计算机程序1411,该计算机程序1411被处理器执行时实现如下步骤:
98.根据用户选定的测试场景生成其对应的测试数据;根据异常的车辆ota场景构建模拟场景;基于jmeter组件将上述测试数据和上述模拟场景结合,并通过接口服务将结合后的测试数据发送至kafka系统;实时监测上述kafka系统的性能参数,基于上述性能参数进行性能分析。
99.本发明提供的一种车辆ota的kafka性能测试系统和方法,系统包括:场景初始化模块、服务支持模块、jmeter执行模块、场景构建模块和性能监控模块;所述场景初始化模块,用于根据用户选定的测试场景生成其对应的测试数据;所述服务支持模块,用于车辆ota的kafka系统的性能测试提供接口服务;所述jmeter执行模块,用于调用所述服务支持模块中的系统接口服务,对所述kafka系统进行测试;所述场景构建模块,用于通过软件和/或硬件的方式,模拟车辆ota实际场景中的异常场景;所述性能监控模块,用于实时监控所述kafka系统的性能参数。本发明通过测试数据场景化,然后结合车辆ota实际场景中异常情况生成模拟场景,将测试数据基于模拟场景发送至kafka系统,进而对kafka系统进行测试,进一步简化了kafka系统测试的难度,并针对kafka集群的测试更好的与实际业务相结合,有利于更快、更准确的识别出系统的性能瓶颈,并能显著的节省问题分析定位的时间。
100.需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
101.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
102.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程
图和/或方框图来描述。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式计算机或者其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
103.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
104.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
105.尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
106.显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1