掌桥专利:专业的专利平台
掌桥专利
首页

接口性能测试方法及装置

文献发布时间:2023-06-19 16:09:34



技术领域

本申请涉及测试技术领域,尤其涉及一种接口性能测试方法及装置。

背景技术

性能测试(Performance Test)是通过模拟多种正常、峰值以及异常负载条件来对被测对象的各项性能指标进行测试。目前,传统的测试方案是由测试人员通过人工编写测试用例的方式对被测对象进行性能测试以及人工采集并分析被测对象的性能相关数据。但是,该方法受限于测试人员的经验和熟练程度,不仅无法保证测试效率,还容易因不同测试人员的认知和经验存在差异而导致测试结果存在偏差,进而无法保证测试准确率。

发明内容

本申请实施例的目的是提供一种接口性能测试方法及装置,用于在满足多样化的测试需求的同时,提高测试准确率和效率。

为了实现上述目的,本申请实施例采用下述技术方案:

第一方面,本申请实施例提供一种接口性能测试方法,包括:

基于预设的测试配置信息和待测接口的目标测试需求信息,确定对待测接口进行性能测试的目标场景参数和目标性能指标项,其中,所述测试配置信息包括满足对应预设测试需求的预设场景参数和预设性能指标项;

基于所述待测接口的接口参数和所述目标场景参数,生成性能测试脚本;

执行所述性能测试脚本,对所述待测接口进行性能测试;

基于所述目标性能指标项,调用预设监控工具,采集所述待测接口在所述性能测试脚本的执行过程中的性能数据;

基于预设规则引擎对所述性能数据进行分析,得到所述待测接口的性能分析结果。

第二方面,本申请实施例提供一种接口性能测试装置,包括:

第一确定模块,用于基于预设的测试配置信息和待测接口的目标测试需求信息,确定对待测接口进行性能测试的目标场景参数和目标性能指标项,其中,所述测试配置信息包括对应预设测试需求的预设场景参数和预设性能指标项;

测试模块,用于基于所述待测接口的接口参数和所述目标场景参数,生成性能测试脚本,以及执行所述性能测试脚本,对所述待测接口进行性能测试;

采集模块,用于基于所述目标性能指标项,调用预设监控工具,采集所述待测接口在所述性能测试脚本的执行过程中的性能数据;

性能分析模块,用于基于预设规则引擎对所述性能数据进行分析,得到所述待测接口的性能分析结果。

第三方面,本申请实施例提供一种电子设备,包括:

包括:

处理器;

用于存储所述处理器可执行指令的存储器;

其中,所述处理器被配置为执行所述指令,以实现如第一方面所述的方法。

第四方面,本申请实施例提供一种计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如第一方面所述的方法。

本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:

通过预先在测试配置信息中设置对应预设测试需求的预设场景参数和预设性能指标项,不仅可以满足多样化的测试需求,还可以在对待测接口进行性能测试时,仅提供待测接口的目标测试需求信息,即可确定出目标场景参数和目标性能指标项;进一步,基于待测接口的接口参数和预先配置的场景参数,生成用于进行性能测试的测试脚本,以及执行性能测试脚本,从而实现对待测接口的自动化性能测试;而后,调用预设监控工具按照预先配置的性能指标项,自动采集待测接口在性能测试脚本的执行过程中的性能数据;最后,利用预设规则引擎对待测接口在性能测试脚本的执行过程中的性能数据进行分析,得到待测接口的性能分析结果,从而实现对待测接口的自动分析;由此,只需提供预先为不同预设测试需求所配置的预设场景参数和预设性能指标项,即可实现针对不同预设测试需求的性能测试,整个测试过程无需人工参与脚本编写、数据采集及数据分析等,在满足多样化的测试需求的同时,不仅可以提高测试效率,还可以避免人为因素对测试过程造成的影响,从而有利于提高测试准确率。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为本申请的一个实施例提供的一种接口性能测试方法的流程示意图;

图2为本申请的另一个实施例提供的一种接口性能测试方法的流程示意图;

图3为本申请的又一个实施例提供的一种接口性能测试方法的流程示意图;

图4为本申请的再一个实施例提供的一种接口性能测试方法的流程示意图;

