CN109753432A - 一种接口性能测试方法、装置、服务器及系统 - Google Patents
一种接口性能测试方法、装置、服务器及系统 Download PDFInfo
- Publication number
- CN109753432A CN109753432A CN201811572537.XA CN201811572537A CN109753432A CN 109753432 A CN109753432 A CN 109753432A CN 201811572537 A CN201811572537 A CN 201811572537A CN 109753432 A CN109753432 A CN 109753432A
- Authority
- CN
- China
- Prior art keywords
- interface
- target
- performance test
- test
- request
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种接口性能测试方法、装置、服务器及系统,通过将性能测试请求指示的测试信息(测试信息指示目标接口和目标参数,目标接口是基于thrift框架生成的应用的服务端接口)赋值给接口测试模板中的变量,可以生成接口性能测试方法,进而执行该接口性能测试方法可以模拟客户端根据目标参数向目标接口发送请求,通过接收并分析目标接口返回的该请求的请求结果,可以得到该目标接口的接口性能。本发明是基于模拟客户端向服务端接口发送请求的方式实现的对服务端接口的性能测试,考虑了客户端与服务端接口之间信息传输的网络耗损,提高了测试结果的准确性,并且不需对服务端接口代码进行额外打点,降低了服务端接口性能测试的繁琐性。
Description
技术领域
本发明涉及接口测试技术领域,更具体地说,涉及一种接口性能测试方法、装置、服务器及系统。
背景技术
随着计算机语言种类的增多,为了在不同计算机语言开发的应用之间构建无缝结合的、高效的服务,thrift框架应用越来越广泛。为了保证基于thrift框架开发的应用的高效、稳定的运行,往往需要对基于thrift框架开发的应用的服务端接口进行性能测试。
目前是通过在服务端接口代码中打点,模拟客户端请求服务端接口服务,以记录服务端接口的请求运行信息,并对请求运行信息进行分析的方式,实现的对服务端接口性能的测试。
然而,这种对服务端接口代码打点的方式,需要人工在服务端代码中写入用于记录服务端接口的请求运行信息的代码,因此,通常存在服务端接口性能测试繁琐的问题;并且因其未考虑客户端与服务端接口之间信息传输在网络方面的耗损,所以性能测试结果往往不准确。
发明内容
有鉴于此,本发明提出一种接口性能测试方法、装置、服务器及系统,以避免现有技术服务端接口性能测试过程繁琐、性能测试结果不准确的问题。
为了实现上述目的,现提出的方案如下:
一种接口性能测试方法,包括:
接收携带测试信息的接口性能测试请求,所述测试信息指示目标接口以及用于对所述目标接口进行性能测试的目标参数,所述目标接口为基于thrift框架生成的应用的服务端接口;
利用反射机制将所述测试信息赋值给接口测试模板中的变量,在所述接口测试模板中构建测试对象生成接口性能测试方法,所述测试对象指示所述目标接口和目标参数;
执行所述接口性能测试方法,模拟客户端根据所述目标参数向所述目标接口发送请求;
接收并分析所述目标接口返回的所述请求的请求结果,得到所述目标接口的接口性能。
优选的,所述接收携带测试信息的接口性能测试请求,包括:
目标压力测试服务器接收携带测试信息的接口性能测试请求,所述目标压力测试服务器为至少一个用于执行接口性能测试的压力测试服务器中、与发送所述接口性能测试请求的用户对应的压力测试服务器。
优选的,所述应用的至少一个服务端接口分布于由至少一个应用服务器构成的应用服务器集群中;所述执行所述接口性能测试方法,模拟客户端根据所述目标参数向所述目标接口发送请求,包括:
获取所述测试信息指示的部署所述目标接口的目标应用服务器;
执行所述接口性能测试方法,模拟客户端根据所述目标参数向部署在所述目标应用服务器中的所述目标接口发送请求。
优选的,所述执行所述接口性能测试方法,模拟客户端根据所述目标参数向所述目标接口发送请求,包括:
确定客户端代码文件,所述客户端代码文件用于指示客户端与所述应用的服务端接口之间的信息交互协议;
根据所述客户端代码文件,执行所述接口性能测试方法,模拟客户端根据所述目标参数向所述目标接口发送请求。
优选的,所述确定客户端代码文件,包括:
从所述测试信息指示的路径中获取所述应用的接口描述文件;
执行客户端代码生成命令,基于所述应用接口描述文件生成符合目标计算机程序语言的客户端代码。
优选的,所述测试信息还指示测试周期,所述执行所述接口性能测试方法,模拟客户端根据所述目标参数向所述目标接口发送请求,包括:
执行所述接口性能测试方法,在所述测试周期内模拟客户端根据所述目标参数向所述目标接口发送请求。
优选的,所述执行所述接口性能测试方法,模拟客户端根据所述目标参数向所述目标接口发送请求,包括:
基于至少一个线程中的每个线程执行所述接口性能测试方法,模拟客户端根据所述目标参数向所述目标接口发送请求,所述至少一个线程的线程数与所述测试信息指示的测试线程数相同。
一种接口性能测试装置,包括:
接口性能测试请求接收单元,用于接收携带测试信息的接口性能测试请求,所述测试信息指示目标接口以及用于对所述目标接口进行性能测试的目标参数,所述目标接口为基于thrift框架生成的应用的服务端接口;
接口性能测试方法生成单元,用于利用反射机制将所述测试信息赋值给接口测试模板中的变量,在所述接口测试模板中构建测试对象生成接口性能测试方法,所述测试对象指示所述目标接口和目标参数;
接口性能测试单元,用于执行所述接口性能测试方法,模拟客户端根据所述目标参数向所述目标接口发送请求;
接口性能分析单元,用于接收并分析所述目标接口返回的所述请求的请求结果,得到所述目标接口的接口性能。
优选的,所述接口性能测试请求接收单元,具体用于:
目标压力测试服务器接收携带测试信息的接口性能测试请求,所述目标压力测试服务器为至少一个用于执行接口性能测试的压力测试服务器中、与发送所述接口性能测试请求的用户对应的压力测试服务器。
优选的,所述应用的至少一个服务端接口分布于由至少一个应用服务器构成的应用服务器集群中;所述接口性能测试单元,包括:
目标应用服务器获取单元,用于获取所述测试信息指示的部署所述目标接口的目标应用服务器;
第一接口性能测试子单元,用于执行所述接口性能测试方法,模拟客户端根据所述目标参数向部署在所述目标应用服务器中的所述目标接口发送请求。
优选的,所述接口性能测试单元,包括:
客户端代码文件生成单元,用于确定客户端代码文件,所述客户端代码文件用于指示客户端与所述应用的服务端接口之间的信息交互协议;
第二接口性能测试子单元,用于根据所述客户端代码文件,执行所述接口性能测试方法,模拟客户端根据所述目标参数向所述目标接口发送请求。
优选的,所述客户端代码文件生成单元,包括:
接口描述文件获取单元,用于从所述测试信息指示的路径中获取所述应用的接口描述文件;
客户端代码文件生成子单元,用于执行客户端代码生成命令,基于所述应用接口描述文件生成符合目标计算机程序语言的客户端代码。
优选的,所述测试信息还指示测试周期,所述接口性能测试单元,具体用于:执行所述接口性能测试方法,在所述测试周期内模拟客户端根据所述目标参数向所述目标接口发送请求。
优选的,所述接口性能测试单元,具体用于:
基于至少一个线程中的每个线程执行所述接口性能测试方法,模拟客户端根据所述目标参数向所述目标接口发送请求,所述至少一个线程的线程数与所述测试信息指示的测试线程数相同。
一种服务器,包括存储器和处理器,所述存储器用于存储程序,所述处理器调用所述程序,所述程序用于:
接收携带测试信息的接口性能测试请求,所述测试信息指示目标接口以及用于对所述目标接口进行性能测试的目标参数,所述目标接口为基于thrift框架生成的应用的服务端接口;
利用反射机制将所述测试信息赋值给接口测试模板中的变量,在所述接口测试模板中构建测试对象生成接口性能测试方法,所述测试对象指示所述目标接口和目标参数;
执行所述接口性能测试方法,模拟客户端根据所述目标参数向所述目标接口发送请求;
接收并分析所述目标接口返回的所述请求的请求结果,得到所述目标接口的接口性能。
一种接口性能测试系统,包括至少一个压力测试服务器,所述压力测试服务器包括存储器和处理器,所述存储器用于存储程序,所述处理器调用所述程序,所述程序用于:
接收携带测试信息的接口性能测试请求,所述测试信息指示目标接口以及用于对所述目标接口进行性能测试的目标参数,所述目标接口为基于thrift框架生成的应用的服务端接口;
利用反射机制将所述测试信息赋值给接口测试模板中的变量,在所述接口测试模板中构建测试对象生成接口性能测试方法,所述测试对象指示所述目标接口和目标参数;
执行所述接口性能测试方法,模拟客户端根据所述目标参数向所述目标接口发送请求;
接收并分析所述目标接口返回的所述请求的请求结果,得到所述目标接口的接口性能。
优选的,还包括任务分发服务器,所述任务分发服务器用于:
接收用户发送的携带测试信息的接口性能测试请求;
从所述至少一个压力测试服务器中,确定与发送所述接口性能测试请求的用户对应的目标压力测试服务器;
向所述目标压力测试服务器发送所述接口性能测试请求。
本发明提供一种接口性能测试方法、装置、服务器及系统,通过将性能测试请求指示的测试信息(测试信息指示目标接口和目标参数,目标接口是基于thrift框架生成的应用的服务端接口)赋值给接口测试模板中的变量,可以生成接口性能测试方法,进而执行该接口性能测试方法可以模拟客户端根据目标参数向目标接口发送请求,通过接收并分析目标接口返回的该请求的请求结果,可以得到该目标接口的接口性能。本发明是基于模拟客户端向服务端接口发送请求的方式实现的对服务端接口的性能测试,考虑了客户端与服务端接口之间信息传输的网络耗损,提高了测试结果的准确性,并且不需对服务端接口代码进行额外打点,降低了服务端接口性能测试的繁琐性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种接口性能测试方法流程图;
图2为本申请实施例提供的一种执行接口性能测试方法,模拟客户端根据目标参数向目标接口发送请求的方法流程图;
图3为本申请实施例提供的一种接口性能测试装置的结构示意图;
图4为本申请实施例提供的一种接口性能测试系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例:
本申请实施例提供的一种接口性能测试方法、装置及系统,用于对基于thrift框架生成的应用中的服务端接口的性能测试。参见图1,为本申请实施例提供的一种接口性能测试方法流程图。
如图1所示的接口性能测试方法应用于压力测试服务器。为了缓解测试压力,可以提供至少一个压力测试服务器,来分担测试任务,进而可以提高测试效率。
如图1所示的接口性能测试方法包括:
S101、接收携带测试信息的接口性能测试请求,测试信息指示目标接口以及用于对目标接口进行性能测试的目标参数,目标接口为基于thrift框架生成的应用的服务端接口;
在本申请实施例中,压力测试服务器可以接收用户发送的携带测试信息的接口性能测试请求,并响应该接口性能测试请求,模拟客户端根据该测试信息指示的目标参数向该测试信息指示的目标接口发送请求,以实现对该目标接口的性能测试。
其中,可以提供压力测试平台,以便于用户在该压力测试平台中输入测试信息,并通过压力测试平台向压力测试服务器发送携带该测试信息的接口性能测试请求。测试信息指示有目标接口和目标参数,目标接口是待进行性能测试的基于thrift框架生成的应用的服务端接口,目标参数是用于该目标接口进行性能测试的参数。
进一步的,在本申请实施例提供的一种接口性能测试方法中,用户在压力测试平台中输入测试信息,并通过压力测试平台发送携带测试信息的接口性能测试请求后,该接口性能测试请求可以先发送到任务分发服务器,进而由任务分发服务器从至少一个压力测试服务器中确定用于处理该接口性能测试请求的目标压力测试服务器,并将该接口性能测试请求发送至该目标压力测试服务器,以便于该目标压力测试服务器响应该接口性能测试请求,利用该接口性能测试请求携带的测试信息指示的目标参数对该测试信息指示的目标接口进行性能测试,其中,目标压力测试服务器响应接口性能测试请求执行接口性能测试的过程参见步骤S102-S104,在此不做详细描述。
在本申请实施例中,任务分发服务器接收性能测试请求,并从至少一个压力测试服务器中确定目标压力测试服务器的方式可以为:确定发送性能测试请求的用户,将至少一个压力测试服务器中与该用户对应的压力服务器作为目标压力测试服务器。
其中,可以预先对至少一个压力测试服务器进行分组,不同组的压力测试服务器对应不同的用户,每组压力测试服务器的个数为多个,每个组的压力测试服务器可以对应至少一个用户;任务分发服务器接收到性能测试请求后,可以确定发送该性能测试请求的用户,进而确定该用户对应的一组压力测试服务器,并从该组压力测试服务器中确定一个压力测试服务器作为目标压力测试服务器。在本申请实施例中,从该组压力测试服务器中确定一个压力测试服务器作为目标压力测试服务器的方式,可以为从该组压力测试服务器中选择资源占用率最低的压力测试服务器作为目标压力测试服务器。
在本申请实施例中,任务分发服务器接收到接口性能测试请求后,还可以从至少一个压力测试服务器中选取一个压力测试服务器,作为目标压力测试服务器。
以上仅仅是本申请实施例提供的任务分发服务器确定目标压力测试服务器的优选方式,有关任务分发服务器确定目标压力测试服务器的具体方式,发明人可根据自己的需求进行设置,在此不做限定。
S102、利用反射机制将测试信息赋值给接口测试模板中的变量,在接口测试模板中构建测试对象生成接口性能测试方法,测试对象指示目标接口和目标参数;
在本申请实施例中,压力测试服务器可以接收性能测试请求,获取接口测试模板,利用反射机制将该性能测试请求携带的测试信息赋值给该接口测试模板中的变量,生成接口性能测试方式。
作为本申请实施例的一种优选方式,测试信息可以包括接口信息和参数信息,其中接口信息用于指示目标接口,参数信息用于指示目标参数。
其中,接口测试模板可以认为是一段程序代码,该程序代码中暴露用于被接口信息赋值的第一变量和用于被参数信息赋值的第二变量,压力测试服务器在接收到接口性能测试请求后,可以将测试信息中的接口信息赋值给第一变量,将测试信息中的参数信息赋值为第二变量,以在接口测试模板中构建测试对象(该测试对象包括目标接口和目标参数),进而将构建测试对象后的接口测试模板作为接口性能测试方法。
在本申请实施例中,接口信息可以包括目标接口的url、目标接口中的待测方法名称和待测方法所在类的全类名。其中,目标接口的url可以包括目标接口所位于的应用服务器所属的IP地址、待测方法所在类的存储路径等等。参数信息可以包括目标参数的json字符串和目标参数的全类名。
相应的,在接口信息包括目标接口的url、目标接口中的待测方法名称和待测方法所在类的全类名时,接口测试模板中的第一变量包括3个第一子变量,这3个第一子变量与目标接口的url、目标接口中的待测方法名称和待测方法所在类的全类名一一对应。比如,这3个第一子变量分别为第一子变量1、第一子变量2和第一子变量3时,第一子变量1与目标接口的url对应,用于被接口信息中的目标接口的url赋值;第一子变量2与目标接口中的待测方法名称对应,用于被接口信息中的目标接口中的待测方法名称赋值;第一子变量3与目标接口中的待测方法所在类的全类名对应,用于被接口信息中的目标接口中的待测方法所在类的全类名赋值。
在参数信息包括目标参数的json字符串和目标参数的全类名时,接口测试模板中的第二变量包括2个第二子变量,这两个第二子变量与目标参数的json字符串和目标参数的全类名一一对应。比如,这2个第二子变量分别为第二子变量1和第二子变量2时,第二子变量1与目标参数的json字符串对应,用于被参数信息中的目标参数的json字符串赋值;第二子变量2与目标参数的全类名对应,用于被参数信息中的目标参数的全类名赋值。
以上仅仅是本申请实施例提供的测试信息的优选内容,有关测试信息所包括的具体内容,发明人可根据自己的需求进行设置,在此不做限定。
S103、执行接口性能测试方法,模拟客户端根据目标参数向目标接口发送请求;
在本申请实施例中,压力测试服务器在生成接口性能测试方法后,可以执行该接口性能测试方法,根据目标参数向目标接口发送请求,以实现模拟客户端向目标接口发送请求的目的。
作为本申请实施例的一种优选方式,基于thrift生成的应用的服务端接口可以分布于多台应用服务器中,为了快速的对应用中的目标接口进行测试,接口性能测试请求中的测试信息除了指示目标接口外,还可以进一步指示部署该目标接口的目标应用服务器。相应的,压力测试服务器在接收到接口性能测试请求,生成接口性能测试方法,以对该接口性能测试请求携带的测试信息指示的目标接口进行测试时,可以先定位部署该目标接口的目标应用服务器,进而执行该接口性能测试方法,模拟客户端根据该接口性能测试请求携带的测试信息指示的目标参数,向部署在该目标应用服务器中的该目标接口发送请求,以提高接口性能测试效率。
进一步的,在本申请实施例提供的一种接口性能测试方法中,接口性能测试请求携带的测试信息还可以指示测试周期,在接口性能测试请求携带的测试信息还可以指示测试周期的情况下,执行接口性能测试方法,模拟客户端根据目标参数向目标接口发送请求,包括:执行接口性能测试方法,在测试周期内模拟客户端根据目标参数向目标接口发送请求。
比如,若接口性能测试请求携带的测试信息指示目标参数、目标接口和测试周期,且测试周期为20分钟时,相应的压力测试服务器在接收到该接口性能测试请求后,首先基于该接口性能测试请求携带的测试信息生成接口性能测试方法,进而执行该接口性能测试方法模拟客户端根据目标参数向目标接口发送请求,并在接收到目标接口返回的该请求的请求结果后,判断当前时间距离接收到该接口性能测试请求的时间之间的时间间隔是否达到20分钟,若否,返回执行“该接口性能测试方法模拟客户端根据目标参数向目标接口发送请求”步骤;若是,停止执行并基于接收到的各个请求结果分析该目标接口的接口性能。
进一步的,在本申请实施例提供的一种接口性能测试方法中,接口性能测试请求携带的测试信息还可以指示测试线程数,相应的,执行接口性能测试方法,模拟客户端根据目标参数向目标接口发送请求,包括:基于至少一个线程中的每个线程执行接口性能测试方法,模拟客户端根据目标参数向目标接口发送请求,至少一个线程的线程数与测试信息指示的测试线程数相同。
比如,若接口性能测试请求携带的测试信息中还包括测试线程数,且测试线程数为3时,压力测试服务器在接收到接口性能测试请求,生成接口性能测试方法后,可以由3个线程并行执行该接口性能测试方法;进而基于对这3个线程得到的请求结果的分析得到该接口性能测试请求携带的测试信息指示的目标接口的接口性能。
S104、接收并分析目标接口返回的请求的请求结果,得到目标接口的接口性能。
在本申请实施例中,目标接口接收到压力测试服务器根据目标参数向目标接口发送的请求后,可以响应该请求,获取与该目标参数对应的请求结果,并将该请求结果返回给该压力测试服务器。
压力测试服务器通过目标接口返回的请求的请求结果的分析,可以得到该目标接口的接口性能。
在本申请实施例中,压力测试服务器可以基于目标接口返回的请求的请求结果的准确性,和/或,目标接口对请求的响应时间,分析得到该目标接口的接口性能。其中,可以获取压力测试服务器向目标接口发送请求的第一时间戳,获取该压力测试服务器接收到该目标接口返回的该请求的请求结果的第二时间戳,进而将第二时间戳和第一时间戳之间的时间间隔作为目标接口对该请求的响应时间。
为了便于对本申请实施例提供的一种接口性能测试方法的理解,现对该方法中的一种执行接口性能测试方法,模拟客户端根据目标参数向目标接口发送请求的方法进行详细介绍,具体请参见图2。
如图2所示,该方法包括:
S201、确定客户端代码文件,客户端代码文件用于指示客户端与应用的服务端接口之间的信息交互协议;
在本申请实施例中,接口性能测试请求还可以指示路径,该路径是基于thrift框架生成的应用中接口描述文件的存储路径。其中,应用的接口描述文件可以是应用的.thrift文件,接口性能测试请求指示的路径可以是git地址,git地址指示应用的.thrift文件的存储路径。
压力测试服务器接收到接口性能测试请求后,还可以根据该接口性能测试请求携带的测试信息指示的路径获取应用的接口描述文件,进而执行客户端代码生成命令,基于该接口描述文件生成客户端代码文件。
在接口描述文件为.thrift文件时3,执行的客户端代码生成命令可以是thrift命令。
在本申请实施例中,可以获取目标计算机程序语言,该目标计算机程序语言可以是预设的计算机程序语言也可以是在接口性能测试请求的测试信息中指示的计算机程序语言,相应的,可以基于接口描述文件生成的客户端代码文件中的代码可以是符合目标计算机程序语言的代码。
S202、根据客户端代码文件,执行接口性能测试方法,模拟客户端根据目标参数向目标接口发送请求。
在本申请实施例中,客户端代码文件中可以包括测试对象所属的类,根据客户端代码文件,可以执行接口性能测试方法,以模拟客户端根据目标参数向目标接口发送请求。
基于上述实施例对本申请实施例提供的一种执行接口性能测试方法,模拟客户端根据目标参数向目标接口发送请求的详细介绍,使得本申请实施例提供的一种接口性能测试方法更加清楚、完整。
图3为本申请实施例提供的一种接口性能测试装置的结构示意图。
如图3所示,该装置包括:
接口性能测试请求接收单元31,用于接收携带测试信息的接口性能测试请求,测试信息指示目标接口以及用于对目标接口进行性能测试的目标参数,目标接口为基于thrift框架生成的应用的服务端接口;
接口性能测试方法生成单元32,用于利用反射机制将测试信息赋值给接口测试模板中的变量,在接口测试模板中构建测试对象生成接口性能测试方法,测试对象指示目标接口和目标参数;
接口性能测试单元33,用于执行接口性能测试方法,模拟客户端根据目标参数向目标接口发送请求;
接口性能分析单元34,用于接收并分析目标接口返回的请求的请求结果,得到目标接口的接口性能。
在本申请实施例中,接口性能测试请求接收单元31具体用于:目标压力测试服务器接收携带测试信息的接口性能测试请求,目标压力测试服务器为至少一个用于执行接口性能测试的压力测试服务器中、与发送接口性能测试请求的用户对应的压力测试服务器。
在本申请实施例中,应用的至少一个服务端接口分布于由至少一个应用服务器构成的应用服务器集群中,接口性能测试单元33,包括:目标应用服务器获取单元,用于获取测试信息指示的部署目标接口的目标应用服务器;第一接口性能测试子单元,用于执行接口性能测试方法,模拟客户端根据目标参数向部署在目标应用服务器中的目标接口发送请求。
在本申请实施例中,接口性能测试单元33,包括:
客户端代码文件生成单元,用于确定客户端代码文件,客户端代码文件用于指示客户端与应用的服务端接口之间的信息交互协议;
第二接口性能测试子单元,用于根据客户端代码文件,执行接口性能测试方法,模拟客户端根据目标参数向目标接口发送请求。
在本申请实施例中,优选的,客户端代码文件生成单元,包括:
接口描述文件获取单元,用于从测试信息指示的路径中获取应用的接口描述文件;
客户端代码文件生成子单元,用于执行客户端代码生成命令,基于应用接口描述文件生成符合目标计算机程序语言的客户端代码。
进一步的,在本申请实施例中,接口性能测试请求中的测试信息还指示测试周期,接口性能测试单元33,具体用于执行接口性能测试方法,在测试周期内模拟客户端根据目标参数向目标接口发送请求。
进一步的,在本申请实施例中,接口性能测试请求中的测试信息还指示测试线程数,接口性能测试单元33,具体用于基于至少一个线程中的每个线程执行接口性能测试方法,模拟客户端根据目标参数向目标接口发送请求,至少一个线程的线程数与测试信息指示的测试线程数相同。
进一步的,本申请实施例还提供一种服务器,该服务器包括存储器和处理器,存储器用于存储程序,处理器调用程序,程序用于:
接收携带测试信息的接口性能测试请求,测试信息指示目标接口以及用于对目标接口进行性能测试的目标参数,目标接口为基于thrift框架生成的应用的服务端接口;
利用反射机制将测试信息赋值给接口测试模板中的变量,在接口测试模板中构建测试对象生成接口性能测试方法,测试对象指示目标接口和目标参数;
执行接口性能测试方法,模拟客户端根据目标参数向目标接口发送请求;
接收并分析目标接口返回的请求的请求结果,得到目标接口的接口性能。
可选的,程序的细化功能和扩展功能可参照下文描述。
进一步的本实施例还提供一种接口性能测试系统,参见图4。
如图4所示,该接口性能测试系统包括至少一个压力测试服务器41,压力测试服务器41包括存储器和处理器,存储器用于存储程序,处理器调用程序,程序用于:
接收携带测试信息的接口性能测试请求,测试信息指示目标接口以及用于对目标接口进行性能测试的目标参数,目标接口为基于thrift框架生成的应用的服务端接口;
利用反射机制将测试信息赋值给接口测试模板中的变量,在接口测试模板中构建测试对象生成接口性能测试方法,测试对象指示目标接口和目标参数;
执行接口性能测试方法,模拟客户端根据目标参数向目标接口发送请求;
接收并分析目标接口返回的请求的请求结果,得到目标接口的接口性能。
进一步的,如图4所示的接口性能测试系统,还可以包括任务分发服务器42,该任务分发服务器可以用于:
接收用户发送的携带测试信息的接口性能测试请求;
从至少一个压力测试服务器中,确定与发送接口性能测试请求的用户对应的目标压力测试服务器;
向目标压力测试服务器发送接口性能测试请求。
本发明提供一种接口性能测试方法、装置、服务器及系统,通过将性能测试请求指示的测试信息(测试信息指示目标接口和目标参数,目标接口是基于thrift框架生成的应用的服务端接口)赋值给接口测试模板中的变量,可以生成接口性能测试方法,进而执行该接口性能测试方法可以模拟客户端根据目标参数向目标接口发送请求,通过接收并分析目标接口返回的该请求的请求结果,可以得到该目标接口的接口性能。本发明是基于模拟客户端向服务端接口发送请求的方式实现的对服务端接口的性能测试,考虑了客户端与服务端接口之间信息传输的网络耗损,提高了测试结果的准确性,并且不需对服务端接口代码进行额外打点,降低了服务端接口性能测试的繁琐性。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对本发明所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (17)
1.一种接口性能测试方法,其特征在于,包括:
接收携带测试信息的接口性能测试请求,所述测试信息指示目标接口以及用于对所述目标接口进行性能测试的目标参数,所述目标接口为基于thrift框架生成的应用的服务端接口;
利用反射机制将所述测试信息赋值给接口测试模板中的变量,在所述接口测试模板中构建测试对象生成接口性能测试方法,所述测试对象指示所述目标接口和目标参数;
执行所述接口性能测试方法,模拟客户端根据所述目标参数向所述目标接口发送请求;
接收并分析所述目标接口返回的所述请求的请求结果,得到所述目标接口的接口性能。
2.根据权利要求1所述的方法,其特征在于,所述接收携带测试信息的接口性能测试请求,包括:
目标压力测试服务器接收携带测试信息的接口性能测试请求,所述目标压力测试服务器为至少一个用于执行接口性能测试的压力测试服务器中、与发送所述接口性能测试请求的用户对应的压力测试服务器。
3.根据权利要求1所述的方法,其特征在于,所述应用的至少一个服务端接口分布于由至少一个应用服务器构成的应用服务器集群中;所述执行所述接口性能测试方法,模拟客户端根据所述目标参数向所述目标接口发送请求,包括:
获取所述测试信息指示的部署所述目标接口的目标应用服务器;
执行所述接口性能测试方法,模拟客户端根据所述目标参数向部署在所述目标应用服务器中的所述目标接口发送请求。
4.根据权利要求1所述的方法,其特征在于,所述执行所述接口性能测试方法,模拟客户端根据所述目标参数向所述目标接口发送请求,包括:
确定客户端代码文件,所述客户端代码文件用于指示客户端与所述应用的服务端接口之间的信息交互协议;
根据所述客户端代码文件,执行所述接口性能测试方法,模拟客户端根据所述目标参数向所述目标接口发送请求。
5.根据权利要求4所述的方法,其特征在于,所述确定客户端代码文件,包括:
从所述测试信息指示的路径中获取所述应用的接口描述文件;
执行客户端代码生成命令,基于所述应用接口描述文件生成符合目标计算机程序语言的客户端代码。
6.根据权利要求1所述的方法,其特征在于,所述测试信息还指示测试周期,所述执行所述接口性能测试方法,模拟客户端根据所述目标参数向所述目标接口发送请求,包括:
执行所述接口性能测试方法,在所述测试周期内模拟客户端根据所述目标参数向所述目标接口发送请求。
7.根据权利要求1所述的方法,其特征在于,所述执行所述接口性能测试方法,模拟客户端根据所述目标参数向所述目标接口发送请求,包括:
基于至少一个线程中的每个线程执行所述接口性能测试方法,模拟客户端根据所述目标参数向所述目标接口发送请求,所述至少一个线程的线程数与所述测试信息指示的测试线程数相同。
8.一种接口性能测试装置,其特征在于,包括:
接口性能测试请求接收单元,用于接收携带测试信息的接口性能测试请求,所述测试信息指示目标接口以及用于对所述目标接口进行性能测试的目标参数,所述目标接口为基于thrift框架生成的应用的服务端接口;
接口性能测试方法生成单元,用于利用反射机制将所述测试信息赋值给接口测试模板中的变量,在所述接口测试模板中构建测试对象生成接口性能测试方法,所述测试对象指示所述目标接口和目标参数;
接口性能测试单元,用于执行所述接口性能测试方法,模拟客户端根据所述目标参数向所述目标接口发送请求;
接口性能分析单元,用于接收并分析所述目标接口返回的所述请求的请求结果,得到所述目标接口的接口性能。
9.根据权利要求8所述的装置,其特征在于,所述接口性能测试请求接收单元,具体用于:
目标压力测试服务器接收携带测试信息的接口性能测试请求,所述目标压力测试服务器为至少一个用于执行接口性能测试的压力测试服务器中、与发送所述接口性能测试请求的用户对应的压力测试服务器。
10.根据权利要求8所述的装置,其特征在于,所述应用的至少一个服务端接口分布于由至少一个应用服务器构成的应用服务器集群中;所述接口性能测试单元,包括:
目标应用服务器获取单元,用于获取所述测试信息指示的部署所述目标接口的目标应用服务器;
第一接口性能测试子单元,用于执行所述接口性能测试方法,模拟客户端根据所述目标参数向部署在所述目标应用服务器中的所述目标接口发送请求。
11.根据权利要求8所述的装置,其特征在于,所述接口性能测试单元,包括:
客户端代码文件生成单元,用于确定客户端代码文件,所述客户端代码文件用于指示客户端与所述应用的服务端接口之间的信息交互协议;
第二接口性能测试子单元,用于根据所述客户端代码文件,执行所述接口性能测试方法,模拟客户端根据所述目标参数向所述目标接口发送请求。
12.根据权利要求11所述的装置,其特征在于,所述客户端代码文件生成单元,包括:
接口描述文件获取单元,用于从所述测试信息指示的路径中获取所述应用的接口描述文件;
客户端代码文件生成子单元,用于执行客户端代码生成命令,基于所述应用接口描述文件生成符合目标计算机程序语言的客户端代码。
13.根据权利要求8所述的装置,其特征在于,所述测试信息还指示测试周期,所述接口性能测试单元,具体用于:执行所述接口性能测试方法,在所述测试周期内模拟客户端根据所述目标参数向所述目标接口发送请求。
14.根据权利要求8所述的装置,其特征在于,所述接口性能测试单元,具体用于:
基于至少一个线程中的每个线程执行所述接口性能测试方法,模拟客户端根据所述目标参数向所述目标接口发送请求,所述至少一个线程的线程数与所述测试信息指示的测试线程数相同。
15.一种服务器,其特征在于,包括存储器和处理器,所述存储器用于存储程序,所述处理器调用所述程序,所述程序用于:
接收携带测试信息的接口性能测试请求,所述测试信息指示目标接口以及用于对所述目标接口进行性能测试的目标参数,所述目标接口为基于thrift框架生成的应用的服务端接口;
利用反射机制将所述测试信息赋值给接口测试模板中的变量,在所述接口测试模板中构建测试对象生成接口性能测试方法,所述测试对象指示所述目标接口和目标参数;
执行所述接口性能测试方法,模拟客户端根据所述目标参数向所述目标接口发送请求;
接收并分析所述目标接口返回的所述请求的请求结果,得到所述目标接口的接口性能。
16.一种接口性能测试系统,其特征在于,包括至少一个压力测试服务器,所述压力测试服务器包括存储器和处理器,所述存储器用于存储程序,所述处理器调用所述程序,所述程序用于:
接收携带测试信息的接口性能测试请求,所述测试信息指示目标接口以及用于对所述目标接口进行性能测试的目标参数,所述目标接口为基于thrift框架生成的应用的服务端接口;
利用反射机制将所述测试信息赋值给接口测试模板中的变量,在所述接口测试模板中构建测试对象生成接口性能测试方法,所述测试对象指示所述目标接口和目标参数;
执行所述接口性能测试方法,模拟客户端根据所述目标参数向所述目标接口发送请求;
接收并分析所述目标接口返回的所述请求的请求结果,得到所述目标接口的接口性能。
17.根据权利要求16所述的系统,其特征在于,还包括任务分发服务器,所述任务分发服务器用于:
接收用户发送的携带测试信息的接口性能测试请求;
从所述至少一个压力测试服务器中,确定与发送所述接口性能测试请求的用户对应的目标压力测试服务器;
向所述目标压力测试服务器发送所述接口性能测试请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811572537.XA CN109753432A (zh) | 2018-12-21 | 2018-12-21 | 一种接口性能测试方法、装置、服务器及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811572537.XA CN109753432A (zh) | 2018-12-21 | 2018-12-21 | 一种接口性能测试方法、装置、服务器及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109753432A true CN109753432A (zh) | 2019-05-14 |
Family
ID=66402879
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811572537.XA Pending CN109753432A (zh) | 2018-12-21 | 2018-12-21 | 一种接口性能测试方法、装置、服务器及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109753432A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110620702A (zh) * | 2019-09-19 | 2019-12-27 | 聚好看科技股份有限公司 | 服务器的压力检测方法、装置及系统 |
CN110764982A (zh) * | 2019-09-24 | 2020-02-07 | 钛马信息网络技术有限公司 | 一种测试stomp应用程序的方法及装置 |
CN111510330A (zh) * | 2020-04-10 | 2020-08-07 | 中国联合网络通信集团有限公司 | 接口管理装置、方法及存储介质 |
CN111752644A (zh) * | 2020-06-18 | 2020-10-09 | 北京字节跳动网络技术有限公司 | 接口模拟方法、装置、设备及存储介质 |
CN112231186A (zh) * | 2019-07-15 | 2021-01-15 | 深圳市腾讯网域计算机网络有限公司 | 一种性能数据的处理方法、装置、电子设备及介质 |
CN112491654A (zh) * | 2020-11-19 | 2021-03-12 | 广州力挚网络科技有限公司 | 一种性能测试方法、装置、电子设备及存储介质 |
CN112506751A (zh) * | 2020-11-27 | 2021-03-16 | 浪潮电子信息产业股份有限公司 | 一种服务器整机性能的对比测试方法、装置、设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105099811A (zh) * | 2015-06-03 | 2015-11-25 | 北京金山安全软件有限公司 | 一种接口测试方法和装置 |
CN105404580A (zh) * | 2015-10-23 | 2016-03-16 | 努比亚技术有限公司 | 分布式压力测试系统和方法 |
CN106598851A (zh) * | 2016-12-05 | 2017-04-26 | 广州唯品会信息科技有限公司 | 软件接口测试方法及系统 |
CN106919509A (zh) * | 2017-03-09 | 2017-07-04 | 腾讯科技(深圳)有限公司 | 一种客户端生成方法、装置及电子设备 |
CN107203459A (zh) * | 2016-03-16 | 2017-09-26 | 阿里巴巴集团控股有限公司 | 接口性能测试方法和装置 |
CN107832207A (zh) * | 2017-10-16 | 2018-03-23 | 深圳市牛鼎丰科技有限公司 | 接口性能测试方法、装置、存储介质和计算机设备 |
CN107908541A (zh) * | 2017-07-26 | 2018-04-13 | 平安壹钱包电子商务有限公司 | 接口测试方法、装置、计算机设备及存储介质 |
-
2018
- 2018-12-21 CN CN201811572537.XA patent/CN109753432A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105099811A (zh) * | 2015-06-03 | 2015-11-25 | 北京金山安全软件有限公司 | 一种接口测试方法和装置 |
CN105404580A (zh) * | 2015-10-23 | 2016-03-16 | 努比亚技术有限公司 | 分布式压力测试系统和方法 |
CN107203459A (zh) * | 2016-03-16 | 2017-09-26 | 阿里巴巴集团控股有限公司 | 接口性能测试方法和装置 |
CN106598851A (zh) * | 2016-12-05 | 2017-04-26 | 广州唯品会信息科技有限公司 | 软件接口测试方法及系统 |
CN106919509A (zh) * | 2017-03-09 | 2017-07-04 | 腾讯科技(深圳)有限公司 | 一种客户端生成方法、装置及电子设备 |
CN107908541A (zh) * | 2017-07-26 | 2018-04-13 | 平安壹钱包电子商务有限公司 | 接口测试方法、装置、计算机设备及存储介质 |
CN107832207A (zh) * | 2017-10-16 | 2018-03-23 | 深圳市牛鼎丰科技有限公司 | 接口性能测试方法、装置、存储介质和计算机设备 |
Non-Patent Citations (1)
Title |
---|
李枚毅等: "《软件测试的工具使用和实验指导》", 31 May 2016, 湘潭大学出版社 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112231186A (zh) * | 2019-07-15 | 2021-01-15 | 深圳市腾讯网域计算机网络有限公司 | 一种性能数据的处理方法、装置、电子设备及介质 |
CN112231186B (zh) * | 2019-07-15 | 2024-03-15 | 深圳市腾讯网域计算机网络有限公司 | 一种性能数据的处理方法、装置、电子设备及介质 |
CN110620702A (zh) * | 2019-09-19 | 2019-12-27 | 聚好看科技股份有限公司 | 服务器的压力检测方法、装置及系统 |
CN110620702B (zh) * | 2019-09-19 | 2021-06-01 | 聚好看科技股份有限公司 | 服务器的压力检测方法、装置及系统 |
CN110764982A (zh) * | 2019-09-24 | 2020-02-07 | 钛马信息网络技术有限公司 | 一种测试stomp应用程序的方法及装置 |
CN111510330A (zh) * | 2020-04-10 | 2020-08-07 | 中国联合网络通信集团有限公司 | 接口管理装置、方法及存储介质 |
CN111510330B (zh) * | 2020-04-10 | 2023-08-18 | 中国联合网络通信集团有限公司 | 接口管理装置、方法及存储介质 |
CN111752644A (zh) * | 2020-06-18 | 2020-10-09 | 北京字节跳动网络技术有限公司 | 接口模拟方法、装置、设备及存储介质 |
CN112491654A (zh) * | 2020-11-19 | 2021-03-12 | 广州力挚网络科技有限公司 | 一种性能测试方法、装置、电子设备及存储介质 |
CN112491654B (zh) * | 2020-11-19 | 2024-04-19 | 广州力挚网络科技有限公司 | 一种性能测试方法、装置、电子设备及存储介质 |
CN112506751A (zh) * | 2020-11-27 | 2021-03-16 | 浪潮电子信息产业股份有限公司 | 一种服务器整机性能的对比测试方法、装置、设备及介质 |
CN112506751B (zh) * | 2020-11-27 | 2022-11-18 | 浪潮电子信息产业股份有限公司 | 一种服务器整机性能的对比测试方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109753432A (zh) | 一种接口性能测试方法、装置、服务器及系统 | |
CN106383786B (zh) | 一种接口压力性能测试方法、装置及电子设备 | |
CN105302710B (zh) | 一种确定需要回归测试的测试用例的方法和装置 | |
CN110310034A (zh) | 一种应用于SaaS的服务编排、业务流程处理方法和装置 | |
CN104753586B (zh) | 无源光网络网元信息的采集方法和系统 | |
JP2018524693A (ja) | 拡張可能な分散型作業負荷試験 | |
CN106095673A (zh) | 基于web接口的自动化测试方法及系统 | |
CN111045911B (zh) | 性能测试方法、性能测试装置、存储介质与电子设备 | |
CN112306881B (zh) | 模拟数据生成方法、装置、设备及存储介质 | |
CN109783388A (zh) | Ui自动化测试方法、装置及电子设备 | |
CN109726108B (zh) | 基于模拟数据的前端代码测试方法、装置、系统和介质 | |
CN108694120B (zh) | 测试服务组件的方法和装置 | |
US10313213B1 (en) | Systems and methods for measuring media performance on end-user devices | |
CN110515628A (zh) | 应用部署方法及装置 | |
CN109871289A (zh) | 一种远程过程调用rpc服务生成方法及装置 | |
CN109885496A (zh) | 测试日志管理方法及系统 | |
CN109408375A (zh) | 接口文档的生成方法和装置 | |
CN109525679A (zh) | 一种基于HTTP协议的web文件服务器测试方法 | |
CN110955600A (zh) | 接口测试方法及装置 | |
CN105224296B (zh) | 基于独立第三方的Web服务Qos属性评价系统及其评价方法 | |
CN110134583A (zh) | 软件测试及数据处理方法及装置 | |
CN110489471A (zh) | 一种数据请求处理方法、装置、存储介质及服务器 | |
CN110187877A (zh) | 图标获取方法及装置、系统、电子设备、存储介质 | |
CN108733545B (zh) | 一种压力测试方法及装置 | |
CN108089972A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190514 |
|
RJ01 | Rejection of invention patent application after publication |