一种程序接口的性能测试方法及装置与流程

文档序号:11323139阅读:251来源:国知局
一种程序接口的性能测试方法及装置与流程

本发明实施例涉及通信技术领域,更具体的说,涉及程序接口的性能测试方法及装置。



背景技术:

目前,工作人员在测试系统的某个程序接口时,会先通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对该请求报文做出处理,然后服务器再把应答报文发送给客户端,客户端会接收应答报文,最后,工作人员会对测试过程以及测试结果进行记录,以得出测试结果。

如果工作人员要在同一时间测试多个程序接口,那么工作人员会配置同一个测试用例,以测试多个程序接口,并判断多个程序接口是否存在问题。然而,在实际场景中,每个程序接口的使用情况是不同的,所以每个程序接口均使用同一个测试用例并不能真正的测试出每个程序接口存在的问题,所以目前的程序接口的测试方法并不能根据每个程序接口的实际需求来进行相应的测试,从而无法保证测试结果的准确性。



技术实现要素:

本发明实施例提供一种程序接口的性能测试方法及装置,以使每个程序接口根据实际需求来进行相应的测试,以保证测试结果更加准确。

根据本发明实施例的第一方面,提供一种程序接口的性能测试方法,包括:

在程序接口列表中确定待测试的至少两个程序接口;

获取至少两个程序接口的请求分配比例、测试数据和测试请求量;

按照测试请求量和请求分配比例,计算至少两个程序接口中每个程序接口的每秒请求数;

基于每个程序接口的每秒请求数和测试数据模拟数据请求对至少两个程序接口进行性能测试。

可选的,在程序接口列表中确定待测试的至少两个程序接口包括:

显示程序接口列表中的每个程序接口;

在接收到用户输入的选择指令时,根据选择指令在程序接口列表中确定待测试的至少两个程序接口。

可选的,在程序接口列表中确定待测试的至少两个程序接口包括:

获取的待测试程序接口的接口标识;

在程序接口列表中确定与接口标识对应的至少两个程序接口。

可选的,还包括:

获取至少两个程序接口中目标程序接口的历史平均请求耗时;

提取目标程序接口的本次测试的本次平均请求耗时;

在本次平均请求耗时与历史平均请求耗时的差值大于阈值时,确定目标程序接口为瓶颈接口。

可选的,还包括:

获取至少两个程序接口中目标程序接口的历史平均请求耗时;

提取目标程序接口的本次测试的本次平均请求耗时;

在本次平均请求耗时与历史平均请求耗时的差值小于阈值时,输出目标程序接口的本次测试的请求耗时。

根据本发明实施例的第二方面,提供一种程序接口的性能测试装置,包括:

第一确定模块,用于在程序接口列表中确定待测试的至少两个程序接口;

第一获取模块,用于获取至少两个程序接口的请求分配比例、测试数据和测试请求量;

计算模块,用于按照测试请求量和请求分配比例,计算至少两个程序接口中每个程序接口的每秒请求数;

测试模块,用于基于每个程序接口的每秒请求数和测试数据模拟数据请求对至少两个程序接口进行性能测试。

可选的,第一确定模块包括:

显示子模块,用于显示程序接口列表中的每个程序接口;

第一确定子模块,用于在接收到用户输入的选择指令时,根据选择指令在程序接口列表中确定待测试的至少两个程序接口。

可选的,第一确定模块包括:

获取子模块,用于获取的待测试程序接口的接口标识;

第二确定子模块,用于在程序接口列表中确定与接口标识对应的至少两个程序接口。

可选的,还包括:

第二获取模块,用于获取至少两个程序接口中目标程序接口的历史平均请求耗时;

第一提取模块,用于提取目标程序接口的本次测试的本次平均请求耗时;

第二确定模块,用于在本次平均请求耗时与历史平均请求耗时的差值大于阈值时,确定目标程序接口为瓶颈接口。

可选的,还包括:

第三获取模块,用于获取至少两个程序接口中目标程序接口的历史平均请求耗时;

第二提取模块,用于提取目标程序接口的本次测试的本次平均请求耗时;

输出模块,用于在本次平均请求耗时与历史平均请求耗时的差值小于阈值时,输出目标程序接口的本次测试的请求耗时。

与现有技术相比,本实施例提供的技术方案具有以下优点和特点:

在本发明实施例提供的方案中,在确定出待测试的至少两个程序接口以后,便会获取至少两个程序接口的请求分配比例、测试数据和测试请求量,并根据测试请求量和请求分配比例,计算至少两个程序接口中每个程序接口的每秒请求数,最后基于每个程序接口的每秒请求数和测试数据模拟数据请求对至少两个程序接口进行性能测试,所以本发明实施例可以保证每个程序接口根据实际需求来进行相应的测试,从而使得测试结果更加准确。

附图说明

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

图1为本发明实施例提供的一种程序接口的性能测试方法的流程图。

图2为本发明实施例提供的一种程序接口的性能测试装置的示意图。

图3为本发明实施例提供的一种服务器的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

在本发明的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明实施例提供的一种程序接口的性能测试方法的流程图。图1所示的程序接口的性能测试方法可以保证每个程序接口根据实际需求来进行相应的测试,从而使得测试结果更加准确。该方法包括以下步骤。

步骤s11、在程序接口列表中确定待测试的至少两个程序接口。

其中,本发明实施例提供的方法可以应用于服务器,服务器可以为电脑等设备。

程序接口指的是,多个程序或服务之间通过指定的通信协议(例如http协议)交换数据的一种方式。程序接口是操作系统为用户提供的两类接口之一,编程人员在程序中通过程序接口来请求操作系统提供服务。

程序接口列表中记录有多个程序接口的接口标识。例如,假设程序接口列表中记录有5个程序接口的接口标识,这5个程序接口的接口标识分别为接口标识no1、接口标识no2、接口标识no3、接口标识no4和接口标识no5,可以通过这5个程序接口的接口标识来表征对应的5个程序接口。

在程序接口列表中确定待测试的至少两个程序接口的方式有很多种,下面提供两种具体的方式。

第一种方式,在程序接口列表中确定待测试的至少两个程序接口包括以下步骤:首先,显示程序接口列表中的每个程序接口;其次,在接收到用户输入的选择指令时,根据选择指令在程序接口列表中确定待测试的至少两个程序接口。

在第一种方式中,服务器会先显示出程序接口列表中的每个程序接口,以方便工作人员在每个程序接口中选择需要进行测试的程序接口;工作人员会输入选择指令,以使服务器根据选择指令在程序接口列表中确定待测试的至少两个程序接口。

例如,假设服务器会先显示出程序接口列表中记录的5个程序接口的接口标识,这5个程序接口的接口标识分别为接口标识a、接口标识b、接口标识c、接口标识d和接口标识e,以方便工作人员在这5个程序接口的接口标识中选择需要进行测试的程序接口;假设工作人员在显示的程序接口列表中输入选择指令,以点选接口标识a、接口标识b和接口标识c,服务器会根据工作人员输入的选择指令在程序接口列表中确定待测试的程序接口为接口标识a、接口标识b和接口标识c,从而确定出需要进行测试的程序接口。

第二种方式,在程序接口列表中确定待测试的至少两个程序接口包括以下步骤:首先,获取的待测试程序接口的接口标识。其次,在程序接口列表中确定与接口标识对应的至少两个程序接口。

在第二种方式中,服务器会先获取到待测试程序接口的接口标识,以得知需要进行测试的接口标识有哪些;然后,服务器会在程序接口列表中确定与接口标识对应的至少两个程序接口,此时,服务器便得知需要进行测试的程序接口有哪些。

例如,假设程序接口列表中记录有5个程序接口的接口标识,这5个程序接口的接口标识分别为接口标识a、接口标识b、接口标识c、接口标识d和接口标识e。假设服务器会先获取到待测试程序接口的接口标识为接口标识d和接口标识e,然后服务器会在程序接口列表中确定与接口标识d和接口标识e对应的两个程序接口,此时,服务器便知道需要测试的程序接口为哪个。

步骤s12、获取至少两个程序接口的请求分配比例、测试数据和测试请求量。

其中,测试数据为至少两个程序接口在历史时间段内接收到的请求。例如,假设至少两个程序接口的接口标识为接口标识a和接口标识b,服务器会获取到接口标识a和接口标识b在前一个月内接收到的http请求。

测试请求量可以为预先设置好的每秒请求数,每秒请求数的英文缩写为qps,即querypersecond,也即请求数/秒。例如,测试请求量为600个请求数/秒。

请求分配比例为至少两个程序接口之间基于测试请求量的分配比例。请求分配比例可以为预先配置好的,也可以为工作人员根据步骤s11中确定的至少两个程序接口的数量进行配置的。

例如,假设请求分配比例可以为预先配置好的,即请求分配比例为预先被配置为1:2:3;又如,假设请求分配比例为工作人员根据确定出的至少两个程序接口的数量进行配置的,即假设至少两个程序接口的数量为2个,那么工作人员可以根据程序接口的需求来配置请求分配比例为1:2。

步骤s13、按照测试请求量和请求分配比例,计算至少两个程序接口中每个程序接口的每秒请求数。

其中,假设测试请求量为600个请求数/秒,请求分配比例为1:2,至少两个程序接口的接口标识为接口标识a和接口标识b,基于测试请求量600个请求数/秒和请求分配比例1:2可以得知,接口标识a的每秒请求数为200个,接口标识b的每秒请求数为400个。

步骤s14、基于每个程序接口的每秒请求数和测试数据模拟数据请求对至少两个程序接口进行性能测试。

其中,在确定出每个程序接口的每秒请求数以后,便可以利用在步骤s12中获取到的测试数据模拟出数据请求,进而对至少两个程序接口进行性能测试,