图5为本申请实施例提供的接口性能测试方法所适用的应用场景示意图;

图6为本申请的一个实施例提供的一种接口性能测试装置的结构示意图;

图7为本申请的一个实施例提供的一种电子设备的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应理解,这样使用的数据在适当情况下可以互换,以便本申请实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,本说明书和权利要求书中“和/或”表示所连接对象的至少其中之一,字符“/”一般表示前后关联对象是一种“或”的关系。

部分概念说明:

Jmeter:一种基于Java的性能测试工具,它用于模拟大量负载来测试一台服务器、网络或者对象的健壮性或者分析不同负载下的整体性能。

URule:一款纯Java规则引擎,它以RETE算法为基础,提供了向导式规则集、脚本式规则集、决策表、交叉决策表、决策树、评分卡及决策流共六种类型的规则定义方式,配合基于WEB的设计器,可快速实现规则的定义、维护与发布。

响应时间(Response Time,RT):是指被测对象对请求作出响应的时间。在一种应用场景下,但对于单用户的业务系统而言,响应时间可以很好地度量业务系统的性能。

每秒查询率(Query Per Second,QPS):是指一台服务器每秒能响应的查询次数。QPS用于作为一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。

为了解决目前的接口测试方法存在的测试准确率和效率低的问题,本申请实施例旨在提出一种接口性能测试方案,基于待测接口的目标测试需求信息,预先配置对待测接口进行性能测试的场景参数和性能指标项等测试配置信息,而后基于待测接口的接口参数和预先配置的场景参数,自动生成用于进行性能测试的测试脚本,以及执行性能测试脚本,以实现对待测接口的自动化性能测试;进一步,调用预设监控工具按照预先配置的性能指标项,自动采集待测接口在性能测试脚本的执行过程中的性能数据;最后,利用预设规则引擎对预设监控工具采集的性能数据进行分析,完成对待测接口的自动分析;由此,只需提供预先为不同预设测试需求所配置的预设场景参数和预设性能指标项,即可实现针对不同预设测试需求的性能测试,整个测试过程无需人工参与脚本编写、数据采集及数据分析等,在满足多样化的测试需求的同时,不仅可以提高测试效率,还可以避免人为因素对测试过程造成的影响,从而有利于提高测试准确率。

应理解,本申请实施例提供的接口性能测试方法可以由电子设备执行或安装在电子设备中的软件执行,具体可以由终端设备或服务端设备执行。以下以电子设备作为执行主体为例进行说明。

以下结合附图,详细说明本申请各实施例提供的技术方案。

请参考图1,为本申请的一个实施例提供的一种接口性能测试方法的流程示意图,该方法可以包括如下步骤:

S102,基于预设的测试配置信息和待测接口的目标测试需求信息,确定对待测接口进行性能测试的目标场景参数和目标性能指标项。

本申请实施例中,测试配置信息包括对应预设测试需求的预设场景参数和预设性能指标项。具体而言,如图2所示,测试配置信息包括场景配置文件和监控配置文件。

其中,场景配置文件包括多种预设测试场景各自对应的预设场景参数。实际应用中,按照测试目的的不同,预设测试场景可以包括负载测试、压力测试、基线测试和混合测试等测试场景,其中,负载测试是指测试待测接口在各种工作负载下的性能,其目的是测试当负载逐渐增加时,接口的性能变化情况;压力测试是指通过确定待测接口的瓶颈或者不能接受的性能点,来获得待测接口所能提供的最大服务级别;基线测试是指是指测试待测接口在各种工作负载下的性能基线;混合测试是指同时进行负载测试、压力测试、基线测试等中的至少两种测试。

预设场景参数是指用于表示测试场景的参数,具体可以包括但不限于场景类型(scene)、模拟的并发用户数(threads)、同一个用户的请求重复次数(loop)、执行时间(delay)以及并发用户数的变化梯度(step)、测试数据在数据库表中的索引(index)等,每个预测测试场景具有对应的预测场景参数,且不同预测测试场景对应的预测场景参数可以相同或者不同,具体可根据实际需要进行设置,本申请实施例对此不作限定。

示例地,下述为场景配置文件的一种示例:

{-scene:基线测试

threads:50

loop:50

delay:0

-scene:阶梯负载测试

threads:100

step:20

index:2

delay:20

-scene:混合测试

threads:100

step:20

index:2

delay:20

mix:

-{script:login,scale:20}

-{script:search,scale:80}

}

其中,监控配置文件包括对应预设测试需求的预设性能指标项。预设性能指标项是指用于反映接口性能的指标项,其具体可以包括但不限于如下指标项中的至少一种:中央处理器(Central Processing Unit,CPU)利用率、内存利用率、硬盘利用率、QPS、平均响应时间、成功率、99%响应时间、波动率等。不同预设测试需求对应的预设性能指标项可以不同,具体可根据实际需要进行设置,本申请实施例对此不作限定。示例地,下述为监控配置文件的一种示例,其中,type表示测试需求,target表示待测接口,index表示预设性能指标项,cpu表示CPU利用率、mem表示内存利用率、disk表示硬盘利用率、net表示网络传输速率等、表示QPS。

{-type:hardware(硬件)

target:[192.168.1.1,192.168.1.2]

index:[cpu,mem,disk,net]

-type:perf(性能)

index:[qps,平均响应时间,成功率,99%响应时间,波动率]

-type:soft(软件)

mix:

-[target:192.168.1.1,index:mysql]

-[target:192.168.1.2,index:redis]

-[target:192.168.1.3,index:kafka]

}

在一种可选的实现方式中,为快速准确地获取满足待测接口的目标测试需求的目标场景参数和目标性能指标项,如图3所示,上述S102可以包括:基于待测接口的目标测试需求信息,确定对待测接口进行性能测试的目标测试场景,并基于目标测试场景和场景配置文件,确定对待测接口进行性能测试的目标场景参数;进一步,基于目标测试需求信息和监控配置文件,确定对待测接口进行性能测试的目标性能指标项。

示例地,以前文所述的场景配置文件示例和监控配置文件示例为例,若待测接口的目标测试需求信息指示对测试待测接口的硬件资源的瓶颈点或不能接受的性能点,则可确定目标测试场景为梯度负载测试,进而可从场景配置文件中确定出对待测接口进行性能测试的目标场景参数包括:并发用户数(threads)为100,并发用户数的变化梯度(step)为20,测试数据在数据库表中的索引(index)为2以及执行时间(delay)为20等;此外,基于该目标测试需求信息,还可从监控配置文件中确定出对待测接口进行性能测试的目标性能指标项包括CPU利用率、内存利用率、硬盘利用率和网络传输速率等。

本申请实施例在此示出了上述S102的一种具体实现方式。当然,应理解,上述S102也可以采用其它的方式实现,本申请实施例对此不作限定。

S104,基于待测接口的接口参数和目标场景参数,生成性能测试脚本。

S106,执行性能测试脚本,对待测接口进行性能测试。

其中,性能测试脚本用于在被执行时对待测接口进行性能测试,也即通性能测试脚本在被执行时,可以模拟作用于待测接口的负载,比如按照目标场景参数模拟大量用户,并发地向待测接口发送业务请求,由待测接口对接收到的业务请求进行响应,以便后续观测待测接口在响应业务请求的过程中的性能,实现对待测接口进行性能测试。待测接口的接口参数具体可以包括但不限于待测接口的接口地址、返回数据格式、请求方式、接口名称、标头信息以及报文信息等,其具体可根据实际需要进行设置,本申请实施例对此不作限定。

其中,待测接口的接口地址用于供模拟的用户向待测接口发送访问请求;待测接口的返回数据格式是指待测接口响应于模拟用户的访问请求返回的响应数据的格式,比如json格式或者xml格式等;待测接口的请求方式是指用户向待测接口发送访问请求的方式,其具体可以例如包括但不限于:get、post、put、head、delete、trace、opions以及connect等;标头信息用于指示用户向待测接口发送访问请求时携带的头部信息(header);报文信息用于指示用户向待侧接口发送访问请求的请求报文信息,比如请求报文的格式、请求报文的内容等。

