CN116244164A - 测试数据包生成方法、装置、电子设备及存储介质 - Google Patents
测试数据包生成方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116244164A CN116244164A CN202111489889.0A CN202111489889A CN116244164A CN 116244164 A CN116244164 A CN 116244164A CN 202111489889 A CN202111489889 A CN 202111489889A CN 116244164 A CN116244164 A CN 116244164A
- Authority
- CN
- China
- Prior art keywords
- data
- information
- test data
- preset
- generating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种测试数据包生成方法、装置、电子设备及存储介质。该方法包括:响应于测试数据包生成指令,确定对应的预设数据配置信息;根据预设数据配置信息生成多个测试数据,以得到目标测试数据包。本申请利用预设数据配置信息来生成构成维度丰富的测试数据包,预设数据配置信息基于数据维度对待生成的测试数据包进行了构成比例、数据大小(长度)的规范,这样生成的测试数据包中的各个测试数据形式多样不单一,可以提高测试数据包的真实性、提高测试效果。本申请实施例可应用于云技术、人工智能、智慧交通、辅助驾驶等各种场景。
Description
技术领域
本申请涉及互联网通信技术领域,尤其涉及一种测试数据包生成方法、装置、电子设备及存储介质。
背景技术
随着互联网通信技术的发展,互联网产品层出不穷,针对互联网产品的测试也成为一项重要的工作环节。相关技术中,测试数据包中的各个测试数据往往是同一数据大小的随机字符串,这样形式单一的测试数据并不能很好的模拟真实数据以提高测试的有效性。因此,需要提供生成形式丰富的测试数据的方案。
发明内容
为了解决现有技术应用在生成测试数据包时,测试数据形式单一等问题,本申请提供了一种测试数据包生成方法、装置、电子设备及存储介质:
根据本申请的第一方面,提供了一种测试数据包生成方法,所述方法包括:
响应于测试数据包生成指令,确定对应的预设数据配置信息;其中,所述预设数据配置信息描述了待生成的测试数据包中不同数据维度下的待生成数据的构成比例,每个所述数据维度分别指示不同的数据大小信息,所述数据大小信息用于限定所述数据维度下的待生成数据的大小;
根据所述预设数据配置信息生成多个测试数据,以得到目标测试数据包。
根据本申请的第二方面,提供了一种测试数据包生成装置,所述装置包括:
响应模块:用于响应于测试数据包生成指令,确定对应的预设数据配置信息;其中,所述预设数据配置信息描述了待生成的测试数据包中不同数据维度下的待生成数据的构成比例,每个所述数据维度分别指示不同的数据大小信息,所述数据大小信息用于限定所述数据维度下的待生成数据的大小;
生成模块:用于根据所述预设数据配置信息生成多个测试数据,以得到目标测试数据包。
根据本申请的第三方面,提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如第一方面所述的测试数据包生成方法。
根据本申请的第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如第一方面所述的测试数据包生成方法。
根据本申请的第五方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如第一方面所述的测试数据包生成方法。
本申请提供的一种测试数据包生成方法、装置、电子设备及存储介质,具有如下技术效果:
本申请通过响应于测试数据包生成指令,确定对应的预设数据配置信息;然后,根据所述预设数据配置信息生成多个测试数据,以得到目标测试数据包。其中预设数据配置信息描述了待生成的测试数据包中不同数据维度下的待生成数据的构成比例,每个数据维度分别指示不同的数据大小信息,数据大小信息用于限定数据维度下的待生成数据的大小。本申请利用预设数据配置信息来生成构成维度丰富的测试数据包,预设数据配置信息基于数据维度对待生成的测试数据包进行了构成比例、数据大小(长度)的规范,这样生成的测试数据包中的各个测试数据形式多样不单一,可以提高测试数据包的真实性、提高测试效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本申请实施例提供的一种应用环境的示意图;
图2是本申请实施例提供的一种测试数据包生成方法的流程示意图;
图3是本申请实施例提供的根据预设数据配置信息生成多个测试数据的一种流程示意图;
图4也是本申请实施例提供的根据预设数据配置信息生成多个测试数据的一种流程示意图;
图5是本申请实施例提供的生成测试数据包的架构示意图;
图6是本申请实施例提供的解析字符串类信息的一种流程示意图;
图7是本申请实施例提供的一种测试数据包生成装置的组成框图;
图8是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参阅图1,图1是本申请实施例提供的一种应用环境的示意图,该应用环境中可以包括客户端10和服务器端20,客户端10与服务器端20可以通过有线或无线通信方式进行直接或间接地连接。相关对象(比如用户、模拟器)可以通过客户端10向服务器端20发送测试数据包生成指令。服务器端20接收测试数据包生成指令,确定对应的预设数据配置信息;然后,根据预设数据配置信息生成多个测试数据,以得到目标测试数据包。需要说明的是,图1仅仅是一种示例。
客户端10可以是智能手机、电脑(如台式电脑、平板电脑、笔记本电脑)、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、数字助理、智能语音交互设备(如智能音箱)、智能可穿戴设备、智能家电、车载终端等类型的实体设备,也可以是运行于实体设备中的软体,比如计算机程序。客户端所对应的操作系统可以是安卓系统(Android系统)、iOS系统(是由苹果公司开发的移动操作系统)、linux系统(一种操作系统)、Microsoft Windows系统(微软视窗操作系统)等。
服务器端20可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)以及大数据和人工智能平台等基础云计算服务的云服务器。其中服务器可以包括有网络通信单元、处理器和存储器等等。服务器端可以为对应的客户端提供后台服务。
在实际应用中,利用本申请实施例生成的目标测试数据包可用于相关互联网产品的优化。相关互联网产品可以是云技术产品、人工智能产品、智慧交通产品、辅助驾驶产品、直播产品、在线办公产品、电商产品、游戏产品、本地生活产品、即时通信产品、社交产品等。以游戏产品为游戏应用为例,游戏应用所提供的游戏类型可以是动作(ACT)、冒险、角色扮演游戏(Role-playing game,RPG)、叙事、策略、第一人称射击(First-person shooting,FPS)、格斗、解谜、街机、科幻、开放世界、生存等。需要说明的是,对于与用户信息存在关联关系的测试数据,当本申请实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
以下介绍本申请一种测试数据包生成方法的具体实施例,图2是本申请实施例提供的一种测试数据包生成方法的流程示意图,本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图2所示,所述方法可以包括:
S201:响应于测试数据包生成指令,确定对应的预设数据配置信息;其中,所述预设数据配置信息描述了待生成的测试数据包中不同数据维度下的待生成数据的构成比例,每个所述数据维度分别指示不同的数据大小信息,所述数据大小信息用于限定所述数据维度下的待生成数据的大小;
在本申请实施例中,响应于测试数据包生成指令,客户端或者服务器端确定对应的预设数据配置信息。可以理解,客户端和服务器端是测试数据包生成系统的构成对象。客户端可以独立执行步骤S201-S202,服务器端也可以独立执行步骤S201-S202,客户端与服务器端也可以进行交互以执行步骤S201-S205。测试数据包生成指令可以是相关对象(比如用户、模拟器)触发交互界面的指定交互控件而生成的,交互界面可以是客户端或者服务器端提供的。
测试数据包生成指令可以携带业务信息,客户端或者服务器端可以根据业务信息确定对应的预设数据配置信息。业务信息可以指示一个业务或者一类业务,比如手游业务、端游业务、游戏业务等;业务信息可以指示一个互联网产品,比如游戏产品A、游戏产品B等;业务信息可以指示一个互联网产品中的功能模块,比如游戏产品A中的直播功能模块。可以预先建立多个业务信息与多个预设数据配置信息之间的关联关系,这样可以提高根据业务信息确定对应的预设数据配置信息的便捷性和效率。业务信息与预设数据配置信息之间的关联关系也可以根据需要灵活调整。示例性的,针对已存在的关联关系1:业务信息1-预设数据配置信息2,根据需要可以利用已有的预设数据配置信息1替换预设数据配置信息2;也可以利用新增的预设数据配置信息3替换预设数据配置信息2;也可以增加业务信息1与预设数据配置信息4之间的关联关系,并设置预设数据配置信息2和预设数据配置信息4的使用优先级、使用范围等;也可以对预设数据配置信息2进行相关调整;也可以删除关联关系1等。
预设数据配置信息基于数据维度对待生成的测试数据包进行了构成比例、数据大小(长度)的规范。可以理解,一个待生成的测试数据包是由不同数据维度下的待生成数据所构成的,每个数据维度下的待生成数据对应一定的构成比例,同时每个数据维度下的待生成数据满足一定的数据大小要求。示例性的,一个待生成的测试数据包由4个数据维度下的待生成数据构成,这4个数据维度对应的数据大小(长度)和构成比例分别是:第一数据维度对应100KB~300KB的数据大小范围和1%的构成比例,第二数据维度对应30KB~100KB的数据大小范围和4%的构成比例,第三数据维度对应10KB~30KB的数据大小范围和8%的构成比例,第四数据维度对应100B~1KB的数据大小范围和87%的构成比例。需要说明的是,1)若上述两个数据维度(比如第一数据维度和第二数据维度)对应的数据大小范围的边界指示同一个数(比如100),那么其中一个数据维度对应的指定数据大小范围边界(与该数对应的)是闭合的,另一个数据维度对应的指定数据大小范围边界(与该数对应的)是开放的。2)结合上述1),可知不同数据维度所对应的数据大小范围之间可以是连续的,也可以是离散的。
S202:根据所述预设数据配置信息生成多个测试数据,以得到目标测试数据包。
在本申请实施例中,客户端或者服务器端根据预设数据配置信息生成多个测试数据,以得到目标测试数据包。在生成构成目标测试数据包的多个测试数据时,可以参考预设数据配置信息,以保证所生成的目标测试数据包是混合了各数据大小(长度)的测试数据包。多个测试数据的生成可以是并行执行的,也可以是串行执行的。
在一示例性的实施方式中,如图3所示,所述根据所述预设数据配置信息生成多个测试数据,包括:
S301:基于第一预设规则生成指示比例信息的第一随机数;其中,所述第一预设规则用于限定待生成的多个所述第一随机数与构成比例分布相匹配;其中,所述构成比例分布指示所述待生成的测试数据包中不同数据维度下的待生成数据的构成比例;
S302:根据所述第一随机数确定对应的目标数据维度;其中,所述目标数据维度对应的构成比例与所述第一随机数所指示的比例信息相匹配;
S303:根据所述目标数据维度对应的数据大小信息生成指示数据大小信息的第二随机数;
S304:从预设数据源中提取满足所述第二随机数的要求的数据,以得到所述测试数据;
S305:当已生成的多个所述第一随机数与所述构成比例分布相匹配时,停止重复上述生成指示比例信息的第一随机数至得到所述测试数据的步骤,以及基于已得到的多个所述测试数据得到所述多个测试数据。
结合前述步骤S201中的示例,第一预设规则用于限定待生成的多个第一随机数与构成比例分布相匹配,而第一随机数是指示比例信息的,也即多个第一随机数是由1%的第一类第一随机数、4%的第二类第一随机数、8%的第三类第一随机数和87%的第四类第一随机数构成的,其中第一类第一随机数所指示的比例信息可以是1%及其表征范围内的其他数、第二类第一随机数所指示的比例信息可以是4%及其表征范围内的其他数、第三类第一随机数所指示的比例信息可以是8%及其表征范围内的其他数以及第四类第一随机数所指示的比例信息可以是87%及其表征范围内的其他数。可以将[0,1]作为1%的表征范围、将(1,4]作为4%的表征范围、将(4,8]作为8%的表征范围以及将(8,100]作为87%的表征范围;可以将[0,1]作为1%的表征范围、将(1,5]作为4%的表征范围、将(5,13]作为8%的表征范围以及将(13,100]作为87%的表征范围,当然表征范围的划分不局限于此。
基于第一预设规则来生成第一随机数,可以保证多个第一随机数的具体取值是落入一个构成比例范围(比如[0,100])的,同时多个第一随机数的具体取值是按指示构成比例分别的概率产生的。其中任意一个第一随机数的具体取值是命中具体的构成比例(对应待生成的测试数据包中不同数据维度下的待生成数据的构成比例)或者该构成比例的表征范围内的其他数的。
以所生成的第一随机数为2为例,可以根据第一随机数确定对应的目标数据维度:第二数据维度。第二数据维度所对应的数据大小信息为30KB~100KB的数据大小范围,可以据此生成指示数据大小信息的第二随机数。若第二随机数为50,那么从预设数据源中提取满足50KB的数据,以得到测试数据。
上述步骤S301-S304给出了生成一个测试数据的过程,重复该过程即可实现多个测试数据的生成以得到目标测试数据包。具体为:当已生成的多个所述第一随机数与所述构成比例分布相匹配时,停止重复上述生成指示比例信息的第一随机数至得到所述测试数据的步骤,以及基于已得到的多个所述测试数据得到所述多个测试数据。
利用第一预设规则来对第一随机数的取值范围和针对不同构成比例的产生概率进行限制,然后利用第一随机数匹配具体的数据维度,再根据对应的数据大小生成指示数据大小信息的第二随机数,进而根据第二随机数从预设数据源进行测试数据的提取。借助第一预设规则,可以实现生成满足预设数据配置信息所描述的待生成的测试数据包的自动化。第二随机数的引入,可以从局部丰富各个测试数据的大小(长度)差异,以提高目标测试数据包的真实性。
在实际应用中,1)可以借助第一预设规则生成多个第一随机数,以使得已生成的多个第一随机数与构成比例分布相匹配。在此基础上,可以针对每个第一随机数,分别并行执行上述步骤S301-S304。
2)第一随机数除了可以用于确定目标数据维度,还可以用于与构成比例一起确定对应的偏离程度,该偏离程度可以用于调整生成第二随机数所参考的数据大小范围。示例性的,可以结合相关表征范围(比如(1,5])确定第一随机数2与目标数据维度的构成比例的表征数4之间的偏离程度a=25--14=50%,然后利用偏离程度a对30KB~100KB的数据大小范围进行调整,可以取30KB~100KB的左半部分:30KB~65KB,可以据此生成指示数据大小信息的第二随机数。第二随机数直接影响着测试数据的大小(长度),综合第一随机数的信息可以进一步提高测试数据的大小(长度)差异度。
对于生成测试数据时所用到的预设数据源,下面将从两个方面对其进行介绍:
A)预设数据源的数据大小:
客户端或者服务器端可以基于所述预设数据配置信息确定指示数据大小的最大数;然后生成满足所述最大数的要求的数据以得到所述预设数据源。结合前述步骤S201中的示例,可以根据300K确定指示数据大小的最大数300,再生成数据大小为300K的预设数据源。由于测试数据是从预设数据源中提取满足第二随机数的要求的数据而得到的,而第二随机数源于目标数据维度对应的数据大小信息,因此满足最大数的要求的预设数据源能够满足任意一个相关第二随机数的要求的。预设数据源可以提前准备,在生成测试数据时基于第二随机数对其进行拷贝,可以保证测试数据的生成效率和稳定性,可以不用基于第二随机数进行赋值来生成测试数据,可以避免因其带来的低效率、性能损耗。
在实际应用中,可以在初始化预设数据配置信息时,确定指示数据大小的最大数,然后生成一个最大长度(对应最大数)的字符串作为预设数据源。同时,保存预设数据源的存储地址(比如指针)。可以将预设数据源存储于内存、缓存等地方。在生成测试数据时,可以以预设数据源为基础,进行指示第二随机数的长度的字符拷贝。
B)预设数据源的选择:
考虑到真实业务中数据形式的多样可以不仅体现于数据大小,还体现在数据类型、数据来源等。由此,可以为每个数据维度关联对应的数据类型、数据来源等,这样可以提高测试数据的模拟细粒度。这里提及的数据类型、数据来源,在应用于生成测试数据时,可以表现为:根据所述目标数据维度从多个候选数据源中确定出所述预设数据源;其中,所述多个候选数据源对应不同数据类型或者数据来源。
数据类型是数据的格式所属的类型,比如长整型、短整型、单精度浮点型或者双精度浮点型等。数据来源是数据的出处,该出处可以指示更细粒度的业务划分,比如业务版本(如V1.0、V2.0)、业务平台(如手机端、PC端)。可以为不同数据维度关联对应的数据类型和/或数据来源。在已知目标数据维度的基础上,可以根据目标数据维度所关联的数据类型和/或数据来源,从多个候选数据源中确定出相匹配的预设数据源,预设数据源所指示的数据类型和/或数据来源与目标数据维度所关联的数据类型和/或数据来源是相匹配的。
可以基于数据维度所述指示的数据大小信息确定一个最大数,然后利用数据维度所关联的数据类型和/或数据来源生成满足最大数的要求的数据,以得到一个候选数据源。由此,可以得到与多个数据维度相对应的多个候选数据源。
在一示例性的实施方式中,如图4所示,所述根据所述预设数据配置信息生成多个测试数据,包括:
S401:当所述预设数据配置信息为结构体类信息时,基于所述结构体类信息生成所述多个测试数据;其中,所述结构体类信息指示与所述数据维度一一对应的结构体,每个所述结构体携带有对应的比例信息、数据大小范围;
S402:当所述预设数据配置信息为字符串类信息时,解析所述字符串类信息得到所述结构体类信息,以及基于所述结构体类信息生成所述多个测试数据。
预设数据配置信息的类型可以是结构体类型,相应的,预设数据配置信息为结构体类信息。预设数据配置信息的类型可以是字符串类型,相应的,预设数据配置信息为字符串类信息。结构体类信息中以结构体来表征有关数据维度的信息,借助结构体的规范化、易读性可以提高根据预设数据配置信息生成多个测试数据的效率。因此,在根据预设数据配置信息生成多个测试数据时,可以直接基于结构体类信息生成多个测试数据;也可以解析字符串类信息得到结构体类信息,进而基于结构体类信息生成多个测试数据。
相较于结构体类信息,字符串类信息对应更小的数据,这样更方便存储维护,尤其对于大量的预设数据配置信息。字符串类信息所对应的字符串可以是以数据维度为单位对特征字符进行排序得到的,特征字符指示数据维度对应的构成比例和数据大小。示例性的,字符串rules是由特征字符1-10构成的,特征字符i指示[min_len(i),max_len(i),weight(i)],i取上述1-10,min_len(i)指示数据大小的最小数,max_len(i)指示数据大小的最大数,weight(i)指示构成比例。相较于结构体类信息,字符串类信息更便于编辑维护。在实际应用中,可以编辑维护字符串类信息,在需要生成测试数据包时,可以解析字符串类信息得到结构体类信息,进而基于结构体类信息生成多个测试数据。
进一步的,所述基于所述结构体类信息生成所述多个测试数据,可以包括下述步骤:首先,基于第一预设规则生成指示比例信息的第一随机数;其中,所述第一预设规则用于限定待生成的多个所述第一随机数与构成比例分布相匹配;其中,所述构成比例分布是基于各个所述结构体所携带的比例信息得到的;然后,根据所述第一随机数确定对应的目标结构体;其中,所述目标结构体对应的比例信息与所述第一随机数所指示的比例信息相匹配;再者,根据所述目标结构体对应的数据大小范围生成指示数据大小信息的第二随机数;接着,从预设数据源中提取满足所述第二随机数的要求的数据,以得到所述测试数据;最后,当已生成的多个所述第一随机数与所述构成比例分布相匹配时,停止重复上述生成指示比例信息的第一随机数至得到所述测试数据的步骤,以及基于已得到的多个所述测试数据得到所述多个测试数据。
由于结构类信息与预设数据配置信息的相关性,结构体与数据维度的相关性,这里基于结构体类信息生成多个测试数据的过程可以参考前述步骤S301-S305的相关记载,不再赘述。有关预设数据源的介绍可以参考前述记载,不再赘述。
参见图5、6,结构体类信息可以包括结构体数组m_rules[m_rules_size],结构体数组包括多个结构体m_rules[i],每个结构体与一个数据维度相对应,每个结构体携带有对应的比例信息weight(i),每个结构体携带有对应的数据大小范围min_len(i)、max_len(i)。
基于第一预设规则来生成第一随机数w,可以保证多个第一随机数的具体取值是落入一个构成比例范围m_rules_bound的,同时多个第一随机数的具体取值是按指示构成比例分别的概率产生的。在构成比例范围m_rules_bound内产生第一随机数w;遍历结构体数组m_rules[m_rules_size],将第一随机数w与m_rules[i].weight(i)进行匹配,以确定目标结构体m_rules[n];根据m_rules[n]确定数据大小(长度)范围range=m_rules[n].max_len(n)–m_rules[n].min_len(n);在数据大小(长度)范围range内产生第二随机数m;从作为预设数据源的最长字符串m_random_message内截取、拷贝长度为第二随机数m的字符串,该字符串即为本次产生的符合预设数据配置信息的要求的测试数据。其中,m_rules_bound为所有结构体携带的比例信息weight(i)之和,m_rules_size为结构体的个数。若m_rules_size取10,那么i取上述1-10,n取上述1-10。
下面将对解析字符串类信息得到结构体类信息的过程进行介绍:a)按照第二预设规则依次读取所述字符串类信息所对应的字符串;其中,所述第二预设规则用于限定待每次读取的字符是与所述数据维度相对应的,所述字符串是以所述数据维度为单位对特征字符进行排序得到的,所述特征字符指示所述数据维度对应的构成比例和数据大小;b)基于当前读取到的字符构建所述结构体;c)重复上述依次读取所述字符串类信息所对应的字符串至构建所述结构体的步骤,直到完成针对所述字符串的读取或者当前读取次数大于预设的数据维度数量,以及基于已构建的多个所述结构体得到所述结构体类信息。
参考图6,字符串rules是由特征字符1-10构成的,特征字符i指示[min_len(i),max_len(i),weight(i)],i取上述1-10,min_len(i)指示数据大小的最小数,max_len(i)指示数据大小的最大数,weight(i)指示构成比例。
可以利用MesssageBuilder类的Init方法对字符串rules进行解析以得到一个MessageRule结构体数组m_rules[m_rules_size]。其中,m_rules_size为结构体的个数,也即数据维度的个数。
具体为:1)初始化关键变量m_rulses_size、m_rules_bound、final_size、min、max、weight、allow_size、offset。其中m_rulses_size指示由当前读取到的字符所确定的结构体的总个数,m_rules_bound指示由当前读取到的字符所确定的比例之和,final_size指示由当前读取到的字符所确定的指示数据大小的最大数,min指示由当前读取到的字符所确定的当前结构体的最小数(对应数据大小),max指示由当前读取到的字符所确定的当前结构体的最大数(对应数据大小)、weight指示由当前读取到的字符所确定的当前结构体的比例、allow_size指示预设的结构体(数据维度)的个数上限(比如10)、offset指示当前读取到的字符相对字符串rules的偏移值。2)当m_rules_size小于allow_size且offset未指示字符串rules的末尾字符时进入下面3)-7)的循环。3)对当前读取到的字符min、max、weight的取值进行一定的合法性检查。4)为m_rules_bound的取值累加上当前读取到的字符weight的取值。5)将当前读取到的字符min、max、weight的取值以及4)中更新的m_rules_bound的取值赋值给MessageRule结构体数组m_rules[m_rules_size],同时m_rules_size自增。6)对比当前读取到的字符max的取值与final_size的取值的大小,若大于,则赋值给final_size以更新。7)在字符串rules中,从当前读取到的字符的位置开始查找`]`(末尾字符)的位置以赋值给offset,并判断offset是否为末尾字符,若是则退出循环,否则继续循环。8)循环结束后,使用一个字符数组c给final_size长度的随机字符数组m_random_message赋值以得到预设数据源。其中,m_random_message可以指示MessageBuilder类的私有成员字符指针。
由此,结构体类信息可以包括结构体数组m_rules[m_rules_size],结构体数组包括多个结构体m_rules[i],每个结构体与一个数据维度相对应,每个结构体携带有对应的比例信息weight(i),每个结构体携带有对应的参考比例信息m_rules_bound(i)(对应图5中的weight_bound),每个结构体携带有对应的数据大小范围min_len(i)、max_len(i)。那么,在构成比例范围m_rules_bound(所有结构体携带的比例信息weight(i)之和)内产生第一随机数w,遍历结构体数组m_rules[m_rules_size],将第一随机数w与m_rules[i].m_rules_bound(i)进行匹配,以确定目标结构体m_rules[n]。
在实际应用中,本申请实施例所提供的测试数据包生成方案可以用于游戏业务下的服务网格(Service Mesh;可以作为服务间通信的基础设施层)产品的相关测试,比如实现了几十个游戏业务下的服务网格产品的通信数据测试。具体的服务网格产品可以指示名字服务通信网格,该网格针对游戏开发的特点和运维需求,提供易用的高性能和高可靠通信、服务化运营、名字通信及多样的服务治理能力。相应的,通信数据测试涉及的通信数据可以是业务客户端使用该具体的服务网格产品,发送端及接收端之间进行传输的业务数据。通信数据测试涉及的通信数据可以源于大规模通信集群(上万节点组成的一个集群,各个节点之间可以进行通信)。
下面举例其中一个游戏服务网格通信场景,需要测试平均通信数据包大小为6.7KB左右的随机通信数据包,随机通信数据包中混合了4个数据维度的大小包。
通信数据包规则配置为如下:
[100000,300000,1][30000,100000,4][10000,30000,8][100,1000,87]表示此次测试过程中的随机通信数据包由4个数据维度的大小包混合而成,其中100KB~300KB范围内的随机超大数据包占比1%,30KB~100KB范围内的随机大数据包占比4%,10KB~30KB范围内的随机普通数据包占比8%,100B~1KB范围内的随机小包占比87%。
通过上面的通信数据包规则配置,测试桩程序可以以此自动生成的4个数据维度的数据包,且这4个数据维度的数据包是按照配置比例混合收发的,最终产生的平均通信数据包大小为6726B,满足业务测试场景的需求。通信数据包中的数据作为消息体可以和固定长度的消息头相结合以形成消息,以用于传输。
此外,通信数据包规则配置为字符串类信息,测试桩程序可以调用MessageBuilder的Init方法对其进行解析以得到结构体类信息,解析过程中可以生成指示数据大小的最大数的随机字符数组m_random_message,这样可以避免在后续每次生成随机数据的时候都需要重新调用数据的赋值逻辑,可以将相同QPS下90%的CPU占用降低到30%,从而大大提升生成随机数据的效果。
由以上本申请实施例提供的技术方案可见,本申请实施例通过响应于测试数据包生成指令,确定对应的预设数据配置信息;然后,根据所述预设数据配置信息生成多个测试数据,以得到目标测试数据包。其中预设数据配置信息描述了待生成的测试数据包中不同数据维度下的待生成数据的构成比例,每个数据维度分别指示不同的数据大小信息,数据大小信息用于限定数据维度下的待生成数据的大小。本申请利用预设数据配置信息来生成构成维度丰富的测试数据包,预设数据配置信息基于数据维度对待生成的测试数据包进行了构成比例、数据大小(长度)的规范,这样生成的测试数据包中的各个测试数据形式多样不单一,可以提高测试数据包的真实性、提高测试效果。
本申请实施例还提供了一种测试数据包生成装置,如图7所示,该测试数据包生成装置70包括:
响应模块701:用于响应于测试数据包生成指令,确定对应的预设数据配置信息;其中,所述预设数据配置信息描述了待生成的测试数据包中不同数据维度下的待生成数据的构成比例,每个所述数据维度分别指示不同的数据大小信息,所述数据大小信息用于限定所述数据维度下的待生成数据的大小;
生成模块702:用于根据所述预设数据配置信息生成多个测试数据,以得到目标测试数据包。
需要说明的,所述装置实施例中的装置与方法实施例基于同样的发明构思。
本申请实施例提供了一种电子设备,该电子设备包括处理器和存储器,该存储器中存储有至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现如上述方法实施例所提供的测试数据包生成方法。
进一步地,图8示出了一种用于实现本申请实施例所提供的测试数据包生成方法的电子设备的硬件结构示意图,所述电子设备可以参与构成或包含本申请实施例所提供的测试数据包生成装置。如图8所示,电子设备100可以包括一个或多个(图中采用1002a、1002b,……,1002n来示出)处理器1002(处理器1002可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器1004、以及用于通信功能的传输装置1006。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图8所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子设备100还可包括比图8中所示更多或者更少的组件,或者具有与图8所示不同的配置。
应当注意到的是上述一个或多个处理器1002和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到电子设备100(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器1004可用于存储应用软件的软件程序以及模块,如本申请实施例中所述的测试数据包生成方法对应的程序指令/数据存储装置,处理器1002通过运行存储在存储器1004内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的一种测试数据包生成方法。存储器1004可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1004可进一步包括相对于处理器1002远程设置的存储器,这些远程存储器可以通过网络连接至电子设备100。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置1006用于经由一个网络接收或者发送数据。上述的网络具体实例可包括电子设备100的通信供应商提供的无线网络。在一个实例中,传输装置1006包括一个网络适配器(NetworkInterfaceController,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实施例中,传输装置1006可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与电子设备100(或移动设备)的用户界面进行交互。
本申请的实施例还提供了一种计算机可读存储介质,所述存储介质可设置于电子设备之中以保存用于实现方法实施例中一种测试数据包生成方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述方法实施例提供的测试数据包生成方法。
可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是:上述本申请实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (11)
1.一种测试数据包生成方法,其特征在于,所述方法包括:
响应于测试数据包生成指令,确定对应的预设数据配置信息;其中,所述预设数据配置信息描述了待生成的测试数据包中不同数据维度下的待生成数据的构成比例,每个所述数据维度分别指示不同的数据大小信息,所述数据大小信息用于限定所述数据维度下的待生成数据的大小;
根据所述预设数据配置信息生成多个测试数据,以得到目标测试数据包。
2.根据权利要求1所述的方法,其特征在于,所述根据所述预设数据配置信息生成多个测试数据,包括:
基于第一预设规则生成指示比例信息的第一随机数;其中,所述第一预设规则用于限定待生成的多个所述第一随机数与构成比例分布相匹配;其中,所述构成比例分布指示所述待生成的测试数据包中不同数据维度下的待生成数据的构成比例;
根据所述第一随机数确定对应的目标数据维度;其中,所述目标数据维度对应的构成比例与所述第一随机数所指示的比例信息相匹配;
根据所述目标数据维度对应的数据大小信息生成指示数据大小信息的第二随机数;
从预设数据源中提取满足所述第二随机数的要求的数据,以得到所述测试数据;
当已生成的多个所述第一随机数与所述构成比例分布相匹配时,停止重复上述生成指示比例信息的第一随机数至得到所述测试数据的步骤,以及基于已得到的多个所述测试数据得到所述多个测试数据。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
基于所述预设数据配置信息确定指示数据大小的最大数;
生成满足所述最大数的要求的数据以得到所述预设数据源。
4.根据权利要求2所述的方法,其特征在于,在所述从预设数据源中提取满足所述第二随机数的要求的数据,以得到所述测试数据之前,所述方法还包括:
根据所述目标数据维度从多个候选数据源中确定出所述预设数据源;其中,所述多个候选数据源对应不同数据类型或者数据来源。
5.根据权利要求1所述的方法,其特征在于,所述根据所述预设数据配置信息生成多个测试数据,包括:
当所述预设数据配置信息为结构体类信息时,基于所述结构体类信息生成所述多个测试数据;其中,所述结构体类信息指示与所述数据维度一一对应的结构体,每个所述结构体携带有对应的比例信息、数据大小范围;
当所述预设数据配置信息为字符串类信息时,解析所述字符串类信息得到所述结构体类信息,以及基于所述结构体类信息生成所述多个测试数据。
6.根据权利要求5所述的方法,其特征在于,所述基于所述结构体类信息生成所述多个测试数据,包括:
基于第一预设规则生成指示比例信息的第一随机数;其中,所述第一预设规则用于限定待生成的多个所述第一随机数与构成比例分布相匹配;其中,所述构成比例分布是基于各个所述结构体所携带的比例信息得到的;
根据所述第一随机数确定对应的目标结构体;其中,所述目标结构体对应的比例信息与所述第一随机数所指示的比例信息相匹配;
根据所述目标结构体对应的数据大小范围生成指示数据大小信息的第二随机数;
从预设数据源中提取满足所述第二随机数的要求的数据,以得到所述测试数据;
当已生成的多个所述第一随机数与所述构成比例分布相匹配时,停止重复上述生成指示比例信息的第一随机数至得到所述测试数据的步骤,以及基于已得到的多个所述测试数据得到所述多个测试数据。
7.根据权利要求5所述的方法,其特征在于,所述解析所述字符串类信息得到所述结构体类信息,包括:
按照第二预设规则依次读取所述字符串类信息所对应的字符串;其中,所述第二预设规则用于限定待每次读取的字符是与所述数据维度相对应的,所述字符串是以所述数据维度为单位对特征字符进行排序得到的,所述特征字符指示所述数据维度对应的构成比例和数据大小;
基于当前读取到的字符构建所述结构体;
重复上述依次读取所述字符串类信息所对应的字符串至构建所述结构体的步骤,直到完成针对所述字符串的读取或者当前读取次数大于预设的数据维度数量,以及基于已构建的多个所述结构体得到所述结构体类信息。
8.一种测试数据包生成装置,其特征在于,所述装置包括:
响应模块:用于响应于测试数据包生成指令,确定对应的预设数据配置信息;其中,所述预设数据配置信息描述了待生成的测试数据包中不同数据维度下的待生成数据的构成比例,每个所述数据维度分别指示不同的数据大小信息,所述数据大小信息用于限定所述数据维度下的待生成数据的大小;
生成模块:用于根据所述预设数据配置信息生成多个测试数据,以得到目标测试数据包。
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如权利要求1-7任一项所述的测试数据包生成方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1-7任一项所述的测试数据包生成方法。
11.一种计算机程序产品,其特征在于,所述计算机程序产品包括至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1-7任一项所述的测试数据包生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111489889.0A CN116244164A (zh) | 2021-12-08 | 2021-12-08 | 测试数据包生成方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111489889.0A CN116244164A (zh) | 2021-12-08 | 2021-12-08 | 测试数据包生成方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116244164A true CN116244164A (zh) | 2023-06-09 |
Family
ID=86624677
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111489889.0A Pending CN116244164A (zh) | 2021-12-08 | 2021-12-08 | 测试数据包生成方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116244164A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117369407A (zh) * | 2023-10-30 | 2024-01-09 | 载合汽车科技(苏州)有限公司 | 一种汽车电气性能测试系统、方法、装置及存储介质 |
-
2021
- 2021-12-08 CN CN202111489889.0A patent/CN116244164A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117369407A (zh) * | 2023-10-30 | 2024-01-09 | 载合汽车科技(苏州)有限公司 | 一种汽车电气性能测试系统、方法、装置及存储介质 |
CN117369407B (zh) * | 2023-10-30 | 2024-05-10 | 载合汽车科技(苏州)有限公司 | 一种汽车电气性能测试系统、方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109446171B (zh) | 一种数据处理方法和装置 | |
CN109618176B (zh) | 一种直播业务的处理方法、设备和存储介质 | |
CN112584422B (zh) | 5g终端性能获取方法和装置 | |
CN105592443B (zh) | 基于空中下载技术的终端名称显示更新方法、设备及系统 | |
CN110474900A (zh) | 一种游戏协议测试方法及装置 | |
CN111126928B (zh) | 对发布内容审核的方法和装置 | |
CN112307308A (zh) | 一种数据处理方法、装置、设备及介质 | |
CN116244164A (zh) | 测试数据包生成方法、装置、电子设备及存储介质 | |
CN105957133B (zh) | 一种加载贴图的方法和装置 | |
CN107241312A (zh) | 一种权限管理方法及装置 | |
CN112084412B (zh) | 信息推送方法、装置、设备及存储介质 | |
CN110830306B (zh) | 确定网络用户影响力的方法、装置、存储介质及电子设备 | |
CN116339703A (zh) | 总线接口代码生成方法、装置、电子设备及介质 | |
CN107491509B (zh) | 一种用户属性信息挖掘方法、装置和介质 | |
CN112799956B (zh) | 资产识别能力测试方法、装置及系统装置 | |
CN112396151B (zh) | 谣言事件的分析方法、装置、设备及计算机可读存储介质 | |
CN104427546A (zh) | 将移动网络指标与用户体验匹配的方法、仿真平台和系统 | |
CN114530073A (zh) | 基于虚拟现实的培训方法及装置 | |
CN109669956B (zh) | 存储器、用户关系确定方法、装置和设备 | |
CN114625338A (zh) | 随机数的获取方法、存储方法、装置、电子设备及介质 | |
CN114281668A (zh) | 异常用例生成方法、装置、电子设备以及存储介质 | |
Rusak et al. | Physically-based models of low-power wireless links using signal power simulation | |
CN114996434B (zh) | 一种信息抽取方法及装置、存储介质、计算机设备 | |
CN114968491B (zh) | 虚拟资源测试方法、装置、电子设备及存储介质 | |
CN117422602B (zh) | 一种轨道交通规划多维融合方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |