一种基于压力测试的性能评估方法及装置与流程

文档序号:26139453发布日期:2021-08-03 14:23阅读:91来源:国知局
一种基于压力测试的性能评估方法及装置与流程

本发明涉及软件测试技术领域,具体涉及一种基于压力测试的性能评估方法及装置。



背景技术:

目前,软件在完成开发之后,可以通过压力测试对软件的性能进行评估。

现有技术中,如果要按照实际生产情况去进行压力测试通常需要庞大的测试数据量,可以达到千万甚至是上亿的级别。而在实际的压力测试中,测试数据量有限并且为了提高测试效率,测试人员会等比例减少测试数据量,例如如果理论上需要2亿的数据量,实际测试中采用500万数据量,获得500万数据量对应的测试结果等比例的放大,作为2亿数据量的测试结果,然而通过上述过程获得的测试结果往往与实际投产后的情况存在较大差异,性能评估存在较大的误差。

因此,如何提出一种基于压力测试的性能评估方法,能够更准确地对软件的性能进行评估成为本领域需要解决的重要课题。



技术实现要素:

针对现有技术中的问题,本发明实施例提供一种基于压力测试的性能评估方法及装置,能够至少部分地解决现有技术中存在的问题。

一方面,本发明提出一种基于压力测试的性能评估方法,包括:

对目标对象进行n次压力测试,获得n个性能指标的测试值;其中,每次压力测试所采用的测试数据量不同并且n个测试数据量按预设趋势变化;n为大于等于3的正整数;

根据n个性能指标的测试值以及对应的测试数据量拟合获得性能评估图;

根据所述性能评估图获得性能评估结果。

进一步地,所述性能指标为执行耗时、cpu使用率或者内存使用量。

进一步地,每个测试数据量对应一个数量级别。

进一步地,n个测试数据量构成等差数列。

进一步地,所述根据所述性能评估图获得性能评估结果包括:

若所述性能评估图中所述测试数据量与所述性能指标不相关,则输出不存在性能风险;

若所述性能评估图中所述测试数据量与所述性能指标呈对数相关,则输出存在一级性能风险;

若所述性能评估图中所述测试数据量与所述性能指标呈线性正相关,则输出存在二级性能风险;

若所述性能评估图中所述测试数据量与所述性能指标呈指数相关,则输出存在三级性能风险。

另一方面,本发明提供一种基于压力测试的性能评估装置,包括:

测试模块,用于对目标对象进行n次压力测试,获得n个性能指标的测试值;其中,每次压力测试所采用的测试数据量不同并且n个测试数据量按预设趋势变化;n为大于等于3的正整数;

拟合模块,用于根据n个性能指标的测试值以及对应的测试数据量拟合获得性能评估图;

获得模块,用于根据所述性能评估图获得性能评估结果。

进一步地,所述性能指标为执行耗时、cpu使用率或者内存使用量。

进一步地,所述获得模块包括:

第一输出单元,用于在所述性能评估图中所述测试数据量与所述性能指标不相关之后,输出不存在性能风险;

第二输出单元,用于在所述性能评估图中所述测试数据量与所述性能指标呈对数相关之后,输出存在一级性能风险;

第三输出单元,用于在所述性能评估图中所述测试数据量与所述性能指标呈线性正相关之后,输出存在二级性能风险;

第四输出单元,用于在所述性能评估图中所述测试数据量与所述性能指标呈指数相关之后,输出存在三级性能风险。

再一方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述基于压力测试的性能评估方法的步骤。

又一方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一实施例所述基于压力测试的性能评估方法的步骤。

本发明实施例提供的基于压力测试的性能评估方法及装置,能够对目标对象进行n次压力测试,获得n个性能指标的测试值,根据n个性能指标的测试值以及对应的测试数据量拟合获得性能评估图,根据所述性能评估图获得性能评估结果,通过性能评估图进行性能评估,提高了性能评估的准确性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1是本发明第一实施例提供的基于压力测试的性能评估方法的流程示意图。

图2是本发明第二实施例提供的性能评估图的示意图。

图3是本发明第三实施例提供的性能评估图的示意图。

图4是本发明第四实施例提供的性能评估图的示意图。

图5是本发明第五实施例提供的性能评估图的示意图。

图6是本发明第六实施例提供的基于压力测试的性能评估装置的结构示意图。

图7是本发明第七实施例提供的基于压力测试的性能评估装置的结构示意图。

图8是本发明第八实施例提供的电子设备的实体结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

图1是本发明一实施例提供的基于压力测试的性能评估方法的流程示意图,如图1所示,本发明实施例提供的基于压力测试的性能评估方法,包括:

s101、对目标对象进行n次压力测试,获得n个性能指标的测试值;其中,每次压力测试所采用的测试数据量不同并且n个测试数据量按预设趋势变化;n为大于等于3的正整数;

具体地,在对目标对象进行压力测试时,会进行n次压力测试,每次压力测试获得性能指标的测试值。每次压力测试所采用的测试数据量不同,但针对同一个性能指标进行测试,并且各次压力测试所采用的测试数据量按照预设趋势变化。其中,n为大于等于3的正整数。性能指标根据实际需要进行设置,本发明实施例不做限定。各次压力测试所采用的测试数据量的趋势变化,根据实际需要进行设置,本发明实施例不做限定。所述目标对象为软件,可以是在计算机上运行的软件,也可以是安卓系统上执行的软件,本发明实施例不做限定。本发明实施例提供的基于压力测试的性能评估方法的执行主体包括但不限于服务器。

例如,所述性能指标可以采用执行耗时,所述执行耗时是指完成一次压力测试所耗费的时间。所述性能指标可以采用cpu使用率,所述cpu使用率是指完成一次压力测试的过程中cpu的平均使用率,可以采用百分数表示。所述性能指标可以采用内存使用量,所述内存使用量是指完成一次压力测试所消耗的最大的内存。

例如,各次压力测试所采用的测试数据量构成等差数列,或者每个测试数据量对应一个数量级别。

s102、根据n个性能指标的测试值以及对应的测试数据量拟合获得性能评估图;

具体地,在获得n个性能指标的测试值之后,可以根据每个性能指标的测试值以及每个性能指标对应的测试数据量绘制散点图,再对散点图进行曲线拟合,拟合获得的曲线作为性能评估图。可理解的是,压力测试的次数越多,获得性能评估图越准确。

例如,进行了3次压力测试,3次压力测试的测试数据量分别为10万、20万和30万,性能指标为执行耗时。可以以测试数据量为横坐标,以执行耗时为纵坐标,绘制出包括3个点的散点图,再对三个点进行曲线拟合,获得性能评估图。

s103、根据所述性能评估图获得性能评估结果。

具体地,在绘制出所述性能评估图之后,可以通过所述性能图中所述测试数据量与所述性能指标呈现出来的关系,获得性能评估结果。

本发明实施例提供的基于压力测试的性能评估方法,能够对目标对象进行n次压力测试,获得n个性能指标的测试值,根据n个性能指标的测试值以及对应的测试数据量拟合获得性能评估图,根据所述性能评估图获得性能评估结果,通过性能评估图展示性能指标与测试数据量之间的关系,提高了性能评估的准确性。

在上述各实施例的基础上,进一步地,所述性能指标为执行耗时、cpu使用率或者内存使用量。

具体地,所述性能指标为执行耗时、cpu使用率或者内存使用量。其中,所述执行耗时是指完成一次压力测试所耗费的时间。所述cpu使用率是指完成一次压力测试的过程中cpu的平均使用率,可以采用百分数表示。所述内存使用量是指完成一次压力测试所消耗的最大内存。

在上述各实施例的基础上,进一步地,每个测试数据量对应一个数量级别。

具体地,每个测试数据量对应一个数量级别,每个测试数据量对应的数量级别不同。

例如,进行四次压力测试,采用的测试数据量分别为5千,5万,50万,500万。

在上述各实施例的基础上,进一步地,n个测试数据量呈等差数列排列。

例如,进行五次压力测试,采用的测试数据量分别为10万、20万、30万,40万和50万。

在上述各实施例的基础上,进一步地,所述根据所述性能评估图获得性能评估结果包括:

若所述性能评估图中所述测试数据量与所述性能指标不相关,则输出不存在性能风险。

具体地,在所述性能评估图中,如果所述测试数据量与所述性能指标不相关,说明测试数据量对资源消耗没有影响或者影响可以忽略不计,那么输出不存在性能风险。

例如,如图2所示,横坐标表示测试数据量,纵坐标表示执行耗时,图2中的性能评估图为一条水平直线,说明随着测试数据量的增加,执行耗时基本不会发生变化,所述测试数据量与所述性能指标不相关,那么是可以输出不存在性能风险。

在上述各实施例的基础上,进一步地,所述根据所述性能评估图获得性能评估结果包括:

若所述性能评估图中所述测试数据量与所述性能指标呈对数相关,则输出存在二级性能风险;

具体地,在所述性能评估图中,如果所述测试数据量与所述性能指标呈对数相关,说明资源消耗会随测试数据量的增加同步增加,但资源消耗会增加的越来越少,可以输出存在一级性能风险。一级性能风险表明在资源可控的情况下不存在性能风险。

例如,如图3所示,横坐标表示测试数据量,纵坐标表示执行耗时,图3中的性能评估图为一条对数曲线,说明随着测试数据量的增加,执行耗时也会增加但增加的越来越少,那么所述测试数据量与所述性能指标呈对数相关,那么可以输出存在一级性能风险。

在上述各实施例的基础上,进一步地,所述根据所述性能评估图获得性能评估结果包括:

若所述性能评估图中所述测试数据量与所述性能指标线性正相关,则输出存在二级性能风险;

具体地,在所述性能评估图中,如果所述测试数据量与所述性能指标线性正相关,说明资源消耗会随测试数据量的增加同步增加,可以输出存在二级性能风险。二级性能风险表明需要结合性能指标的实际情况关注软件的性能风险。

例如,如图4所示,横坐标表示测试数据量,纵坐标表示执行耗时,图4中的性能评估图为一条斜率大于0的直线,说明随着测试数据量的增加,执行耗时也会相应地增加,那么所述测试数据量与所述性能指标正相关,那么可以输出存在二级性能风险。

在上述各实施例的基础上,进一步地,所述根据所述性能评估图获得性能评估结果包括:

若所述性能评估图中所述测试数据量与所述性能指标呈指数相关,则输出存在三级性能风险。

具体地,在所述性能评估图中,如果所述测试数据量与所述性能指呈标指数相关,说明资源消耗会随测试数据量的增加而逐渐增加,并且增加的越来越多,可以输出存在三级性能风险。三级性能风险表明存在性能风险,需要对软件程序进行优化。

例如,如图5所示,横坐标表示测试数据量,纵坐标表示执行耗时,图5中的性能评估图为一条指数曲线,说明随着测试数据量的增加,执行耗时也会逐渐增加,并且增加的越来越多,那么所述测试数据量与所述性能指标呈标指数相关,那么可以输出存在三级性能风险。

需要说明的是,三级性能风险的风险等级高于二级性能风险的风险等级,二级性能风险的风险等级高于一级性能风险的风险等级。风险等级越高,说明越容易出现性能风险。

可理解的是,如果所述性能评估图中所述测试数据量与所述性能指标之间的关系不是上述四种中的任何一种,可以输出无法评估的提示信息。

下面以一个具体的实施例来说明本发明实施例提供的基于压力测试的性能评估方法的实现过程。

对软件a进行压力测试,软件a能够实现查询功能。第一次压力测试采用的测试数据量为5万,获得从5万条数据中查询出一条数据所用的时间t1,作为测试数据量5万对应的执行耗时;第二次压力测试采用的测试数据量为50万,获得从50万条数据中查询出一条数据所用的时间t2,作为测试数据量50万对应的执行耗时;第三次压力测试采用的测试数据量为500万,获得从500万条数据中查询出一条数据所用的时间t3,作为测试数据量500万对应的执行耗时。

以测试数据量为横坐标,以执行耗时作为纵坐标,基于测试数据量5万对应的执行耗时t1,测试数据量50万对应的执行耗时t2,测试数据量500万对应的执行耗时t3拟合出性能评估图。其中,可以通过matlab拟合工具箱拟合出性能评估图。

基于拟合出的性能评估图对软件a进行性能评估。如果上述性能评估图为一条对数曲线,那么可以输出存在一级性能风险;如果上述性能评估图为一条斜率大于0的直线,那么可以输出存在二级性能风险;如果上述性能评估图为一条指数曲线,那么可以输出存在三级性能风险。

本发明实施例提供的基于压力测试的性能评估方法,减少了了性能评估及压力测试对于测试环境及数据量的依赖,在有限测试环境资源和测试数据量的情况下提高对软件性能评估的准确性,并有效降低软件性能评估及压力测试的成本。

图6是本发明第六实施例提供的基于压力测试的性能评估装置的结构示意图,如图6所示,本发明实施例提供的基于压力测试的性能评估装置包括测试模块601、拟合模块602和获得模块603,其中:

测试模块601用于对目标对象进行n次压力测试,获得n个性能指标的测试值;其中,每次压力测试所采用的测试数据量不同并且n个测试数据量按预设趋势变化;n为大于等于3的正整数;拟合模块602用于根据n个性能指标的测试值以及对应的测试数据量拟合获得性能评估图;获得模块603用于根据所述性能评估图获得性能评估结果。

具体地,测试模块601在对目标对象进行压力测试时,会进行n次压力测试,每次压力测试获得性能指标的测试值。每次压力测试所采用的测试数据量不同,但针对同一个性能指标进行测试,并且各次压力测试所采用的测试数据量按照预设趋势变化。其中,n为大于等于3的正整数。性能指标根据实际需要进行设置,本发明实施例不做限定。各次压力测试所采用的测试数据量的趋势变化,根据实际需要进行设置,本发明实施例不做限定。所述目标对象为软件,可以是在计算机上运行的软件,也可以是安卓系统上执行的软件,本发明实施例不做限定。