为了实现对待测接口的自动化测试,可基于待测接口的接口参数和目标场景参数,生成性能测试脚本,从而实现对待测接口的自动化性能测试。由于不同测试需求对应的测试场景不同,且在不同测试场景下进行测试所采用的测试方式不同,为了在实现对待测接口进行自动化测试的同时,能够适用于目标测试需求对应的测试场景,在一种可选的实现方式中,如图3所示,在上述S104中,基于待测接口的接口参数和目标场景参数,生成性能测试脚本,具体可以实现为:基于对待测接口进行性能测试的目标测试场景,获取用于性能测试的目标脚本模板,以及基于目标脚本模板、目标场景参数和待测接口的接口参数,生成性能测试脚本。

具体而言,可在脚本库中预先配置不同预设测试场景对应的脚本模板,比如为负载测试场景配置对应的负载测试脚本模板,为压力测试场景配置对应的压力测试脚本模板,为基线测试场景配置对应的基线测试脚本模板以及为混合测试场景配置对应的混合测试脚本模板,等等;进一步,在生成性能测试脚本时,可从脚本库中获取目标测试场景对应的脚本模板,作为用于性能测试的目标脚本模板。接着,可按照目标脚本模板指示的构造规范,将待测接口的接口参数和目标场景参数插入目标脚本模板的相应位置处,由此得到用于进行性能测试的性能测试脚本。而后,通过执行性能测试脚本,即可实现对待测接口的自动化性能测试。

可以理解的是,通过为不同的预设测试场景配置相应的脚本模板,可以满足多样化的测试场景下的测试需求,相较于为不同的预设测试场景配置单一的、标准化的性能测试脚本,可以避免因不同测试场景的测试方式不同而导致的测试结果偏差,有利于提高测试准确率;进一步,在对待测接口进行性能测试时,获取目标测试场景对应的目标脚本模板,并基于目标脚本模板、目标场景参数和待测接口的接口参数,生成性能测试脚本,以及执行性能测试脚本,可以实现对待测接口的自动化性能测试,相较于目前的人工编写测试脚本的方式,不仅可以节省人力、提高测试效率,还可以降低由于测人人员的技术能力和经验不足导致的测试过程出错的风险,有利于提高测试准确率。

本申请实施例在此示出了上述S104的一种具体实现方式。当然,应理解,上述S104也可以采用其它的方式实现,本申请实施例对此不作限定。

S108,基于目标性能指标项,调用预设监控工具,采集待测接口在性能测试脚本的执行过程中的性能数据。

其中,预设监控工具是指预先配置的、用于获取和存储待测接口的性能数据的工具,具体地,预设监控工具可以例如包括但不限于mysql、redisy以及kafka等。待测接口的性能数据是指用于反映待测接口的性能的数据,具体可以包括待测接口对应于目标性能指标项的指标值。

为了在待测接口的性能测试过程中,实现对待测接口的性能数据的自动、批量化采集,在一种可选的实现方式中,如图3所示,上述S108可以包括:将目标性能指标项写入预设监控工具对应的脚本中,得到目标监控脚本;而后,在监测到性能测试脚本被执行时,触发预设监控工具执行目标监控脚本。

示例地,预设监控工具具有预先为其配置的脚本,预设监控工具通过运行其对应的脚本即可实现数据采集和存储功能。通过将目标性能指标项写入预设监控工具对应的脚本,相当于告知预设监控工具对目标性能指标项的指标值进行采集和存储;进一步,在监测到所述性能测试脚本被执行时,通过触发预设监控工具执行目标监控脚本,即可使预设监控工具自动地采集和存储待测接口对应于目标性能指标的指标值,也即得到待测接口在性能测试脚本的执行过程中的性能数据。

本申请实施例在此示出了上述S108的一种具体实现方式。当然,应理解,上述S108也可以采用其它的方式实现,本申请实施例对此不作限定。

S110,基于预设规则引擎,对待测接口在性能测试脚本的执行过程中的性能数据进行分析,得到待测接口的性能分析结果。

预设规则引擎可以嵌入在执行性能测试的电子设备中,当电子设备通过预设监控工具采集到待测接口在性能测试脚本的执行过程中的性能数据后,可以将待测接口在性能测试脚本的执行过程中的性能数据传送到预设规则引擎中,由预设规则引擎根据测试人员预先配置的性能分析策略来对待测接口在性能测试脚本的执行过程中的性能数据进行分析,由此得到待测接口的性能分析结果。这样,可以将目前由测试人员实施的性能分析工作交由预设规则引擎来做,从而实现对待测接口的自动化性能分析。

