一种智能压力测试方法及系统与流程

文档序号:31048790发布日期:2022-08-06 06:09阅读:102来源:国知局
一种智能压力测试方法及系统与流程

1.本发明涉及软件测试技术领域,具体而言,涉及一种智能压力测试方法及系统。


背景技术:

2.压力测试在软件产品开发和改进过程中起着举足轻重的作用,压力测试质量的好坏直接影响着软件产品在市场上的认可度。然而,现有技术中对软件进行压力测试时主要是通过手动编写、修改代码来确定压测程序,而测试对象即软件的种类是多种多样的,这种测试方式耗时耗力,测试效率极低,无法满足用户需求。


技术实现要素:

3.为了解决上述背景技术中存在的技术问题,本发明提供了一种智能压力测试方法及系统,以提升压力测试的效率。
4.本发明的第一方面提供了一种智能压力测试方法,包括如下方法步骤:基于被测对象生成测试数据及测试脚本;根据所述测试数据、所述测试脚本对所述被测对象进行压力测试;获取压力测试过程中的指标数据,根据所述指标数据生成测试报告。
5.优选地,所述基于被测对象生成测试数据及测试脚本,包括:对所述被测对象进行扫描以确定第一对象数据,所述第一对象数据包括属性数据、功能数据、接口数据;根据所述第一对象数据获取目标大数据,根据所述目标大数据生成所述测试数据;其中,所述目标大数据为与所述被测对象对应的同类对象的运行数据;根据所述第一对象数据对基础脚本进行自动编译,以生成所述测试脚本。
6.优选地,所述根据所述第一对象数据获取目标大数据,包括:根据所述第一对象数据确定目标对象,调取所述目标对象的预定周期内的运营数据;其中,所述目标对象即为所述同类对象;根据所述接口数据对所述运营数据进行筛选提取,以得出所述目标大数据。
7.优选地,所述根据所述第一对象数据确定目标对象,包括:获取与所述第一对象数据对应的各候选对象的第二对象数据;根据所述第一对象数据和所述第二对象数据计算所述被测对象与各候选对象的相似度,将所述相似度大于或等于阈值的所述候选对象作为所述目标对象。
8.优选地,所述方法还包括:根据所述功能数据和所述接口数据确定功能序列数据;则所述根据所述目标大数据生成所述测试数据,包括:根据所述功能序列数据将所述目标大数据划分为若干数据子集,即为所述测试数据;其中,各所述数据子集与所述功能序列数据一一对应;以及,所述根据所述测试数据、所述测试脚本对所述被测对象进行压力测试,包
括:根据所述功能序列数据确定各所述数据子集的测试序号,根据所述测试序号选用对应的所述数据子集对所述被测对象进行压力测试。
9.优选地,所述方法还包括:根据所述功能序列数据确定功能模块的数量,根据所述功能模块的数量确定所述预定周期的长度;其中,所述预定周期的长度与所述功能模块的数量呈正相关关系。
10.优选地,在所述对所述被测对象进行压力测试之前,还包括:使用测试数据对所述被测对象的各输入接口进行伪测试,监测各输出接口的输出数据;将所述测试数据、所述输出数据输入深度识别模型,根据所述深度识别模型的输出结果对各所述数据子集进行修正。
11.优选地,所述输出结果为各功能模块的关联度;则所述根据所述深度识别模型的输出结果对各所述数据子集进行修正,包括:确定与所述功能模块对应的所述数据子集,根据所述数据子集生成预定数量的随机数据,将所述随机数据补入所述数据子集;其中,所述预定数量与所述关联度呈正相关。
12.本发明的第二方面提供了一种智能压力测试系统,所述系统包括处理模块、存储模块和获取模块,所述处理模块分别与所述存储模块、所述获取模块连接;其中,所述存储模块上存储有计算机程序;所述获取模块,用于获取压力测试相关数据并发送各所述处理模块;所述处理模块用于调用所述计算机程序以实现如上任一项所述的方法。
13.本发明的第三方面提供了一种计算机存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上任一项所述的方法。
14.本发明的第四方面提供了一种电子设备,该电子设备包括处理器和存储器,所述存储器上存储有计算机程序,该计算机程序被处理器运行时执行如上任一项所述的方法。
15.本发明的技术方案中,:基于被测对象生成测试数据及测试脚本;根据所述测试数据、所述测试脚本对所述被测对象进行压力测试;获取压力测试过程中的指标数据,根据所述指标数据生成测试报告。本发明的方案能够自动生成压测数据、测试脚本,无需测试人员手动编写、修改测试代码,极大的降低了测试人员的工作强度,提高了压力测试的工作效率。
附图说明
16.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
17.图1是本发明实施例公开的一种智能压力测试方法的流程示意图。
18.图2是本发明实施例公开的一种智能压力测试系统的结构示意图。
19.图3是本发明实施例公开一种电子设备的结构示意图。
具体实施方式
20.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
21.因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
22.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
23.在本发明的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
24.此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
25.需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
26.实施例一请参阅图1,图1是本发明实施例公开的一种智能压力测试方法的流程示意图。如图1所示,本发明实施例的一种智能压力测试方法,包括如下方法步骤:基于被测对象生成测试数据及测试脚本;根据所述测试数据、所述测试脚本对所述被测对象进行压力测试;获取压力测试过程中的指标数据,根据所述指标数据生成测试报告。
27.在本发明实施例中,如背景技术所述,传统的软件压力测试方法都需要测试人员针对被测软件的属性特点针对性的编写测试代码,在测试不同的软件时则需要重新编写新的测试代码,即便是同类软件,其测试目标也不尽相同,此时至少需要对原测试代码进行修改,这种方式显而易见的需要耗费大量的人力物力。有鉴于此,本发明提供了一种智能的、自动的压力测试方案,即通过分析被测对象的信息自动生成测试数据及对应的测试脚本,据此执行针对被测对象的压力测试,再通过获取测试过程中监测到的指标数据就可以生成测试报告。于是,本发明的方案能够自动生成压测数据、测试脚本,无需测试人员手动编写、修改测试代码,极大的降低了测试人员的工作强度,提高了压力测试的工作效率。
28.其中,指标数据可通过压测平台的监控功能或线上已有的性能监控工具(如apm、zabbix)对系统性能表现及资源使用情况进行监控分析,依托于完善的告警机制,快速定位性能瓶颈。
29.需要进行说明的是,本发明涉及的被测对象可以是各类软件,例如操作系统软件、程序设计软件、应用软件等,但并不局限于此,还可以包括各类插件(plug-in,又称addin、add-in、addon或add-on)。
30.优选地,所述基于被测对象生成测试数据及测试脚本,包括:
对所述被测对象进行扫描以确定第一对象数据,所述第一对象数据包括属性数据、功能数据、接口数据;根据所述第一对象数据获取目标大数据,根据所述目标大数据生成所述测试数据;其中,所述目标大数据为与所述被测对象对应的同类对象的运行数据;根据所述第一对象数据对基础脚本进行自动编译,以生成所述测试脚本。
31.在本发明实施例中,将编写完成的被测对象置于压测系统中,压测系统对其进行扫描分析,进而可以确定出与其相关的属性数据、功能数据、接口数据等对象数据,然后再以上述对象数据为索引调出可用于测试的目标大数据,其中,所述目标大数据为与所述被测对象对应的同类对象的运行数据,而调出的目标大数据可以为历史测试记录中的相关记录数据,也可以为正式上线软件在实际运行过程中监测得到的访问数据、响应数据、指标数据等;同时,本发明还设置了作为测试框架的基础脚本,其包含了测试的基础框架及逻辑,但其中关于个性化的测试对象的部分(包括测试的输入接口、监测的输出接口、测试数据类型及数据量曲线等)为置空,基于前述确定的第一对象数据就可以通过自动编码技术将基础脚本中的置空补充完整,进而形成了针对所述被测对象的完整的测试脚本。
32.其中,属性数据可以包括软件的所属类别(游戏、通讯、办公、购物等)、开发者、发布时间等;功能数据可以为对应软件的功能介绍内容,为了便于软件推广,软件开发商会与软件绑定介绍文本,例如应用商城上对应显示的介绍用的“应用说明”,通过对该介绍文本进行语义识别即可获得功能数据;接口数据可以包括编写完成的软件中所包括的各种输入/输出接口,这些接口可以通过编写时预留的识别标识符或者基于与编写环境对应的接口命名规则等进行准确识别。
33.优选地,所述根据所述第一对象数据获取目标大数据,包括:根据所述第一对象数据确定目标对象,调取所述目标对象的预定周期内的运营数据;其中,所述目标对象即为所述同类对象;根据所述接口数据对所述运营数据进行筛选提取,以得出所述目标大数据。
34.在本发明实施例中,在获取到被测对象的对象数据之后,就可以分析出被测对象的基本信息,据此可以筛选出同类软件,例如已经上线运行的同类软件或者历史记录中被测试过的同类软件,进而可以调取其在一定周期内实际的运营数据,包括各功能模块的累计访问量、峰值访问量、文件传输量等;接着,再将目标对象中与被测对象类似的功能模块/接口对应的运营数据筛选出来,即可得出测试用的目标大数据。可见,本发明的方案能够通过对被测对象自动扫描分析得出其特征数据,据此筛选出类似软件及对应的运行数据,最终利用这些数据来测试被测对象,整个测试过程无需用户过多参与,极大地提高了测试效率。其中,目标大数据可以以dat、csv、json等格式进行存储。
35.需要进行说明的是,测试用的目标大数据应当进行相应的预处理操作,例如,数据脱敏操作,即取出数据中的敏感信息,例如去除用户的身份证号、手机号、卡号、客户号等真实的敏感信息;以及,在对数据进行脱敏操作之前,还可以先对数据进行预处理,包括清除脏数据及重复数据、补全缺失数据等。
36.优选地,所述根据所述第一对象数据确定目标对象,包括:获取与所述第一对象数据对应的各候选对象的第二对象数据;根据所述第一对象数据和所述第二对象数据计算所述被测对象与各所述候选对
象的相似度,将所述相似度大于或等于阈值的所述候选对象作为所述目标对象。
37.在本发明实施例中,基于对象数据中的多个因素指标来计算被测对象和候选对象之间的相似度,将相似度高的候选对象作为目标对象。如此,本发明可以有效解决人工筛选目标对象时的繁琐,而且筛选出的目标对象更为准确,相应地,获取的压力测试数据也就更有代表性,压力测试的结果也就更准确。
38.优选地,所述相似度通过下述公式(1)得出: (1)式中,表示被测对象与第i个候选对象的相似度;表示相似度计算函数;、、为权重系数;s表示被测对象的第一对象数据的特征矩阵,,表示候选对象的第二对象数据的特征矩阵,,其中,与、与、与分别表示属性数据、功能数据、接口数据的特征矩阵;以及,
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)式中,为调节系数,表示两个特征矩阵与之间的距离。
39.在本发明实施例中,本发明采用语义分析的思路来计算被测对象和候选对象之间的相似度,即将被测对象和候选对象的对象数据的特征矩阵分为整体和局部,基于整体和局部的特征数据分别计算相似度,然后再进行加权整合以最终得出二者之间的相似度。具体来说,以被测对象为例,将其特征矩阵分为、、、、、、这样低、中、高三级,候选对象的特征矩阵同样划分,然后基于上述公式(2)分别计算被测对象和候选对象的相似度,再通过权重系数、、将各相似度进行整合以得出二者之间的相似度。
40.需要进行说明的是,权重系数、、依次增大,即《《,而对于权重系数的具体数值设定,本发明不作限定。另外,公式(2)中的特征距离计算函数可以自由设置,例如可以采用欧氏距离(euclidean distance)、马哈拉诺比斯距离(mahalanobis distance)、曼哈顿距离(manhattan distance)、切比雪夫距离(chebyshev distance)、明可斯基距离(minkowski distance)、海明距离(hamming distance)等,本发明对此不作具体限定。
41.优选地,所述方法还包括:根据所述功能数据和所述接口数据确定功能序列数据;则所述根据所述目标大数据生成所述测试数据,包括:根据所述功能序列数据将所述目标大数据划分为若干数据子集,即为所述测试数据;其中,各所述数据子集与所述功能序列数据一一对应;以及,所述根据所述测试数据、所述测试脚本对所述被测对象进行压力测试,包括:根据所述功能序列数据确定各所述数据子集的测试序号,根据所述测试序号选用对应的所述数据子集对所述被测对象进行压力测试。
42.在本发明实施例中,软件的各功能是随着版本的更迭而逐步增加的,在增加新功能之后,用户的访问热情(例如访问速率数据、访问峰值数据)也会对应增加,但是访问热情的增加程度并非线性的,而是以此次功能增加之前的访问热情数据为基础的。例如,增加新
network,rbn) 、循环神经网络(recurrent neural network,rnn)等,本发明对此不作限定,而对于具体的搭建方法,由于属于成熟的现有技术,本发明对此不再赘述。
49.优选地,所述输出结果为各功能模块的关联度;则所述根据所述深度识别模型的输出结果对各所述数据子集进行修正,包括:确定与所述功能模块对应的所述数据子集,根据所述数据子集生成预定数量的随机数据,将所述随机数据补入所述数据子集;其中,所述预定数量与所述关联度呈正相关。
50.在本发明实施例中,深度识别模型的输出结果为对应功能模块与其它功能模块的关联度,与此同时,本发明对各功能模块对应的数据子集进行修正,具体来说,先根据关联度正相关确定出预定数量,再基于数据子集生成预定数量的随机数据,并将其补入数据子集。于是,数据子集的数据量增加就会增加压力测试的强度,如此,更能反映软件测试结果的可靠性,给软件开发人员以更有益的指导。
51.其中,随机数据可以为将数据子集中的数据打乱后重组,然后从中随机挑选预定数量的数据作为随机数据,随机数据的加入可以使得压力测试具有更优良的多样性,测试结果更有实际意义。
52.作为本实施例方案的一种改进,深度识别模型在训练过程中采用如下的损失函数: (3)式中,表示损失函数,表示可学习的权重,表示具有关联关系的输入接口与输出接口组成的数据对的数量;表示经过公式(4)更新后的学习参数; (4)式中,表示初始损失函数,表示学习参数,b使用计算损失函数时输入的数据对的数量。
53.在该改进实施例中,对深度识别模型进行训练时,采用了两步法,即先使用小批量数据来训练深度识别模型,从而得出更新后的学习参数,然后再使用完整数据对深度识别模型进行测试,此时将损失函数更新为公式(3),其中学习参数由初始的变为。采用本发明的训练方法,可以使得深度识别模型的训练效果更佳,避免陷入局部最优。另外,在训练过程中或者训练完成后,还可以使用干扰数据对深度识别模型进行测试,以检验其训练结果,如果训练结果不佳,则可继续通过公式(4)来获得新的学习参数,再将带入公式(3)以继续或重新训练。
54.实施例二请参阅图2,图2是本发明实施例公开的一种智能压力测试系统的结构示意图。如图2所示,本发明实施例的一种智能压力测试系统100,所述系统包括处理模块101、存储模块102和获取模块103,所述处理模块101分别与所述存储模块102、所述获取模块103连接;其中,所述存储模块102上存储有计算机程序;所述获取模块103,用于获取压力测试相关数据并发送各所述处理模块101;
所述处理模块101用于调用所述计算机程序以实现如实施例一所述的方法。
55.该实施例中的一种智能压力测试系统的具体功能参照上述实施例一,由于本实施例中的系统采用了上述实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
56.实施例三请参阅图3,图3是本发明实施例公开的一种电子设备,所述设备包括:存储有可执行程序代码的存储器;与所述存储器耦合的处理器;所述处理器调用所述存储器中存储的所述可执行程序代码,执行如实施例一所述的方法。
57.实施例四本发明实施例还公开了一种计算机存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如实施例一所述的方法。
58.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
59.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
60.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
61.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1