一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种面向kafka高并发数据流的性能测试方法与流程

2022-05-06 06:00:10 来源:中国专利 TAG:


1.本发明涉及性能测试技术领域,尤其涉及一种面向kafka高并发数据流的性能测试方法。


背景技术:

2.当前处于5g、云计算、大数据发展的高峰阶段,以5gc(5g核心网简称)来说,其网络功能高度解耦化和cu分离的特点,导致5gc无论是虚拟网元还是物理网元,数量级成倍正常,也因此带来的是高并发低时延的要求。
3.当前对于kafka消息流的测试,主要为以下三种:
4.第一种,基于kafka自带的producer端发送报文,来实现消息传递的过程。该种测试方法是通过人工手动创造报文数据,在linux执行./kafka-console-producer.sh
‑‑
broker-list{ip}
‑‑
sync
‑‑
topic{topicname}命令以进入到消息发送窗口,进而发送消息。该种方法存在报文更改复杂,无法连续发送,无法满足性能测试的压力需求,容易引入错误参数,无操作界面,专业性较高等诸多问题。且在当前应用上云的大环境下,传统的方式在k8s等集群上,需进行更繁琐的步骤操作后,才能使用。目前仅在部署程序或数据接口联调时会使用。
5.第二种,是基于第三方的kafka连接工具如offset explorer。该类型的工具可以通过配置zookeeper和kafka的地址等信息,来模拟消费端访问kafka,可以实现获取到kafka内消费的信息,发送消息等功能。其优点是已具备可视化界面,但仍未解决多并发需求,易引入错误参数等问题。
6.第三种,是使用jmeter或loadrunner等测试工具,通过人工编写java脚本或引入第三方jar包的方式,实现与kafka的连接。其优点是能达到并发的效果,但是测试数据的创建需要大量的人力成本去构造、检查,且已经完成的脚本无法跨项目使用,并且如果使用第三方的jar包,不仅无法变更连接内容,无法自定义连接参数,也存在一定的安全风险。


技术实现要素:

7.为了解决以上技术问题,本发明提供了一种面向kafka高并发数据流的性能测试方法,符合标准数据流程,灵活性适用性强,功能集成效果明显。
8.本发明的技术方案是:
9.一种面向kafka高并发数据流的性能测试方法,通过定义的流程步骤,将原始用户数据进行拆分,重组分析后,进行测试数据模拟生成并发送的kafka的producer的全测试过程。主要包含以下几个部分:
10.1)测试数据生成
11.2)数据流压入
12.其中,
13.测试数据生成
14.a.预置数据生成规则,目前整体模块已实现基本类型、人员基本类型、互联网、id&uuid,四大类17小类的数据生成规则。其中基本类型包括:整型、双精度型、字符型、日期型(时间戳的生成)、时间型(只针对单日内时间的测试数据)、布尔型、空值。人员类型包括:省份、地址、电子邮件地址、姓名、性别、身份证号、电话号等。
15.①
支持用户自定义数据生成规则,提供一个示例脚本模板,用户可以根据自己需要的数据编写生成脚本,生成符合用户自己要求的数据;
16.②
支持用文件、数据库等方式存储测试数据,基于上述的规则,生成测试数据文件,目前支持csv,xml,json,sql的文件生成。文件放在通用的文件仓库进行存储;
17.③
支持对测试数据进行版本管理及环境管理,生成的测试数据,通过平台选择对应的版本及环境,可以和对应的应用系统版本相关联;
18.④
采用前后端web应用的方式提供服务,系统包含预置规则、规则设置、测试数据三个菜单。预置规则部分可以管理规则的添加、编辑、删除,可以在此部分定义自己数据生成规则。
19.b.规则设置部分添加、编辑、删除应用系统的环境及版本信息,同时能够预置生成数据的表结构,表字段,字段规则(包括正常、异常),可以实现设置上限、下限、数据格式(例:小数后几位,人名的中、英,时间日期的格式等等),支持excel格式表结构的导入、导出。支持对标准数据的base64及hex的转换保存。
20.c.测试数据部分可以根据前面规则设置的内容,支持版本环境选择,文件格式,生成方式(正常、异常、混合)、生产行数,生产测试数据。可实现预览数据生成文件及下载的功能。文件下载可选择csv或xls等不同格式,如导出生成的文件为alarm.csv。
21.数据流压入包含以下功能:
22.a\基本连接信息变更:目前在通信领域的测试过程中,已有故障系统,机房能耗系统,5g omc,nfv网管,idoc等多个产品引入kafka工具,以满足日常使用的数据流处理需求。因此要求本发明具有高度自由性,可随意切换连接方式,来满足所有kafka数据流领域的测试。指定ip端口和topic的命令为
23.sendalarm_bj-bs 10.10.10.10:9092-topic collect_topic
24.//指定kafka的连接ip为10.10.10.10:9092,指定数据流压入的topic名称为
25.collect_topic
26.b\指定发送文件:可将数据生成功能生成的csv格式的数据文件,发送到consumer。命令为
27.sendalarm_bj-bs 10.10.10.10:9092-topic collect_topic-file alarm.csv
28.//在a的基础上,指定要发送的数据流文件为数据生成导出的alarm.csv文件
29.c\日志数据功能:可将发送的数据流全文打印或只打印唯一id,以方便数据查询,故障检索。命令为
30.sendalarm_bj-bs 10.10.10.10:9092-topic collect_topic-file alarm.csv-prt
31.sendalarm_bj-bs 10.10.10.10:9092-topic collect_topic-file alarm.csv-prtid
32.//在b的基础上,指定消息发送日志打印或id日志打印。
33.d\发送速率定义功能:故障或告警类系统,当遇到告警风暴时,瞬时会产生大量的告警,因此要求故障系统需要具有百万级别的告警处理能力。为测试该需求以及系统具备的衍生告警,重大衍生告警,关联告警等功能,需要定义发送速率。此处定义的速率为每秒发送的消息的条数。命令为
34.sendalarm_bj-bs 10.10.10.10:9092-topic collect_topic-file alarm.csv-rate 100
35.//在b的基础上,指定告警发送的速率为100条/秒
36.e\持续发送时长定义功能:对于稳定性的测试,需要进行较长时间,一定压力的数据处理过程。具备发送时长定义的功能,可定义告警持续发送的时间。该功能可与定义发送速率一起使用,更好地满足性能测试的需求。命令为
37.sendalarm_bj-bs 10.10.10.10:9092-topic collect_topic-file alarm.csv-rate 100
[0038]-second 60
[0039]
//在b的基础上,定义告警发送速率为100条/秒,持续发送60秒
[0040]
f\支持重复消息的发送。如故障管理系统,存在告警重复次数,告警沙盘等功能。其他唯一性的系统也可以将重复数据纳入异常测试的范围内,可在alarm.csv内数据完成一轮后,再次执行一轮。命令为
[0041]
sendalarm_bj-bs 10.10.10.10:9092-topic collect_topic-file alarm.csv-times 3
[0042]
//在b的基础上,将alarm.csv文件内容发送3次
[0043]
g\id随机化功能。如需要长时间一定数量的并发,且被测应用不允许重复数据的上报,支持测试id的随机化,如不选择按照数据文件中的id发送,则对发送的消息的id进行随机化,方式为当前时间 顺序数。命令为
[0044]
sendalarm_bj-bs 10.10.10.10:9092-topic collect_topic-file alarm.csv-times 3
[0045]-useoid 2
[0046]
//在f的基础上,不使用alarm.csv中的id信息
[0047]
h\双系统支持,为可执行文件方式,无须部署,可支持windows和linux环境使用
[0048]
i\分布式部署,为满足万以上级别并发数据流的测试需求,支持分布式部署。
[0049]
本发明的有益效果是
[0050]
一是增强了测试数据创建的简易程度和可复用性,使测试数据更贴合实际现网数据,增加了业务类bug发现的可能性。二是使测试人员从频繁的工具切换的操作下解放出来,一个工具即可实现多功能测试。三是减少了节约了性能测试人员脚本编写及调试的时间,使人员更多地释放出时间和精力,往底层业务方向深入,以便于发现更多的隐藏性的bug,提升被测产品的质量。
附图说明
[0051]
图1是本发明的工作流程示意图。
具体实施方式
[0052]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0053]
将以5g omc系统为例
[0054]
5g omc,是核心网层面的操作维护中心,对内可纳管upf、smf、amf等核心网元,对外可纳管aau等基站。其提供资源管理,告警管理,性能管理,信令等多种功能,以此来实现管控网元以及下发指令的需求。
[0055]
本发明是对5g omc的告警部分进行测试,其包含设备本身的告警和性能告警,环境告警三部分。设备本身告警,是核心网向omc的kafka的告警topic中发送数据消息;性能告警是虚机层,采用prometheus获取虚机的cpu、磁盘io等,通过接口的形式发送至omc的kafka的性能topic;环境告警是温控,湿控等感应设备,将环境数据传宋至omc的kafka的环境topic。具体测试过程如下:
[0056]
1、从研发侧获取告警、性能、环境的报文数据,如下为其中一种类型的报文数据,在此作为示例。
[0057]
{"nename":"upf-45","neid":"45","alarmid":"2107270007","alarmname":"inspurtest告警上报超时","alarmtype":1,"alarmlevel":1,"alarmstatustype":0,"alarmeventtime":"2021-07-2719:44:13","alarmclearedtime":"","alarmclearedtype":0,"alarmobject":"upf","alarmlocationinfo":"upf-45","alarmpvflag":0,"alarmdetail":{"dropedpackets":"0","packetlossrate":"-na","recivedpackets":"0"},"specificproblemid":"110","specificproblem":"serviceexpection.","netype":"iupf","alarmobjectuid":"123","alarmobjectname":"upf-221","alarmobjecttype":"manageelement","alarmaddinfo":"alarm test.","alarmeventtitle":"dropinfo","synctype":0,"province":"sn"}
[0058]
2、对字段进行拆分。如上述报文中,nename网元名称为固定值,alarmid为告警id取随机值,时间类格式为yyyy-mm-dd hh:mm:ss,alarmclearedtype为告警是否清除的标志而数据需要0和1循环
[0059]
3、将拆分后的字段及规则录入到数据生成中,指定生成的报文数量如100条并进行生成操作
[0060]
4、将数据以csv格式导出,命名为alarm.csv
[0061]
5、使用数据流压入工具,执行命令将alarm.csv中数据压入kafka中,实现告警部分的测试数据发送工作,命令为
[0062]
sendalarm_bj-bs 10.10.10.10:9092-topic collect_topic-file alarm.csv
[0063]
至此,测试过程中的工具使用部分完成,剩余工作为数据效果的验证,数据比对等测试内容,按正常测试流程和测试方法即可完成。
[0064]
以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献