本申请实施例中,不同测试场景所能满足的测试需求不同,而对被测对象的性能分析目的跟随测试场景的不同而有所差异,例如,若测试需求为测试待测接口的硬件资源的负载能力,那么,对待测接口进行性能测试所适用的测试场景为负载测试,相应地,对待测接口的性能分析目的则是分析待测接口的硬件性能跟随负载的变化情况;又如,若测试需求为测试待测接口的软件资源的性能瓶颈点,那么,对待测接口进行性能测试所适用的测试场景为压力测试,相应地,对待测接口的性能分析目的则是分析待测接口的软件相关性能指标项所能达到的最大指标值。为此,为满足对待测接口的目标测试需求,提高目标测试需求下对待测接口的性能分析准确率,可在预设规则引擎中预先配置与目标测试需求匹配的性能分析策略。具体而言,在上述S110之前,本申请实施例的接口性能测试方法还可以包括:基于目标场景参数,获取与目标测试需求信息匹配的目标性能分析策略,并在预设规则引擎中设置目标性能分析策略。相应地,上述S110具体可实现为:调用预设规则引擎,基于目标性能分析策略对待测接口在性能测试脚本的执行过程中的性能数据进行分析,得到待测接口的性能分析结果。其中,目标性能分析策略包括用于进行性能分析所需的分析规则。具体而言,目标性能分析策略可以包括目标性能指标项对应的目标基准值,比如CPU利用率对应的基准值为90%等。

实际应用中,场景参数能够反映对待测对象进行测试所适用的测试场景,性能分析目的跟测试场景的不同而有所差异,且同一性能指标项在不同性能分析目的下对应的基准值不同,比如若性能分析目的是分析待测接口的硬件性能的瓶颈点,那么,CPU利用率对应的基准值可以是90%;又如,若性能分析目的是分析待测接口的硬件性能基线,那么,CPU利用率对应的基准值可以是60%,等等。为此,为进一步准确分析待测接口的性能以及便于在待测接口的性能不佳时对待测接口进行问题排查,在获取目标性能分析策略时,可基于目标场景参数,获取与目标测试需求信息匹配的目标性能分析策略。示例地,若目标场景参数指示测试场景为压力测试,则获取的目标性能分析策略中CPU利用率对应的目标基准值为90%。

相应地,上述调用预设规则引擎,基于目标性能分析策略和预设监控工具采集的性能数据,对待测接口进行性能分析,具体可以实现为:调用预设规则引擎,对待测接口在性能测试脚本的执行过程中的性能数据和目标性能指标项对应的目标基准值进行比对,得到待测接口的性能分析结果。

更为具体地,如图4所示,预设规则引擎在被调用时,可针对每一个目标性能指标项而言,将预设监控工具采集的该目标性能指标项的指标值与该目标性能指标项对应的目标基准值进行比对,得到该目标性能指标项对应的指标分析结果,该指标分析结果用于表示该目标性能指标项是否达标;而后,预设规则引擎综合所有目标性能指标项对应的指标分析结果,确定待测接口的性能分析结果,比如,若任一目标性能指标项未达标,则确定待测接口未通过性能测试;若所有目标性能指标项均达标,则确定待测接口通过性能测试。

当然,应理解,实际应用中,为满足不同测试需求,提高不同测试需求下的性能分析准确率,可预先在预设规则引擎中配置与多种不同测试需求匹配的性能分析策略,进而预设规则引擎在被调用时,可直接获取与目标测试需求信息匹配的目标性能分析策略并基于目标性能分析策略对待测接口进行性能分析。另外,预设规则引擎可根据实际需要进行选择,例如预设规则引擎可以为URule规则引擎,本申请实施例对此不作限定。

本申请实施例在此示出了上述S110的一种具体实现方式。当然,应理解,上述S110也可以采用其它的方式实现,本申请实施例对此不作限定。

在本申请的另一个实施例中,如图4所示,在上述S110之后,本申请实施例提供的接口性能测试方法还可以包括:若待测接口的性能分析结果指示待测接口未通过性能测试,则基于待测接口的性能分析结果,从目标性能指标项中确定异常性能指标项,并获取与异常性能指标项关联的性能测试日志数据;而后,基于获取的性能测试日志数据,对待测接口进行异常问题定位。其中,与异常性能指标项关联的性能测试日志数据具体可以例如包但不限于:与异常性能指标项关联的应用数据、业务数据、中间件数据、测试日志等,其中,应用数据具体可以包括但不限于jvm、连接数据、数据库相关数据,中间件数据具体可以包括但不限于中间件的运行数据等,测试日志具体可以包括但不限于错误日志、应用日志、数据库日志、GC日志等。

示例地,针对每一个目标性能指标项而言,若通过上述S110确定出该目标性能指标项未达标,则可将该目标性能指标项确定为异常性能指标项,并获取与该目标性能指标项关联的性能测试日志数据;进一步,基于获取的性能测试日志数据,对待测接口进行异常问题定位。

实际应用中,确定异常性能指标项、获取性能测试日志数据以及异常问题定位均可以交由预设规则引擎完成。具体而言,可在预设规则引擎中配置异常性能指标项的判定规则、获取性能测试日志数据的动作脚本以及异常问题定位规则,由此通过向预设规则引擎输入预设监控工具采集的性能数据,预设规则引擎即可依次完成对待测接口的性能分析、确定异常性能指标项、获取性能测试日志数据以及异常问题定位等工作,由此实现整个测试及分析过程的自动化运行,无需人工参与,从而有利于提高接口性能测试效率和准确率。

本申请实施例中,电子设备可通过测试工具执行上述S102和S108的操作,示例性地,测试工具可以是Jmeter测试工具。当然,本申请实施例不限于采用上述Jmeter测试工具,其他的测试工具也可在本申请的保护范围之内。

具体而言,如图5所示,电子设备1中安装有测试工具2、预设监控工具3以及预设规则引擎4。电子设备1可向开发人员A展示用于进行测试配置的配置界面11,以供开发人员A对测试工具2、预设监控工具3以及预设规则引擎4进行配置。示例地,电子设备1基于开发人员A通过配置界面11输入的不同预设测试需求及对应每种预设测试需求的预设测试场景参数及预设性能指标项等,生成测试配置信息,并将生成的测试配置信息导入测试工具2中。电子设备1还基于测试人员通过配置界面11输入的不同预设场景参数对应的性能分析策略、异常性能指标项的判定规则、获取性能测试日志数据的脚本以及异常问题定位规则等,并将这些信息导入预设规则引擎4中。

在测试人员B具有测试需求时,电子设备1可向测试人员B展示用于测试的测试界面12,以供测试人员B输入待测接口的接口参数和目标测试需求信息。电子设备1基于测试人员B通过测试界面12输入的待测接口的接口参数和目标测试需求信息导入测试工具2中,以触发测试工具2开始执行对待测接口的性能测试操作。

测试工具2基于预设的测试配置信息和待测接口的目标测试需求信息,确定对待测接口进行性能测试的目标场景参数和目标性能指标项,以及基于待测接口的接口参数和目标场景参数,生成性能测试脚本,以及执行性能测试脚本,由性能测试脚本在被执行时对待测接口进行性能测试。接着,测试工具2还在性能测试脚本被执行时,基于目标性能指标项触发预设监控工具3采集待测接口的性能数据。而后,电子设备1将待测接口在性能测试脚本的执行过程中的性能数据从预设监控工具3导入到预设规则引擎4中。预设规则引擎4对待测接口在性能测试脚本的执行过程中的性能数据进行分析,得到待测接口的性能分析结果,若性能分析结果指示待测接口未通过性能测试,则从目标性能指标项中确定异常性能指标项,获取与异常性能指标项关联的性能测试日志数据,并基于获取的性能测试日志数据,对待测接口进行异常问题定位。

