本申请涉及接口测试技术领域,特别是涉及一种接口测试方法、装置、计算机设备和存储介质。
背景技术:
随着计算机技术和互联网技术的发展,越来越多的企业开始构建服务系统来提供服务以满足顾客需求。为了更直观清晰地监控系统性能,需要对服务系统进行性能测试,性能测试是通过性能测试工具模拟负载情况来对系统的各项性能指标进行测试,实际上就是通过测试工具对系统中的各接口分别进行测试。
然而,目前的接口测试方法中,针对线上数据和线下数据需要构建不同测试框架来处理,这样使用线上数据和线下数据进行测试时需要同时打开两套测试框架运行,不仅占用的内存空间多,而且操作过程繁琐,又进一步降低了测试效率;此外,由于系统版本经常会更新,每次系统版本更新都需要重复编写对应的新版本脚本,编写脚本耗时较长,导致测试准备时间长,测试效率降低。
技术实现要素:
基于此,有必要针对上述技术问题,提供一种接口测试方法、装置、计算机设备和存储介质,能够减少接口测试时所占用的内存空间,并且简化了测试时的操作过程,提高了测试效率。
一种接口测试方法,该方法包括:
响应于压测指令确定压测指令关联的目标接口;
获取用于测试目标接口的原始测试数据,确定出原始测试数据的数据来源类型,原始测试数据的数据来源类型为线下来源或线上来源;
按照数据来源类型对应的处理方式对原始测试数据进行处理,得到目标测试数据;
获取压测指令对应的测试脚本,在预设的测试环境下运行测试脚本,测试脚本在运行后基于目标测试数据对目标接口进行测试。
在其中一个实施例中,按照数据来源类型对应的处理方式对原始测试数据进行处理,得到目标测试数据的步骤,包括:
在确定原始测试数据的数据来源类型为线下来源时,获取用户配置参数信息,根据用户配置参数信息和原始测试数据,得到目标测试数据;
在确定原始测试数据的数据来源类型为线上来源时,对原始测试数据进行解析处理,得到目标测试数据。
在其中一个实施例中,根据用户配置参数信息和原始测试数据,得到目标测试数据的步骤,包括:
根据用户配置参数信息生成接口请求模板,接口请求模板中包含多个可替换的参数,原始测试数据包括用于替换接口请求模板中各参数的多个参数数据;
使用线下原始测试数据中的各参数数据对接口请求模板中各参数进行替换,得到测试数据,将得到的测试数据作为目标测试数据。
在其中一个实施例中,上述方法还包括:
在运行测试脚本对目标接口进行测试之后,获取目标接口对应的测试指标信息;
将目标接口对应的测试指标信息发送至预设地址进行存储,和/或,在终端界面上显示目标接口对应的测试指标信息。
在其中一个实施例中,目标接口包括待测试的osp系统中的至少一个接口,压测指令包括待测试的osp系统的版本号,预设的测试环境为jmeter测试环境,获取压测指令对应的测试脚本的步骤,包括:
获取待测试的osp系统的版本号对应版本的jmeter脚本,将待测试的osp系统的版本号对应版本的jmeter脚本作为测试脚本;
或,获取待测试的osp系统的版本号对应版本的jmeter脚本模板以及jmeter脚本模板对应的jmeter脚本配置参数,根据jmeter脚本配置参数和jmeter脚本模板生成jmeter脚本,将生成的jmeter脚本作为测试脚本;优选地,压测指令还包括jmeter脚本配置参数。
在其中一个实施例中,压测指令中包括至少一个待测接口的接口名称、以及待测接口所在服务的服务名称和服务版本号,响应于压测指令确定压测指令关联的目标接口,包括:
根据服务名称、服务版本号以及待测接口的接口名称,确定目标接口。
在其中一个实施例中,用户配置参数信息包括目标接口所在域的域名称、目标接口所在服务的服务名称、目标接口的接口名称、目标接口所在的主机信息以及测试线程设置信息;优选地,测试线程设置信息包括预计使用的jmeter线程的总线程数量、创建所有jmeter线程预计使用的时间、逐步增压标识信息以及测试持续时间。
一种接口测试装置,该装置包括:
目标接口确定模块,用于响应于压测指令确定压测指令关联的目标接口;
第一获取模块,用于获取用于测试目标接口的原始测试数据,确定出原始测试数据的数据来源类型,原始测试数据的数据来源类型为线下来源或线上来源;
第二获取模块,用于按照数据来源类型对应的处理方式对原始测试数据进行处理,得到目标测试数据;
测试运行模块,用于获取压测指令对应的测试脚本,在预设的测试环境下运行测试脚本,测试脚本在运行后基于目标测试数据对目标接口进行测试。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述任一方法的实施例的步骤。
一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述任一方法的实施例的步骤。
在本发明实施例中,响应于压测指令确定压测指令关联的目标接口,获取用于测试目标接口的原始测试数据,确定出原始测试数据的数据来源类型,原始测试数据的数据来源类型为线下来源或线上来源,按照数据来源类型对应的处理方式对原始测试数据进行处理,得到目标测试数据,获取压测指令对应的测试脚本,在预设的测试环境下运行测试脚本,测试脚本在运行后基于目标测试数据对目标接口进行测试。本发明实施例采用的通用测试框架能够根据不同数据来源类型准备最终使用的目标测试数据,具体是可以确定出原始测试数据的数据来源类型,然后按照数据来源类型对应的处理方式对原始测试数据进行处理,从而得到目标测试数据,这样在使用不同数据来源类型的原始测试数据对接口进行测试时,只需采用一套通用测试框架进行处理即可,降低了测试时所占用的内存空间,并简化了操作过程,从而提高了测试效率。
进一步地,该通用测试框架获取的压测指令对应的测试脚本可以为预先编写好的测试脚本,或是根据压测指令对应的测试脚本模板和脚本配置参数生成的测试脚本,无需每次测试都重新编写脚本,减少了测试准备时间,又进一步地提高了测试效率。
附图说明
图1为一个实施例中接口测试方法的应用环境图;
图2为一个实施例中接口测试方法的流程示意图;
图3为一个实施例中在数据来源类型为线下来源时的目标测试数据获取步骤的流程示意图;
图4为一个实施例中测试脚本获取步骤的流程示意图;
图5为另一个实施例中测试脚本获取步骤的流程示意图;
图6为一个实施例中接口测试装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的接口测试方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与测试服务器104进行通信,测试服务器104通过网络与企业的服务系统106进行通信,该服务系统为包括多个接口的osp系统,测试服务器104中可以设有通用测试框架,该通用测试框架用于对osp系统的接口进行测试。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,测试服务器104和服务系统106均可以用独立的服务器或者是多个服务器组成的服务器集群来实现,也可以是由分布式系统来实现。
在一个实施例中,如图2所示,提供了一种接口测试方法,以该方法应用于图1中的测试服务端为例进行说明,包括以下步骤:
步骤202,响应于压测指令确定压测指令关联的目标接口。
其中,压测指令可以包括待测接口对应的接口标识信息,而目标接口为接口标识信息对应的待测接口,目标接口的数量可以为一个或多个。
具体地,本实施例可以应用于osp系统性能测试的场景下,此时上述待测接口为osp系统中的接口,通过对osp系统中的各接口进行性能测试,就可以实现对osp系统的性能测试。这里的osp(openserviceplatform)系统是一款基于apachethrift远程调用框架二次开发的高性能、高可扩展的、服务治理的rpc框架系统。
在一种实施方式中,压测指令中包括至少一个待测接口的接口名称、以及待测接口所在服务的服务名称和服务版本号,此时,步骤202可以为:根据服务名称、服务版本号以及待测接口的接口名称,确定目标接口。具体地,压测指令中的待测接口的接口名称、以及待测接口所在服务的服务名称和服务版本号既可以由技术人员手动设置,也可以由通用测试框架从待测试的系统接口中自动选取,比如定时选取接口进行自动测试。
具体地,压测指令中可以包括待测接口的接口名称、待测接口所在域的域名、待测接口所在服务的服务名称和服务版本号、待测试的主机地址以及该主机上待测试的端口,以便通用测试框架准确地定位要测试的目标接口。
步骤204,获取用于测试目标接口的原始测试数据,确定出原始测试数据的数据来源类型。
在一个应用场景中,原始测试数据的数据来源类型为线下来源或线上来源。需要说明的是,在其他可能的应用场景中,原始测试数据的数据来源类型的数量可以是超过两种。
其中,原始测试数据为直接由数据来源获取到的未经处理的测试数据,由于数据来源一般分为线上和线下两种,一份原始测试数据的数据来源类型为线下来源或线上来源。具体实施时,数据来源类型为线下来源的原始测试数据一般为data.csv文件,数据来源类型为线上来源的原始测试数据一般包括格式如xxx.dat的多个线上流量文件。
这里,线下来源的原始测试数据一般为技术人员通过造数据得到的满足接口测试数据要求的数据,往往需要预先造数据,造好的测试数据可存储在系统缓存中,通用测试框架在对接口进行测试之前可以从系统缓存中直接获取这些测试数据,获取速度较快,但前期的造数据过程较繁琐,且编造的测试数据可能与实际上客户端发起的接口请求数据存在差异,不够接近实际情况;而线上来源的原始测试数据则是由通用测试框架直接通过线上物理机或容器抓包方式从线上获取到的网络流量数据,比如,通用测试框架可以直接从线上抓取目标接口在一定时间段内接收到的客户端访问流量数据作为线上来源的原始测试数据,线上数据更接近实际的客户端访问情况,可更贴合实际地对接口进行测试,而且可以从线上自动获取原始数据,无需造数据,减少了测试数据的准备时间。
具体地,在一些实施方式中,通用测试框架可以先获取用于测试目标接口的原始测试数据,然后根据原始测试数据来确定出原始测试数据的数据来源类型,以决定后续对原始测试数据的处理方式;在另一些实施方式中,上述通用测试框架还可以先获取原始测试数据的数据来源类型,也即先确定对原始测试数据的处理方式,然后再获取相应的原始测试数据。
步骤206,按照数据来源类型对应的处理方式对原始测试数据进行处理,得到目标测试数据;
其中,不同的数据来源类型对应的处理方式不同,目标测试数据为在接口测试时所使用的测试数据,不同数据来源类型的原始数据经过不同的处理后得到的目标测试数据均满足最终进行接口测试时所采用测试脚本的调用要求。
在一种实施方式中,通用测试框架在确定原始测试数据的数据来源类型为线下来源时,获取用户配置参数信息,根据用户配置参数信息和原始测试数据,得到目标测试数据。
进一步具体地,如图3所示,在确定原始测试数据的数据来源类型为线下来源时,根据用户配置参数信息和原始测试数据,得到目标测试数据的步骤,包括:
步骤302,根据用户配置参数信息生成接口请求模板,接口请求模板中包含多个可替换的参数,原始测试数据包括用于替换接口请求模板中各参数的多个参数数据;
步骤304,使用线下原始测试数据中的各参数数据对接口请求模板中各参数进行替换,得到测试数据,将得到的测试数据作为目标测试数据。
在该实施方式中,用户配置参数信息可以包括目标接口所在域的域名称、目标接口所在服务的服务名称、目标接口的接口名称、目标接口所在的主机信息以及测试线程设置信息;进一步地,测试线程设置信息包括预计使用的jmeter线程的总线程数量、创建所有jmeter线程预计使用的时间、逐步增压标识信息以及测试持续时间。
在另一种实施方式中,在确定原始测试数据的数据来源类型为线上来源时,对原始测试数据进行解析处理,得到目标测试数据。此时原始测试数据为通用测试框架从线上直接抓取到的流量数据,对该流量数据进行解析处理,可以解析得到接口地址信息、接口流量类型、接口请求参数、请求头部信息等,将以上信息整合在一起,得到通用测试框架所需的目标测试数据。
具体地,通用测试框架在对线上来源的原始测试数据进行解析处理时可以采用现有的流量数据解析方法,在osp系统性能测试的应用场景下,通用测试框架可以将抓取到的线上流量数据dat文件按接口测试所需信息转换成通用测试框架所需的目标测试数据cvs文件(osp系统常用的一种处理格式)。
步骤208,获取压测指令对应的测试脚本,在预设的测试环境下运行测试脚本,测试脚本在运行后基于目标测试数据对目标接口进行测试。
其中,测试脚本可以为预先编写好的测试脚本或根据压测指令对应的测试脚本模板和脚本配置参数生成的测试脚本,预设的测试环境可以是jmeter测试环境,在jmeter测试环境下,测试脚本为jmeter脚本。
具体地,通用测试框架可以直接获取压测指令对应的测试脚本,在预设的测试环境下运行测试脚本,测试脚本在运行后基于目标测试数据对目标接口进行测试,也即测试脚本调用目标测试数据对目标接口进行测试,本实施例无需每次测试都重新编写脚本,减少了测试准备时间。
在本发明实施例中,响应于压测指令确定压测指令关联的目标接口,获取用于测试目标接口的原始测试数据,确定出原始测试数据的数据来源类型,原始测试数据的数据来源类型为线下来源或线上来源,按照数据来源类型对应的处理方式对原始测试数据进行处理,得到目标测试数据,获取压测指令对应的测试脚本,在预设的测试环境下运行测试脚本,测试脚本在运行后基于目标测试数据对目标接口进行测试。本发明实施例采用的通用测试框架能够根据不同数据来源类型准备最终使用的目标测试数据,具体是可以确定出原始测试数据的数据来源类型,然后按照数据来源类型对应的处理方式对原始测试数据进行处理,从而得到目标测试数据,这样在使用不同数据来源类型的原始测试数据对接口进行测试时,只需采用一套通用测试框架进行处理即可,降低了测试时所占用的内存空间,并简化了操作过程,从而提高了测试效率。
本发明实施例采用的通用测试框架能够根据不同数据来源类型准备最终使用的目标测试数据,具体是可以确定出原始测试数据的数据来源类型,然后按照数据来源类型对应的处理方式对原始测试数据进行处理,从而得到目标测试数据,这样在使用不同数据来源类型的原始测试数据对接口进行测试时,只需采用一套通用测试框架进行处理即可,降低了测试时所占用的内存空间,并简化了操作过程,从而提高了测试效率。
基于上述实施例,该接口测试方法还可以包括:
在运行测试脚本对目标接口进行测试之后,获取目标接口对应的测试指标信息,将目标接口对应的测试指标信息发送至预设地址进行存储。
或者,该接口测试方法还可以包括:在运行测试脚本对目标接口进行测试之后,获取目标接口对应的测试指标信息,在终端界面上显示目标接口对应的测试指标信息。
或者,该接口测试方法还可以包括:在运行测试脚本对目标接口进行测试之后,获取目标接口对应的测试指标信息,将目标接口对应的测试指标信息发送至预设地址进行存储,并在终端界面上显示目标接口对应的测试指标信息。
在上述各实施例中,通用测试框架可以将测试指标信息发送至预设地址进行存储,以供技术人员在需要时可以调取出来进行查阅分析,还可以在终端界面上显示目标接口对应的测试指标信息,将测试指标信息直观地展示给技术人员,以便查阅。
在一个实施例中,目标接口包括待测试的osp系统中的至少一个接口,压测指令包括待测试的osp系统的版本号,预设的测试环境为jmeter测试环境,获取压测指令对应的测试脚本的步骤,如图4所示,包括:
步骤402,从压测指令中获取待测试的osp系统的版本号。
步骤404,获取待测试的osp系统的版本号对应版本的jmeter脚本,将待测试的osp系统的版本号对应版本的jmeter脚本作为测试脚本。
在另一个实施例中,获取压测指令对应的测试脚本的步骤,如图5所示,包括:
步骤502,获取待测试的osp系统的版本号对应版本的jmeter脚本模板以及jmeter脚本模板对应的jmeter脚本配置参数。
步骤504,根据jmeter脚本配置参数和jmeter脚本模板生成jmeter脚本,将生成的jmeter脚本作为测试脚本。
在上述实施例中,该通用测试框架获取的压测指令对应的测试脚本可以为预先编写好的测试脚本,或是根据压测指令对应的测试脚本模板和脚本配置参数生成的测试脚本,无需每次测试都重新编写脚本,减少了测试准备时间,又进一步地提高了测试效率。
具体实施时,为了提高测试脚本的生成效率,压测指令可以还包括jmeter脚本配置参数,此时通用测试框架可以在接收到压测指令时就可以直接从压测指令中获取到jmeter脚本配置参数,进而根据jmeter脚本配置参数和jmeter脚本模板生成所需的测试脚本。
应该理解的是,虽然图2-5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种接口测试装置,包括:
目标接口确定模块120,用于响应于压测指令确定压测指令关联的目标接口;
第一获取模块140,用于获取用于测试目标接口的原始测试数据,确定出原始测试数据的数据来源类型,原始测试数据的数据来源类型为线下来源或线上来源;
第二获取模块160,用于按照数据来源类型对应的处理方式对原始测试数据进行处理,得到目标测试数据;
测试运行模块180,用于获取压测指令对应的测试脚本,在预设的测试环境下运行测试脚本,测试脚本在运行后基于目标测试数据对目标接口进行测试。
在一个实施例中,第二获取模块160,包括:
线下获取单元,用于在确定原始测试数据的数据来源类型为线下来源时,获取用户配置参数信息,根据用户配置参数信息和原始测试数据,得到目标测试数据;
线上获取单元,用于在确定原始测试数据的数据来源类型为线上来源时,对原始测试数据进行解析处理,得到目标测试数据。
在一个实施例中,上述线下获取单元可以用于根据用户配置参数信息生成接口请求模板,接口请求模板中包含多个可替换的参数,原始测试数据包括用于替换接口请求模板中各参数的多个参数数据;使用线下原始测试数据中的各参数数据对接口请求模板中各参数进行替换,得到测试数据,将得到的测试数据作为目标测试数据。
在一个实施例中,上述装置还包括:
测试指标信息获取模块,用于在运行测试脚本对目标接口进行测试之后,获取目标接口对应的测试指标信息;
测试指标信息存储模块,用于将目标接口对应的测试指标信息发送至预设地址进行存储,和/或,测试指标信息显示模块,用于在终端界面上显示目标接口对应的测试指标信息。
在一个实施例中,目标接口包括待测试的osp系统中的至少一个接口,压测指令包括待测试的osp系统的版本号,预设的测试环境为jmeter测试环境,测试运行模块180可以用于获取待测试的osp系统的版本号对应版本的jmeter脚本,将待测试的osp系统的版本号对应版本的jmeter脚本作为测试脚本;或,测试运行模块180可以用于获取待测试的osp系统的版本号对应版本的jmeter脚本模板以及jmeter脚本模板对应的jmeter脚本配置参数,根据jmeter脚本配置参数和jmeter脚本模板生成jmeter脚本,将生成的jmeter脚本作为测试脚本;优选地,压测指令还包括jmeter脚本配置参数。
在一个实施例中,压测指令中包括至少一个待测接口的接口名称、以及待测接口所在服务的服务名称和服务版本号,上述目标接口确定模块120可以用于根据服务名称、服务版本号以及待测接口的接口名称,确定目标接口。
在一个实施例中,用户配置参数信息包括目标接口所在域的域名称、目标接口所在服务的服务名称、目标接口的接口名称、目标接口所在的主机信息以及测试线程设置信息;优选地,测试线程设置信息包括预计使用的jmeter线程的总线程数量、创建所有jmeter线程预计使用的时间、逐步增压标识信息以及测试持续时间。
关于接口测试装置的具体限定可以参见上文中对于接口测试方法的限定,在此不再赘述。上述接口测试装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种接口测试方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:响应于压测指令确定压测指令关联的目标接口;获取用于测试目标接口的原始测试数据,确定出原始测试数据的数据来源类型,原始测试数据的数据来源类型为线下来源或线上来源;按照数据来源类型对应的处理方式对原始测试数据进行处理,得到目标测试数据;获取压测指令对应的测试脚本,在预设的测试环境下运行测试脚本,测试脚本在运行后基于目标测试数据对目标接口进行测试。
在一个实施例中,处理器执行计算机程序时实现上述的按照数据来源类型对应的处理方式对原始测试数据进行处理,得到目标测试数据的步骤时,具体实现以下步骤:在确定原始测试数据的数据来源类型为线下来源时,获取用户配置参数信息,根据用户配置参数信息和原始测试数据,得到目标测试数据;在确定原始测试数据的数据来源类型为线上来源时,对原始测试数据进行解析处理,得到目标测试数据。
在一个实施例中,处理器执行计算机程序时实现上述的根据用户配置参数信息和原始测试数据,得到目标测试数据的步骤时,具体实现以下步骤:根据用户配置参数信息生成接口请求模板,接口请求模板中包含多个可替换的参数,原始测试数据包括用于替换接口请求模板中各参数的多个参数数据;使用线下原始测试数据中的各参数数据对接口请求模板中各参数进行替换,得到测试数据,将得到的测试数据作为目标测试数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在运行测试脚本对目标接口进行测试之后,获取目标接口对应的测试指标信息;将目标接口对应的测试指标信息发送至预设地址进行存储,和/或,在终端界面上显示目标接口对应的测试指标信息。
在一个实施例中,目标接口包括待测试的osp系统中的至少一个接口,压测指令包括待测试的osp系统的版本号,预设的测试环境为jmeter测试环境,处理器执行计算机程序时实现上述的获取压测指令对应的测试脚本的步骤时,具体实现以下步骤:获取待测试的osp系统的版本号对应版本的jmeter脚本,将待测试的osp系统的版本号对应版本的jmeter脚本作为测试脚本;或,获取待测试的osp系统的版本号对应版本的jmeter脚本模板以及jmeter脚本模板对应的jmeter脚本配置参数,根据jmeter脚本配置参数和jmeter脚本模板生成jmeter脚本,将生成的jmeter脚本作为测试脚本;优选地,压测指令还包括jmeter脚本配置参数。
在一个实施例中,压测指令中包括至少一个待测接口的接口名称、以及待测接口所在服务的服务名称和服务版本号,处理器执行计算机程序时实现上述的响应于压测指令确定压测指令关联的目标接口时,具体实现以下步骤:根据服务名称、服务版本号以及待测接口的接口名称,确定目标接口。
在一个实施例中,用户配置参数信息包括目标接口所在域的域名称、目标接口所在服务的服务名称、目标接口的接口名称、目标接口所在的主机信息以及测试线程设置信息;优选地,测试线程设置信息包括预计使用的jmeter线程的总线程数量、创建所有jmeter线程预计使用的时间、逐步增压标识信息以及测试持续时间。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:响应于压测指令确定压测指令关联的目标接口;获取用于测试目标接口的原始测试数据,确定出原始测试数据的数据来源类型,原始测试数据的数据来源类型为线下来源或线上来源;按照数据来源类型对应的处理方式对原始测试数据进行处理,得到目标测试数据;获取压测指令对应的测试脚本,在预设的测试环境下运行测试脚本,测试脚本在运行后基于目标测试数据对目标接口进行测试。
在一个实施例中,计算机程序被处理器执行时实现上述的按照数据来源类型对应的处理方式对原始测试数据进行处理,得到目标测试数据的步骤时,具体实现以下步骤:在确定原始测试数据的数据来源类型为线下来源时,获取用户配置参数信息,根据用户配置参数信息和原始测试数据,得到目标测试数据;在确定原始测试数据的数据来源类型为线上来源时,对原始测试数据进行解析处理,得到目标测试数据。
在一个实施例中,计算机程序被处理器执行时实现上述的根据用户配置参数信息和原始测试数据,得到目标测试数据的步骤时,具体实现以下步骤:根据用户配置参数信息生成接口请求模板,接口请求模板中包含多个可替换的参数,原始测试数据包括用于替换接口请求模板中各参数的多个参数数据;使用线下原始测试数据中的各参数数据对接口请求模板中各参数进行替换,得到测试数据,将得到的测试数据作为目标测试数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在运行测试脚本对目标接口进行测试之后,获取目标接口对应的测试指标信息;将目标接口对应的测试指标信息发送至预设地址进行存储,和/或,在终端界面上显示目标接口对应的测试指标信息。
在一个实施例中,目标接口包括待测试的osp系统中的至少一个接口,压测指令包括待测试的osp系统的版本号,预设的测试环境为jmeter测试环境,计算机程序被处理器执行时实现上述的获取压测指令对应的测试脚本的步骤时,具体实现以下步骤:获取待测试的osp系统的版本号对应版本的jmeter脚本,将待测试的osp系统的版本号对应版本的jmeter脚本作为测试脚本;或,获取待测试的osp系统的版本号对应版本的jmeter脚本模板以及jmeter脚本模板对应的jmeter脚本配置参数,根据jmeter脚本配置参数和jmeter脚本模板生成jmeter脚本,将生成的jmeter脚本作为测试脚本;优选地,压测指令还包括jmeter脚本配置参数。
在一个实施例中,压测指令中包括至少一个待测接口的接口名称、以及待测接口所在服务的服务名称和服务版本号,计算机程序被处理器执行时实现上述的响应于压测指令确定压测指令关联的目标接口时,具体实现以下步骤:根据服务名称、服务版本号以及待测接口的接口名称,确定目标接口。
在一个实施例中,用户配置参数信息包括目标接口所在域的域名称、目标接口所在服务的服务名称、目标接口的接口名称、目标接口所在的主机信息以及测试线程设置信息;优选地,测试线程设置信息包括预计使用的jmeter线程的总线程数量、创建所有jmeter线程预计使用的时间、逐步增压标识信息以及测试持续时间。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
1.一种接口测试方法,所述方法包括:
响应于压测指令确定所述压测指令关联的目标接口;
获取用于测试所述目标接口的原始测试数据,确定出所述原始测试数据的数据来源类型,所述原始测试数据的数据来源类型为线下来源或线上来源;
按照所述数据来源类型对应的处理方式对所述原始测试数据进行处理,得到目标测试数据;
获取所述压测指令对应的测试脚本,在预设的测试环境下运行所述测试脚本,所述测试脚本在运行后基于所述目标测试数据对所述目标接口进行测试。
2.根据权利要求1所述的方法,其特征在于,所述按照所述数据来源类型对应的处理方式对所述原始测试数据进行处理,得到目标测试数据,包括:
在确定所述原始测试数据的数据来源类型为线下来源时,获取用户配置参数信息,根据所述用户配置参数信息和所述原始测试数据,得到所述目标测试数据;
在确定所述原始测试数据的数据来源类型为线上来源时,对所述原始测试数据进行解析处理,得到所述目标测试数据。
3.根据权利要求2所述的方法,其特征在于,所述根据所述用户配置参数信息和所述原始测试数据,得到所述目标测试数据,包括:
根据所述用户配置参数信息生成接口请求模板,所述接口请求模板中包含多个可替换的参数,所述原始测试数据包括用于替换所述接口请求模板中各所述参数的多个参数数据;
使用所述线下原始测试数据中的各所述参数数据对所述接口请求模板中各所述参数进行替换,得到测试数据,将得到的所述测试数据作为所述目标测试数据。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在运行所述测试脚本对所述目标接口进行测试之后,获取所述目标接口对应的测试指标信息;
将所述目标接口对应的测试指标信息发送至预设地址进行存储,和/或,在终端界面上显示所述目标接口对应的测试指标信息。
5.根据权利要求1至4任意一项所述的方法,其特征在于,所述目标接口包括待测试的osp系统中的至少一个接口,所述压测指令包括所述待测试的osp系统的版本号,所述预设的测试环境为jmeter测试环境,所述获取所述压测指令对应的测试脚本,包括:
获取所述待测试的osp系统的版本号对应版本的jmeter脚本,将所述待测试的osp系统的版本号对应版本的jmeter脚本作为所述测试脚本;
或,获取所述待测试的osp系统的版本号对应版本的jmeter脚本模板以及所述jmeter脚本模板对应的jmeter脚本配置参数,根据所述jmeter脚本配置参数和所述jmeter脚本模板生成jmeter脚本,将生成的jmeter脚本作为所述测试脚本;优选地,所述压测指令还包括所述jmeter脚本配置参数。
6.根据权利要求5所述的方法,其特征在于,所述压测指令中包括至少一个待测接口的接口名称、以及所述待测接口所在服务的服务名称和服务版本号,所述响应于压测指令确定所述压测指令关联的目标接口,包括:
根据所述服务名称、所述服务版本号以及所述待测接口的接口名称,确定所述目标接口。
7.根据权利要求2所述的方法,其特征在于,所述用户配置参数信息包括所述目标接口所在域的域名称、所述目标接口所在服务的服务名称、所述目标接口的接口名称、所述目标接口所在的主机信息以及测试线程设置信息;优选地,所述测试线程设置信息包括预计使用的jmeter线程的总线程数量、创建所有所述jmeter线程预计使用的时间、逐步增压标识信息以及测试持续时间。
8.一种接口测试装置,其特征在于,所述装置包括:
目标接口确定模块,用于响应于压测指令确定所述压测指令关联的目标接口;
第一获取模块,用于获取用于测试所述目标接口的原始测试数据,确定出所述原始测试数据的数据来源类型,所述原始测试数据的数据来源类型为线下来源或线上来源;
第二获取模块,用于按照所述数据来源类型对应的处理方式对所述原始测试数据进行处理,得到目标测试数据;
测试运行模块,用于获取所述压测指令对应的测试脚本,在预设的测试环境下运行所述测试脚本,所述测试脚本在运行后基于所述目标测试数据对所述目标接口进行测试。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
技术总结