在获得n个性能指标的测试值之后,拟合模块602可以根据每个性能指标的测试值以及每个性能指标对应的测试数据量绘制散点图,再对散点图进行曲线拟合,拟合获得的曲线作为性能评估图。可理解的是,压力测试的次数越多,获得性能评估图越准确。

在绘制出所述性能评估图之后,获得模块603可以通过所述性能图中所述测试数据量与所述性能指标呈现出来的关系,获得性能评估结果。

本发明实施例提供的基于压力测试的性能评估装置,能够对目标对象进行n次压力测试,获得n个性能指标的测试值,根据n个性能指标的测试值以及对应的测试数据量拟合获得性能评估图,根据所述性能评估图获得性能评估结果,通过性能评估图展示性能指标与测试数据量之间的关系,提高了性能评估的准确性。

在上述各实施例的基础上,进一步地,所述性能指标为执行耗时、cpu使用率或者内存使用量。

在上述各实施例的基础上,进一步地,每个测试数据量对应一个数量级别。

在上述各实施例的基础上,进一步地,n个测试数据量构成等差数列。

图7是本发明第七实施例提供的基于压力测试的性能评估装置的结构示意图,如图7所示,在上述各实施例的基础上,进一步地,获得模块603包括第一输出单元6031、第二输出单元6032、第三输出单元6033和第四输出单元6034,其中:

第一输出单元6031用于在所述性能评估图中所述测试数据量与所述性能指标不相关之后,输出不存在性能风险;第二输出单元6032用于在所述性能评估图中所述测试数据量与所述性能指标呈对数相关之后,输出存在一级性能风险;第三输出单元6033用于在所述性能评估图中所述测试数据量与所述性能指标呈线性正相关之后,输出存在二级性能风险;第四输出单元6034用于在所述性能评估图中所述测试数据量与所述性能指标呈指数相关之后,输出存在三级性能风险。

具体地,在所述性能评估图中,如果所述测试数据量与所述性能指标不相关,说明测试数据量对资源消耗没有影响或者影响可以忽略不计,那么第一输出单元6031输出不存在性能风险。

在所述性能评估图中,如果所述测试数据量与所述性能指标呈对数相关,说明资源消耗会随测试数据量的增加同步增加,但资源消耗会增加的越来越少,第二输出单元6032可以输出存在一级性能风险。一级性能风险表明在资源可控的情况下不存在性能风险。

在所述性能评估图中,如果所述测试数据量与所述性能指标线性正相关,说明资源消耗会随测试数据量的增加同步增加,第三输出单元6033可以输出存在二级性能风险。二级性能风险表明需要结合性能指标的实际情况关注软件的性能风险。

在所述性能评估图中,如果所述测试数据量与所述性能指呈标指数相关,说明资源消耗会随测试数据量的增加而逐渐增加,并且增加的越来越多,第四输出单元6034可以输出存在三级性能风险。三级性能风险表明存在性能风险,需要对软件程序进行优化。

本发明实施例提供的装置的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。

需要说明的是,本发明实施例提供的基于压力测试的性能评估方法及装置可用于金融领域,也可用于除金融领域之外的任意技术领域,本发明实施例对基于压力测试的性能评估方法及装置的应用领域不做限定。

图8是本发明第八实施例提供的电子设备的实体结构示意图,如图8所示,该电子设备可以包括:处理器(processor)801、通信接口(communicationsinterface)802、存储器(memory)803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信。处理器801可以调用存储器803中的逻辑指令,以执行如下方法:对目标对象进行n次压力测试,获得n个性能指标的测试值;其中,每次压力测试所采用的测试数据量不同并且n个测试数据量按预设趋势变化;n为大于等于3的正整数;根据n个性能指标的测试值以及对应的测试数据量拟合获得性能评估图;根据所述性能评估图获得性能评估结果。

此外,上述的存储器803中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:对目标对象进行n次压力测试,获得n个性能指标的测试值;其中,每次压力测试所采用的测试数据量不同并且n个测试数据量按预设趋势变化;n为大于等于3的正整数;根据n个性能指标的测试值以及对应的测试数据量拟合获得性能评估图;根据所述性能评估图获得性能评估结果。

本实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行上述各方法实施例所提供的方法,例如包括:对目标对象进行n次压力测试,获得n个性能指标的测试值;其中,每次压力测试所采用的测试数据量不同并且n个测试数据量按预设趋势变化;n为大于等于3的正整数;根据n个性能指标的测试值以及对应的测试数据量拟合获得性能评估图;根据所述性能评估图获得性能评估结果。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1