本申请实施例提供的接口性能测试方法,通过预先在测试配置信息中设置对应预设测试需求的预设场景参数和预设性能指标项,不仅可以满足多样化的测试需求,还可以在对待测接口进行性能测试时,仅提供待测接口的目标测试需求信息,即可确定出目标场景参数和目标性能指标项;进一步,基于待测接口的接口参数和预先配置的场景参数,生成用于进行性能测试的测试脚本,以及执行性能测试脚本,从而实现对待测接口的自动化性能测试;而后,在性能测试脚本被执行时,调用预设监控工具按照预先配置的性能指标项,自动采集待测接口在性能测试脚本的执行过程中的性能数据;最后,利用预设规则引擎对待测接口在性能测试脚本的执行过程中的性能数据进行分析,得到待测接口的性能分析结果,从而实现对待测接口的自动分析;由此,只需提供预先为不同预设测试需求所配置的预设场景参数和预设性能指标项,即可实现针对不同预设测试需求的性能测试,整个测试过程无需人工参与脚本编写、数据采集及数据分析等,不仅可以提高测试效率,还可以避免人为因素对测试过程造成的影响,从而有利于提高测试准确率。

需要说明的是,本申请实施例的接口性能测试方法可用于对多种类型的接口进行性能测试,例如后端的应用程序编程接口(Application Programming Interface,API)等。对于后端API,由于后端API的性能指标项较多,通过本申请实施例的接口性能测试方法,预先在测试配置信息中设置对应预设测试需求的预设场景参数和预设性能指标项,可以将后端API的性能测试涉及的测试场景和性能指标项关联起来,满足对后端API的多样化测试需求,提提升测试灵活性;进一步,基于后端API的接口参数和预先配置的场景参数,生成用于进行性能测试的测试脚本,以及执行性能测试脚本,在性能测试脚本被执行时,调用预设监控工具按照预先配置的性能指标项,自动采集后端API在性能测试脚本的执行过程中的性能数据,最后,利用预设规则引擎对后端API在性能测试脚本的执行过程中的性能数据进行分析,得到后端API的性能分析结果,由此,整个测试过程无需人工参与脚本编写、数据采集及数据分析等,在满足多样化的测试需求的同时,不仅可以提高测试效率,还可以避免人为因素对测试过程造成的影响,从而有利于提高测试准确率。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

此外,与上述图1所示的接口性能测试方法相对应地,本申请实施例还提供一种接口性能测试装置。图6为本申请的一个实施例提供的一种接口性能测试装置600的结构示意图,该装置包括:

第一确定模块610,用于基于预设的测试配置信息和待测接口的目标测试需求信息,确定对待测接口进行性能测试的目标场景参数和目标性能指标项,其中,所述测试配置信息包括对应预设测试需求的预设场景参数和预设性能指标项;

测试模块620,用于基于所述待测接口的接口参数和所述目标场景参数,生成性能测试脚本,以及执行所述性能测试脚本,对所述待测接口进行性能测试;

采集模块630,用于基于所述目标性能指标项,调用预设监控工具,采集所述待测接口在所述性能测试脚本的执行过程中的性能数据;

性能分析模块640,用于基于预设规则引擎对所述性能数据进行分析,得到所述待测接口的性能分析结果。

本申请实施例提供的接口性能测试装置,通过预先在测试配置信息中设置对应预设测试需求的预设场景参数和预设性能指标项,不仅可以满足多样化的测试需求,还可以在对待测接口进行性能测试时,仅提供待测接口的目标测试需求信息,即可确定出目标场景参数和目标性能指标项;进一步,基于待测接口的接口参数和预先配置的场景参数,生成用于进行性能测试的测试脚本,以及执行性能测试脚本,从而实现对待测接口的自动化性能测试;而后,调用预设监控工具按照预先配置的性能指标项,自动采集待测接口在性能测试脚本的执行过程中的性能数据;最后,利用预设规则引擎对待测接口在性能测试脚本的执行过程中的性能数据进行分析,得到待测接口的性能分析结果,从而实现对待测接口的自动分析;由此,只需提供预先为不同预设测试需求所配置的预设场景参数和预设性能指标项,即可实现针对不同预设测试需求的性能测试,整个测试过程无需人工参与脚本编写、数据采集及数据分析等,在满足多样化的测试需求的同时,不仅可以提高测试效率,还可以避免人为因素对测试过程造成的影响,从而有利于提高测试准确率。

可选地,所述测试配置信息包括场景配置文件和监控配置文件,所述场景配置文件包括多种预设测试场景各自对应的预设场景参数,所述监控配置文件包括对应预设测试需求的预设性能指标项;

所述第一确定模块包括:

场景确定子模块,用于基于所述目标测试需求信息,确定对所述待测接口进行性能测试的目标测试场景;

参数确定子模块,用于基于所述目标测试场景和所述场景配置文件,确定对所述待测接口进行性能测试的目标场景参数;

指标项确定子模块,用于基于所述目标测试需求信息和所述监控配置文件,确定对所述待测接口进行性能测试的目标性能指标项。

可选地,所述测试模块包括:

脚本模板获取子模块,用于基于所述目标测试场景,获取用于性能测试的目标脚本模板;

测试子模块,用于基于所述目标脚本模板、所述目标场景参数和所述待测接口的接口参数,生成所述性能测试脚本,以及执行所述性能测试脚本。

可选地,所述采集模块包括:

脚本写入子模块,用于将所述目标性能指标项写入所述预设监控工具对应的脚本中,得到目标监控脚本;

监控子模块,用于在监测到所述性能测试脚本被执行时,触发所述预设监控工具执行所述目标监控脚本。

可选地,所述装置还包括:

第二确定模块,用于在所述性能分析模块基于预设规则引擎对所述性能数据进行分析,得到所述待测接口的性能分析结果之前,基于所述目标场景参数,获取与所述目标测试需求信息匹配的目标性能分析策略;

设置模块,用于在所述预设规则引擎中设置所述目标性能分析策略;

所述性能测试模块,用于调用所述预设规则引擎,基于所述目标性能分析策略对所述性能数据进行分析,得到所述待测接口的性能分析结果。

可选地,所述目标性能分析策略包括所述目标性能指标项对应的目标基准值;

所述性能测试模块,用于调用所述预设规则引擎,对所述性能数据和所述目标性能指标项对应的目标基准值进行比对,得到所述待测接口的性能分析结果。

可选地,所述装置还包括:

第三确定模块,用于在所述性能分析模块基于预设规则引擎对所述性能数据进行分析,得到所述待测接口的性能分析结果之后,若所述待测接口的性能分析结果指示所述待测接口未通过性能测试,则基于所述性能分析结果,从所述目标性能指标项中确定异常性能指标项;

日志获取模块,用于获取与所述异常性能指标项关联的性能测试日志数据;

问题定位模块,用于基于所述性能测试日志数据,对所述待测接口进行异常问题定位。

显然,本申请实施例的接口性能测试装置可以作为上述图1所示的接口性能测试方法的执行主体,因此能够实现接口性能测试方法在图1所实现的功能。由于原理相同,在此不再重复说明。

图7是本申请的一个实施例电子设备的结构示意图。请参考图7,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。

处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。

处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成接口性能处理装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:

基于预设的测试配置信息和待测接口的目标测试需求信息,确定对待测接口进行性能测试的目标场景参数和目标性能指标项,其中,所述测试配置信息包括满足对应预设测试需求的预设场景参数和预设性能指标项;

基于所述待测接口的接口参数和所述目标场景参数,生成性能测试脚本;

执行所述性能测试脚本,对所述待测接口进行性能测试;

基于所述目标性能指标项,调用预设监控工具,采集所述待测接口在所述性能测试脚本的执行过程中的性能数据;

基于预设规则引擎对所述性能数据进行分析,得到所述待测接口的性能分析结果。

上述如本申请图1所示实施例揭示的接口性能处理装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。

该电子设备还可执行图1的方法,并实现接口性能处理装置在图1所示实施例的功能,本申请实施例在此不再赘述。

当然,除了软件实现方式之外,本申请的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1所示实施例的方法,并具体用于执行以下操作:

基于预设的测试配置信息和待测接口的目标测试需求信息,确定对待测接口进行性能测试的目标场景参数和目标性能指标项,其中,所述测试配置信息包括满足对应预设测试需求的预设场景参数和预设性能指标项;

基于所述待测接口的接口参数和所述目标场景参数,生成性能测试脚本;

执行所述性能测试脚本,对所述待测接口进行性能测试;

基于所述目标性能指标项,调用预设监控工具,采集所述待测接口在所述性能测试脚本的执行过程中的性能数据;

基于预设规则引擎对所述性能数据进行分析,得到所述待测接口的性能分析结果。

总之,以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

技术分类

06120114719458