在图1所示的实施例中,在服务器确定出待测试的至少两个程序接口以后,便会获取至少两个程序接口的请求分配比例、测试数据和测试请求量,并根据测试请求量和请求分配比例,计算至少两个程序接口中每个程序接口的每秒请求数,最后基于每个程序接口的每秒请求数和测试数据模拟数据请求对至少两个程序接口进行性能测试,所以本发明实施例可以保证每个程序接口根据实际需求来进行相应的测试,从而使得测试结果更加准确。

可选的,在图1所示的实施例中,在步骤s14以后,还可以包括以下子步骤:首先,获取至少两个程序接口中目标程序接口的历史平均请求耗时;其次,提取目标程序接口的本次测试的本次平均请求耗时;最后,在本次平均请求耗时与历史平均请求耗时的差值大于阈值时,确定目标程序接口为瓶颈接口。

其中,历史平均请求耗时指的是,在历史时间段内所有请求消耗的时间的平均值。例如,假设程序接口x在历史时间段内接收到3个请求,分别为请求a、请求b和请求c,其中,请求a消耗的时间为100ms,请求b消耗的时间为80ms,请求c消耗的时间为120ms,那么历史平均请求耗时为(100ms+80ms+120ms)/3=100ms。本次平均请求耗时指的是,本次进行性能测试中所有请求消耗的时间的平均值。

如果本次平均请求耗时与历史平均请求耗时的差值大于阈值,说明目标程序接口可能存在一定的问题,需要工作人员后续分析该目标程序接口中存在的问题,所以在本次平均请求耗时与历史平均请求耗时的差值大于阈值时,服务器会确定目标程序接口为瓶颈接口,以便于工作人员可以对瓶颈接口进行后续分析。

可选的,在图1所示的实施例中,在步骤s14以后,还可以包括以下子步骤:首先,获取至少两个程序接口中目标程序接口的历史平均请求耗时;其次,提取目标程序接口的本次测试的本次平均请求耗时;最后,在本次平均请求耗时与历史平均请求耗时的差值小于阈值时,输出目标程序接口的本次测试的请求耗时。

其中,如果本次平均请求耗时与历史平均请求耗时的差值小于阈值,说明目标程序接口不存在问题,所以只需要输出目标程序接口的本次测试的请求耗时,以使工作人员了解该目标程序接口的运行情况。

图2为本发明实施例提供的一种程序接口的性能测试装置的示意图。图2为图1对应的装置实施例,图2中与图1相同的内容请参见图1对应的实施例即可。参照图2,该装置包括以下模块:

第一确定模块11,用于在程序接口列表中确定待测试的至少两个程序接口。

第一获取模块12,用于获取至少两个程序接口的请求分配比例、测试数据和测试请求量。

计算模块13,用于按照测试请求量和请求分配比例,计算至少两个程序接口中每个程序接口的每秒请求数。

测试模块14,用于基于每个程序接口的每秒请求数和测试数据模拟数据请求对至少两个程序接口进行性能测试。

可选的,第一确定模块11还可以包括显示子模块和第一确定子模块,其中:

显示子模块,用于显示程序接口列表中的每个程序接口。

第一确定子模块,用于在接收到用户输入的选择指令时,根据选择指令在程序接口列表中确定待测试的至少两个程序接口。

可选的,第一确定模块11还可以包括获取子模块和第二确定子模块,其中:

获取子模块,用于获取的待测试程序接口的接口标识。

第二确定子模块,用于在程序接口列表中确定与接口标识对应的至少两个程序接口。

可选的,图2所示的装置还可以包括以下模块:

第二获取模块,用于获取至少两个程序接口中目标程序接口的历史平均请求耗时。

第一提取模块,用于提取目标程序接口的本次测试的本次平均请求耗时。

第二确定模块,用于在本次平均请求耗时与历史平均请求耗时的差值大于阈值时,确定目标程序接口为瓶颈接口。

可选的,图2所示的装置还可以包括以下模块:

第三获取模块,用于获取至少两个程序接口中目标程序接口的历史平均请求耗时。

第二提取模块,用于提取目标程序接口的本次测试的本次平均请求耗时。

输出模块,用于在本次平均请求耗时与历史平均请求耗时的差值小于阈值时,输出目标程序接口的本次测试的请求耗时。

图3为本发明实施例提供的一种服务器的示意图。参照图3,该服务器包括:处理器21和存储器22,其中,存储器22用于存储一条或多条计算机指令,所述一条或多条计算机指令供处理器21调用执行;

处理器21用于:在程序接口列表中确定待测试的至少两个程序接口;获取至少两个程序接口的请求分配比例、测试数据和测试请求量;按照测试请求量和请求分配比例,计算至少两个程序接口中每个程序接口的每秒请求数;基于每个程序接口的每秒请求数和测试数据模拟数据请求对至少两个程序接口进行性能测试。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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