一种数据测试方法、装置及存储介质与流程

文档序号:26192917发布日期:2021-08-06 18:46阅读:91来源:国知局
一种数据测试方法、装置及存储介质与流程

本申请涉及软件测试技术领域,尤其涉及一种数据测试方法、装置及存储介质。



背景技术:

在通信场景中,通信设备之间的数据传输通常是通过数据接口进行传输的,因此,在需要保证数据传输的准确性的场景下,保证数据接口的数据传输的可靠性尤为重要。

现有技术中,在对数据接口进行可靠性测试时,通常是测试人员通过抓包工具来获取通过数据接口进行传输的业务数据,并可以人为根据针对数据接口的测试需求来改造获取到的业务数据,改造后的业务数据就可以用于对数据接口进行测试。由此可见,现有技术中,在对数据接口进行测试时,需要耗费大量的人力来抓包业务数据和改造业务数据,这也导致了对数据接口进行可靠性测试的效率低。



技术实现要素:

本申请实施例提供了一种数据测试方法、装置及存储介质,可以提高对测试接口进行可靠性测试的效率。

一方面,本申请实施例提供了一种数据测试方法,所述方法包括:

获取与测试接口相关联的目标测试标识;

基于目标测试标识调用日志数据库,从日志数据库中获取基于测试接口生成的测试日志数据;

提取测试日志数据中的测试参数,基于测试参数生成针对测试接口的模拟测试请求;

基于模拟测试请求对测试接口进行数据传输的可靠性测试。

另一方面,本申请实施例提供了一种数据测试装置,装置包括:

获取模块,用于获取与测试接口相关联的目标测试标识;

该获取模块,还用于基于目标测试标识调用日志数据库,从日志数据库中获取基于测试接口生成的测试日志数据;

处理模块,用于提取测试日志数据中的测试参数,基于测试参数生成针对测试接口的模拟测试请求;

该处理模块,还用于基于模拟测试请求对测试接口进行数据传输的可靠性测试。

相应地,本申请实施例提供了一种计算机设备,该设备包括处理器、通信接口和存储器,处理器、通信接口和存储器相互连接,其中,存储器存储有可执行程序代码,处理器用于调用可执行程序代码,执行上述任一可能实现的数据测试方法。

相应地,本申请实施例提供了一种计算机可读存储介质,存储有计算机程序,处理器执行上述任一可能实现的数据测试方法所涉及的程序。

相应地,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一可能实现的数据测试方法。

本申请实施例中,首先通过获取与测试接口相关联的目标测试标识,并基于目标测试标识调用日志数据库获取基于测试接口生成的测试日志数据,然后提取测试日志数据中的测试参数,基于测试参数生成针对测试接口的模拟测试请求,最后基于模拟测试请求对测试接口进行数据传输的可靠性测试,可以利用目标测试标识自动化地实现测试接口的可靠性测试,从而提高对测试接口进行可靠性测试的效率。

附图说明

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

图1为本申请实施例提供的一种数据测试系统的架构示意图;

图2为本申请实施例提供的一种数据测试方法的流程示意图;

图3为本申请实施例涉及的研发流水线的流程示意图;

图4为本申请实施例提供的另一种数据测试方法的流程示意图;

图5为本申请实施例提供的一种参数配置界面的界面示意图;

图6为本申请实施例提供的一种测试触发显示界面的界面示意图;

图7为本申请实施例提供的另一种数据测试方法的流程示意图;

图8为本申请实施例提供的另一种数据测试方法的流程示意图;

图9为本申请实施例提供的另一种数据测试方法的流程示意图;

图10申请实施例提供的一种数据测试装置的结构示意图;

图11申请实施例提供的一种计算机设备的结构示意图。

具体实施方式

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

为了更好的理解本申请实施例提供的一种数据测试方法、装置及存储介质,下面先对本申请实施例适用的数据测试系统的构架进行描述。请参阅图1,图1是本申请实施例提供的数据测试系统的架构示意图。如图1所示,数据测试系统可以包括测试设备101和请求响应设备102,测试设备101和请求响应设备102之间可以通过网络连接,比如通过无线网络连接等。测试设备101和请求响应设备102均可以为一个或多个,本申请对此不作限定。其中,测试设备101为针对测试接口进行可靠性测试的设备,测试接口可以理解为是一种接口程序,该接口程序可以安装在设备上,因此,请求响应设备102可以为安装有测试接口对应的接口程序的设备,该请求响应设备102可以对通过测试接口进行传输的模拟测试请求进行响应而返回测试响应数据。

在一个实施例中,请求响应设备102也可以是安装有测试接口的测试设备101。换句话说,请求响应设备102和测试设备101可以是同一个设备,也可以不同的设备,这可以根据实际应用场景决定,此处以请求响应设备102和测试设备101不是同一个设备为例进行说明,请参见下述内容描述。

其中,测试设备101和请求响应设备102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(contentdeliverynetwork,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。

在一个实施例中,测试设备101通过获取与测试接口相关联的目标测试标识,利用目标测试标识调用日志数据库来获取基于测试接口生成的测试日志数据,然后通过对测试日志数据进行解析可以提取测试日志数据中需要进行检测的测试参数,基于测试参数和测试接口的接口配置信息来生成初始测试请求,然后修改初始测试请求来生成异常的测试请求作为针对测试接口的模拟测试请求,最后将模拟测试请求发送至请求响应设备102,可以利用请求响应设备102返回的测试响应数据对测试接口进行数据传输的可靠性测试,本实施例可以利用目标测试标识自动化地实现测试接口的可靠性测试,从而提高对测试接口进行可靠性测试的效率。

在一个实施例中,测试设备101和请求响应设备102可作为区块链上的节点,测试日志数据和模拟测试请求可保存于区块链上。

可以理解的是,本申请实施例描述的系统的架构示意图是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。

请参见图2,图2为本申请实施例提供的一种数据测试方法的流程示意图,以应用于图1中的测试设备101为例,包括以下步骤:

s201、获取与测试接口相关联的目标测试标识。

其中,测试接口可以是应用程序接口(applicationprograminterface,api),也可以是通用网关接口(commongatewayinterface,cgi)等软件接口,本申请对测试接口的类型不进行限定。

具体地,与测试接口相关联的目标测试标识在测试接口的研发流水线中都是统一的,通过统一的目标测试标识可以便于对测试接口的生命周期进行管理,测试接口的生命周期为测试接口从产生到淘汰的过程。

其中,测试接口的研发流水线是指对测试接口的生命周期进行研发管理的过程,如图3所示,测试接口的研发流水线可以包括测试接口的开发阶段(代码提交到编译出包),冒烟阶段,测试阶段,提发评审阶段,以及发布阶段(上线部署)。其中,冒烟阶段是指对测试接口进行冒烟测试,冒烟测试是用于验证接口基本功能的实现并达到一定程度的稳定性的测试。提发评审阶段是指对测试接口进行验收测试,验收测试接口的功能是否满足需求,当评审通过后,就可以进入发布阶段。

在一个实施例中,目标测试标识可以是数字,也可以是字符,本申请对此不作限定。

s202、基于目标测试标识调用日志数据库,从日志数据库中获取基于测试接口生成的测试日志数据。

其中,日志数据库中存储有基于l个数据接口生成的日志数据,l为正整数,l个数据接口中包括测试接口。日志数据库中的每个日志数据为业务设备调用数据接口发起业务请求时生成的与业务请求相关的数据,例如日志数据可以包括业务请求的发起时间、业务请求的统一资源定位符(uniformresourcelocator,url)、业务请求的请求类型、业务请求中进行数据传输的请求参数、业务请求的请求返回码、业务请求调用的数据接口的接口标识等。

具体地,可以将日志收集器(例如filebeat)部署在安装有测试接口的设备上,当有业务设备调用测试接口向安装有测试接口的设备发送业务请求时,日志收集器可以获取通过测试接口所生成的日志数据,并将通过测试接口生成的日志数据存储在日志数据库中,其中,日志数据库可以为专门用于存储日志数据的存储海量数据的搜索引擎(elasticsearch,es),也可以为其他分布式数据库等,本申请对此不作限定。当测试设备利用目标测试标识调用日志数据库获取测试日志数据时,可以获取与目标测试标识相关联的测试接口的接口标识,然后将日志数据库中的日志数据包括的数据接口的接口标识与测试接口的接口标识进行对比,得到对比结果,当对比结果指示日志数据包括的数据接口的接口标识与测试接口的接口标识相同时,可以将该日志数据作为基于测试接口生成的日志数据。

在一个实施例中,可以将日志数据库中基于测试接口生成的全部日志数据作为测试日志数据,也可以将日志数据库中在某个时间段内基于测试接口生成的日志数据作为测试日志数据,还可以将日志数据库中基于测试接口生成的具有相同url的日志数据作为测试日志数据,等等,本申请对此不作限定。

s203、提取测试日志数据中的测试参数,基于测试参数生成针对测试接口的模拟测试请求。

其中,测试参数是指在利用测试接口进行数据传输时需要进行可靠性测试的参数,测试参数可以为一个参数串,该参数串中可以包括一个或多个需要进行可靠性测试的参数。

具体地,测试设备可以利用测试参数以及测试接口的接口配置信息,生成初始测试请求,然后对初始测试请求进行修改来生成异常的测试请求作为针对测试接口的模拟测试请求。利用测试接口的接口配置信息生成初始测试请求,可以使得初始测试请求修改后得到的模拟测试请求能够发送至安装有测试接口的设备。

其中,测试接口的接口配置信息可以包括测试接口的接口标识、测试接口的域名信息、测试接口的部署目录、以及测试接口的接口协议中的一个或多个。

在一个实施例中,在利用初始测试请求来确定针对测试接口的模拟测试请求时,可以将恶意指令代码添加到初始测试请求包括的测试参数中来对初始测试请求进行修改,例如将恶意指令代码添加在初始测试请求中的测试参数之前、之后、或替换测试参数,从而得到模拟测试请求,其中,恶意指令代码可以理解为漏洞的一种具体表现形式。例如将跨站脚本攻击(crosssitescripting,xss)的恶意指令代码添加到初始测试请求的测试参数中,从而得到模拟测试请求。

其中,xss攻击是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。

s204、基于模拟测试请求对测试接口进行数据传输的可靠性测试。

具体地,在获取到模拟测试请求后,测试设备可以将模拟测试请求发送至请求响应设备,请求响应设备为安装有测试接口的设备,测试设备可以获取到请求响应设备针对模拟测试请求返回的测试响应数据,从而对测试接口进行数据传输的可靠性测试。

可以理解的是,测试接口也有自己的数据传输策略,该数据传输策略可以尽量保证通过测试接口进行传输的数据(如业务请求)不容易被遭到篡改,进而尽量保证请求响应设备获取到的通过测试接口进行传输的数据是未被恶意篡改过的数据。而此处,模拟测试请求可以理解为是测试设备专门生成的被恶意篡改过的请求(通过在初始测试请求中添加恶意指令代码得到的请求),即模拟测试请求是异常的测试请求,因此,在通过测试接口将模拟测试请求发送给请求响应设备时,若测试接口不能检测出模拟测试请求中的恶意指令代码的话,请求响应设备向测试设备返回的测试响应数据中就会包括异常数据(通过恶意指令代码生成的),就可以认为测试接口是不可靠的(也就说明测试接口的数据传输策略是不可靠的),是有漏洞的,因为此种情形下,通过测试接口进行传输的模拟测试请求已经成功欺骗过测试接口,让测试接口认为该模拟测试请求是正常的,继而将该模拟测试请求发送给请求响应设备,使得请求响应设备返回了包含异常数据的测试响应数据,如该异常数据可以是通过模拟测试请求中的恶意指令代码所请求的数据。反之,若测试设备获取到了请求响应设备根据模拟测试请求所返回的测试响应数据不包含异常数据时(如不包含通过模拟测试请求中的恶意指令代码所请求的数据时),则表明测试接口是可靠的(也就说明测试接口的数据传输策略是可靠的),是没有漏洞的。

举个例子,将一个存在xss攻击的模拟测试请求通过测试接口发送至请求响应设备时,如果测试接口存在xss漏洞的话,测试接口检测不出xss攻击的恶意指令代码,就不会对模拟测试请求中xss攻击的恶意指令代码进行过滤或屏蔽,那么返回的测试响应数据会包含xss攻击的恶意指令代码(异常数据),则测试接口具有数据传输的不可靠性;如果测试接口有对模拟测试请求中xss攻击的恶意指令代码进行过滤或屏蔽的话,那么返回的测试响应数据中就不会包含xss攻击的恶意指令代码(异常数据),则测试接口就不存在xss漏洞,测试接口具有数据传输的可靠性。

通过本申请实施例,测试设备可以获取与测试接口相关联的目标测试标识,基于目标测试标识调用日志数据库获取基于测试接口生成的测试日志数据,并提取测试日志数据中的测试参数,基于测试参数生成针对测试接口的模拟测试请求,利于模拟测试请求对测试接口进行数据传输的可靠性测试,可以利用目标测试标识自动化地实现测试接口的可靠性测试,从而提高对测试接口进行可靠性测试的效率。

请参见图4,图4为本申请实施例提供的另一种数据测试方法的流程示意图,以应用于图1中的测试设备101为例,包括以下步骤:

s401、获取与测试接口相关联的目标测试标识。

在一个实施例中,可以设置针对测试接口进行可靠性测试的测试周期,在到达测试周期的周期节点所指示的时刻时,测试设备可以获取与测试接口相关联的目标测试标识。

具体地,可以针对测试接口设置测试周期,例如设置间隔24个小时就针对测试接口进行一次数据传输的可靠性测试,则每隔24个小时就到达测试周期的周期节点所指示的时刻,测试设备就可以获取与测试接口相关联的目标测试标识。

在一个实施中,还可以是在研发流水线中测试接口完成冒烟阶段后测试设备就获取与测试接口相关联的目标测试标识,进行数据传输的可靠性测试。

在一个实施例中,当存在l个数据接口需要进行可靠性测试时,其中,l为正整数,测试设备可以获取l个数据接口,并分别生成l个数据接口中每个数据接口的测试标识,将每个数据接口的测试标识与每个数据接口的接口标识存储至数据库中,该数据库可以为日志数据库,也可以为除日志数据库外的其他数据库,当需要针对测试接口进行测试时,可以从数据库中确定与测试接口进行关联存储的测试标识,作为测试接口的目标测试标识。

s402、基于目标测试标识调用日志数据库,从日志数据库中获取基于测试接口生成的m个测试日志数据,m为正整数。

其中,s402的具体实现可以参见前述实施例中s202的相关描述,此处不再赘述。

s403、提取m个测试日志数据所包含的m个日志参数,一个测试日志数据对应一个日志参数。

具体地,测试设备可以对m个测试日志数据中每个测试日志数据进行解析处理,从而获取每个测试日志数据中包括的日志参数。

其中,日志参数为日志数据中记录的与业务请求相关的参数,可以包括业务请求的发起时间、业务请求的统一资源定位符(uniformresourcelocator,url)、业务请求的请求类型、业务请求中进行数据传输的参数、业务请求的请求返回码、业务请求调用的数据接口的接口标识等。

s404、获取参数过滤字段,根据参数过滤字段分别对m个日志参数进行参数过滤,得到测试参数。

在一个实施例中,参数过滤字段可以为需要过滤掉不进行可靠性测试的参数,也可以是需要进行可靠性测试的参数,本申请对此不作限定。在获取到参数过滤字段后可以对通过s403确定的m个日志参数进行过滤,从而得到测试参数。

具体地,根据参数过滤字段分别对m个日志参数进行参数过滤,得到测试参数,包括以下步骤:

(1)根据参数过滤字段分别对m个日志参数进行过滤,得到每个日志参数分别对应的初始测试参数。

其中,初始测试参数为通过测试接口进行数据传输的参数,初始测试参数可以为一个参数串,该参数串中可以包括一个或多个进行数据传输的参数。

在一个实施例中,针对参数过滤字段可以配置无关参数字段,然后根据无关参数字段分别对m个日志参数进行过滤,可以得到每个日志参数分别对应的初始测试参数,则得到了m个初始测试参数。

其中,无关参数可以为默认上传但未使用的参数,例如调用测试接口的业务设备的设备参数等。

具体地,测试设备在确定无关参数字段之后,测试设备可以将日志参数中与无关参数字段相关的参数过滤掉。例如日志参数为:a=1&b=2&c=3&d=4&x=12,x是无关参数字段,则将日志参数中与无关参数字段相关的参数过滤,得到:a=1&b=2&c=3&d=4,然后可以将过滤后的日志参数中的参数字段按参数值的升序或降序进行排列,得到初始测试参数为:a=1&b=2&c=3&d=4。

(2)分别生成每个初始测试参数对应的去重字符串。

在一个实施例中,针对上述参数过滤字段还可以配置场景参数字段,其中,场景参数字段的参数值为具备对可靠性测试的测试结果影响较大的参数,例如测试接口的接口文档,接口文档中包括了通过测试接口进行数据传输时测试接口需要使用的参数。由于场景参数字段的参数值对可靠性测试的测试结果影响较大,则可以基于场景参数字段构建初始测试参数对应的去重字符串。

具体地,测试设备可以保留初始测试参数中的参数字段以及初始测试参数中场景参数字段的参数值,从而得到初始测试参数对应的去重字符串。例如当初始测试参数为:a=1&b=2&c=3&d=4,场景参数字段为a时,初始测试参数对应的去重字符串为:a=1&b&c&d。

请参见图5,测试人员可以通过如图5所示的参数配置界面配置参数过滤字段(包括场景参数字段和无关参数字段),然后将参数过滤字段发送给测试设备。

(3)基于每个初始测试参数分别对应的去重字符串对m个日志参数对应的初始测试参数进行去重。

具体地,针对m个日志参数对应的初始测试参数进行去重相当于针对m个初始测试参数进行去重,则测试设备在得到m个初始测试参数中每个初始测试参数分别对应的去重字符串后,可以利用每个初始测试参数分别对应的去重字符串对m个初始测试参数进行去重。

其中,在利用每个初始测试参数分别对应的去重字符串对m个初始测试参数进行去重时,可以对各个初始测试参数对应的去重字符串进行对比,若该m个初始测试参数中存在多个(至少两个)初始测试参数分别对应的去重字符串均相同,则可以保留该多个初始测试参数中的任意一个初始测试参数,而删除该多个初始测试参数中除所保留的初始测试参数之外的初始测试参数,以达到对m个初始测试参数进行去重的目的。例如,若m等于5,m个初始测试参数包括初始测试参数1、初始测试参数2、初始测试参数3、初始测试参数4和初始测试参数5,其中,初始测试参数1的去重字符串、初始测试参数2的去重字符串和初始测试参数3的去重字符串均相同,则可以保留该初始测试参数1、初始测试参数2、初始测试参数3中的任意一个初始测试参数,如可以保留初始测试参数1,那么就可以删除初始测试参数2和初始测试参数3,最终对该5个初始测试参数进行去重后的初始测试参数就包括初始测试参数1、初始测试参数4和初始测试参数5。

在一个可行的实施例中,测试设备得到每个初始测试参数分别对应的去重字符串后,还可以对各个初始测试参数对应的去重字符串进行加密处理,利用加密处理后的去重字符串来对初始测试参数进行去重。例如调用信息-摘要算法(message-digestalgorithm,md5)对初始测试参数对应的去重字符串进行加密,得到由4组32位长度的散列值,再通过对散列值级联从而得到128字节长度的去重字符串的数据指纹,利用去重字符串的数据指纹来对m个初始测试参数进行去重。当然,除了md5,还可以用md4加密算法、url加密算法等,本申请对此不作限定。相比于直接利用初始测试参数对应的去重字符串对m个初始测试参数进行去重的方式,对初始测试参数对应的去重字符串加密后,可以减少数据处理量,从而加快对m个初始测试参数进行去重的效率。

(4)将对m个日志参数对应的初始测试参数进行去重后所得到的初始测试参数确定为测试参数。

具体地,测试设备可以将m个日志参数对应的初始测试参数进行去重后所得到的初始测试参数作为需要进行可靠性测试的测试参数。

相比于采用手工抓包需要花费大量的时间,以及导致获取的测试参数可能不全的方式,本实施例可以通过参数过滤字段来确定测试参数,可以提高可靠性测试的测试效率和测试结果的准确率。

在一个实施例中,在确定测试参数后,测试设备可以将测试参数与测试接口的目标测试标识进行关联存储至数据库中,该数据库可以为日志数据库,也可以为除日志数据库外的其他数据库。

进一步地,如图6所示,可以在智能设备上显示手工触发扫描的测试触发显示界面,使得测试人员可以在测试触发显示界面上通过查询测试标识,来查看测试标识对应的测试接口和测试接口的测试参数,例如输入测试标识39016,测试人员通过在测试触发显示界面选取测试参数,可以向测试设备发送携带测试标识和测试参数的测试请求,使得测试设备可以根据测试请求获取到测试参数,并将测试请求携带的测试标识作为目标测试标识来对测试接口进行数据传输的可靠性测试。除了自动化地进行可靠性测试,通过本实施,还提供了一种利用手工触发进行测试接口的可靠性测试的方式。

s405、获取测试接口的接口配置信息,对接口配置信息和测试参数进行合并,得到初始测试请求。

其中,接口配置信息可以包括测试接口的接口标识、测试接口的域名信息、测试接口的部署目录、以及测试接口的接口协议中的一个或多个。

在一个实施例中,在确定初始测试请求时,可以确定测试请求组装模板,并将测试接口的接口配置信息与测试参数填充至测试请求组装模板中,得到初始测试请求。例如初始测试请求为获取(get)请求,则测试请求组装模板为:https(http)://www.aaa.com/bbb/ccc?a=xxx&b=xxxx,其中,https(http)为测试接口的接口协议,www.aaa.com为测试接口的域名信息,bbb为测试接口的部署目录,ccc为测试接口的接口标识,例如为activity.cgi,a=xxx&b=xxxx为测试参数。

在一个实施例中,测试设备还需要获取测试参数对应的请求的方式,例如是获取(get)请求,还是发送(post)请求,将其作为初始测试请求的接口协议。

s406、获取针对测试接口的接口测试策略,根据接口测试策略修改初始测试请求,修改后的初始测试请求属于异常的测试请求。

其中,接口测试策略为对初始测试请求进行修改,从而得到异常的测试请求的修改策略。

在一个实施例中,在获取针对测试接口的接口测试策略时,测试设备可以直接调用安全扫描工具,例如漏洞扫描服务(vulnerabilityscanservice,vss),利用安全扫描工具中的测试策略作为接口测试策略来修改初始测试请求。例如,安全扫描工具的测试策略中可以确定在初始测试请求中添加的漏洞的类型,或将漏洞添加到初始测试请求中的测试参数的哪个位置,等等。

s407、将修改后的初始测试请求确定为模拟测试请求。

具体地,测试设备将修改后的初始测试请求作为模拟测试请求,模拟测试请求可以为一条也可以为多条,可以根据接口测试策略确定,例如接口测试策略可以选择利用多种类型的漏洞的恶意指令代码对初始测试请求进行修改,得到多条模拟测试请求,也可以是将漏洞的恶意指令代码添加在初始测试请求中的测试参数之前、之后、或替换测试参数来得到多条模拟测试请求。

s408、基于测试接口将模拟测试请求发送给请求响应设备,以使请求响应设备根据模拟测试请求向测试设备返回测试响应数据。

具体地,当模拟测试请求为一条时,测试设备可以直接将该模拟测试请求通过测试接口发送给请求响应设备,当模拟测试请求存在多条时,例如30条,测试设备可以对模拟测试请求进行分批处理,假设设定每次只处理10条模拟测试请求,则经过3批次的处理就可以处理完所有的模拟测试请求,可以避免将大量的模拟测试请求同时发送至请求响应设备,而导致请求响应设备出现性能不足的问题,在发送过后,可以获取请求响应设备针对模拟测试请求返回的测试响应数据。

s409、对测试响应数据进行检测,当检测到测试响应数据包含异常数据时,确定测试接口具有数据传输的不可靠性。

在一个实施例中,当测试响应数据包含异常数据时,则测试接口具有数据传输的不可靠性。例如,将一个存在xss攻击的模拟测试请求通过测试接口发送至请求响应设备时,如果返回的测试响应数据包含xss攻击的恶意指令代码,则测试响应数据中xss攻击的恶意指令代码为异常数据,测试接口存在xss漏洞,测试接口具有数据传输的不可靠性,相反,如果返回的测试响应数据不包含xss攻击的恶意指令代码,则说明测试接口能检测出xss攻击的恶意指令代码,从而对xss攻击的恶意指令代码进行过滤或屏蔽,则测试接口具有数据传输的可靠性。

在一个实施例中,测试设备还可以获取请求响应设备针对具有数据传输的可靠性的测试接口时返回的标准测试响应数据,将标准测试响应数据与请求响应设备针对测试接口实际返回的测试响应数据进行对比,确定是否存在异常数据。

在一个实施例中,基于模拟测试请求对测试接口进行数据传输的可靠性测试后,测试设备可以生成针对测试接口的测试结果,并获取与目标测试标识关联存储的历史测试数据,根据测试结果更新历史测试数据,得到测试接口的更新测试数据,将目标测试标识与更新测试数据进行关联存储。

具体地,在得到测试接口的测试结果后,其中,测试结果可以包括测试接口存在的漏洞或测试接口是否存在漏洞,测试设备可以获取与测试接口的目标测试标识关联存储的历史测试数据,其中,历史测试数据中可以是测试接口的所有的测试结果,也可以为测试接口相比于当前时间节点的前一次的测试结果,然后根据测试结果更新历史测试数据,并将得到的测试接口的更新测试数据与目标测试标识进行关联存储至数据库中,该数据库可以为日志数据库,也可以为除日志数据库外的其他数据库。

在一个实施例中,目标测试标识还可以关联测试接口对应的测试人员、安装有测试接口的设备、测试接口部署目录、测试接口的域名信息、测试接口的接口协议等信息,通过目标测试标识查看测试接口的历史测试数据时,还可以查看上述目标测试标识关联的信息。

通过本实施例,可以利用目标测试标识将测试接口的测试与测试接口的研发、测试、发布等过程关联起来,使得与测试接口的研发流水线相关的人员,包括开发人员和测试人员,都可以通过目标测试标识确定测试接口的测试状态和测试结果,可以避免在测试接口发布之前还不确定测试接口是否有进行可靠性测试,而导致漏扫的问题。

在一个实施例中,如图7所示,测试接口可以是任意一个需要进行测试的数据接口,对各个数据接口进行测试的原理与对测试接口进行测试的原理是一样的。测试设备可以通过测试接口的目标测试标识调用日志处理服务(例如日志收集器)来获取通过测试接口生成的日志数据,并将通过测试接口生成的日志数据存储至日志数据库中,当需要对测试接口进行可靠性测试时,扫描器就利用与测试接口相关联的目标测试标识从日志数据库中获取通过测试接口生成的日志数据作为测试日志数据,并根据测试日志数据来获取测试参数从而生成初始测试请求,最后调用安全扫描工具生成模拟测试请求以对测试接口进行数据传输的可靠性测试。

综上,本申请实施例提出的数据测试方法在研发流水线中的主要流程如图8所示,当测试接口在冒烟测试结束后,可以将测试接口部署在请求响应设备上,请求响应设备可以为一个也可以为多个,在部署完成后,测试设备可以利用日志收集器,例如filebeat,获取通过测试接口生成的日志数据,并存储至日志数据库中,在达到设置的测试周期的周期节点所指示的时刻时(自动触发测试时),测试设备首先对从日志数据库中获取到的测试日志数据进行解析处理来获取日志参数,再对日志参数进行过滤处理来获取测试参数,然后调用扫描器利用测试参数和测试接口的接口配置信息来获取初始测试请求,最后调用安全扫描工具,利用安全扫描工具指示的接口测试策略对初始测试请求进行修改,并利用修改后得到的模拟测试请求来对测试接口进行数据传输的可靠性测试。其中,对日志参数进行过滤处理来获取测试参数的详细说明可参见s404,此处不再赘述。

其中,测试设备还可以在获取到测试参数后,将测试参数与目标测试标识关联存储至数据库中,该数据库可以为日志数据库,也可以为除日志数据库以外的其他数据库,本申请对此不作限定。

在一个实施例中,当数据库中存储有测试参数时,测试设备可以直接从数据库中获取测试参数来对测试接口进行数据传输的可靠性测试。

具体地,如图9所示,当手工触发测试或自动触发测试时,测试设备需要判断数据库中是否有目标测试标识对应的测试接口,当存在测试接口时,从数据库中获取测试接口的参数信息,其中参数信息可以包括测试接口的测试参数、请求方式(get请求或post请求),以及与测试接口的目标测试标识关联的信息(例如测试接口的部署目录、接口协议等)等,同时还需要确定测试请求中的测试参数的条数,当测试参数的条数大于预设条数时,可以对测试参数进行分批处理,并可以根据分批处理的结果对测试参数进行分批测试,避免导致测试设备的性能不足,其中,该预设条数可以根据实际应用场景进行配置,该预设条数为正整数,例如该预设条数为100条等,该预设条数表示了需要对测试参数进行分批处理后再测试的最大条数。测试设备还可以利用测试接口的接口配置信息与测试参数确定初始测试请求,并调用安全扫描工具进行数据传输的可靠性测试,记录目标测试标识和安全扫描工具的测试结果。通过本申请实施例,可以直接获取数据库中的测试参数来对测试接口进行数据传输的可靠性测试,从而可以提高测试接口的可靠性测试的测试效率。

如图10所示,图10是本申请实施例提供的一种数据测试装置的结构示意图,所述装置包括:

获取模块1001,用于获取与测试接口相关联的目标测试标识;

该获取模块1001,还用于基于目标测试标识调用日志数据库,从日志数据库中获取基于测试接口生成的测试日志数据;

处理模块1002,用于提取测试日志数据中的测试参数,基于测试参数生成针对测试接口的模拟测试请求;

该处理模块1002,还用于基于模拟测试请求对测试接口进行数据传输的可靠性测试。

在一个实施例中,上述处理模块1002,具体用于:

提取m个测试日志数据所包含的m个日志参数,其中,一个测试日志数据对应一个日志参数,m为正整数;

获取参数过滤字段,根据参数过滤字段分别对m个日志参数进行参数过滤,得到测试参数。

在一个实施例中,上述处理模块1002,具体用于:

根据参数过滤字段分别对m个日志参数进行过滤,得到每个日志参数分别对应的初始测试参数;

分别生成每个初始测试参数对应的去重字符串;

基于每个初始测试参数分别对应的去重字符串对m个日志参数对应的初始测试参数进行去重;

将对m个日志参数对应的初始测试参数进行去重后所得到的初始测试参数确定为测试参数。

在一个实施例中,上述处理模块1002,具体用于:

获取测试接口的接口配置信息;

对接口配置信息和测试参数进行合并,得到初始测试请求;

获取针对测试接口的接口测试策略,根据接口测试策略修改初始测试请求,其中,修改后的初始测试请求属于异常的测试请求;

将修改后的初始测试请求确定为模拟测试请求。

在一个实施例中,上述处理模块1002,具体用于:

基于测试接口将模拟测试请求发送给请求响应设备,以使请求响应设备根据模拟测试请求向测试设备返回测试响应数据;

对测试响应数据进行检测;

当检测到测试响应数据包含异常数据时,确定测试接口具有数据传输的不可靠性。

在一个实施例中,上述处理模块1002,具体用于:

基于模拟测试请求对测试接口进行数据传输的可靠性测试,并生成针对测试接口的测试结果;

获取与目标测试标识关联存储的历史测试数据;

根据测试结果更新历史测试数据,得到针对测试接口的更新测试数据;

将目标测试标识与更新测试数据进行关联存储。

在一个实施例中,上述获取模块1001,具体用于:

获取l个数据接口,l个数据接口包括测试接口,l为正整数;

分别生成l个数据接口中每个数据接口的测试标识,并获取每个数据接口的接口标识;

对每个数据接口的测试标识与对应的接口标识进行关联存储;

获取与测试接口的接口标识进行关联存储的测试标识,作为目标测试标识。

在一个实施例中,上述获取模块1001,具体用于:

设置针对测试接口的测试周期;

在到达测试周期的周期节点所指示的时刻时,获取与测试接口相关联的目标测试标识。

通过本申请实施例,获取与测试接口相关联的目标测试标识,基于目标测试标识调用日志数据库获取基于测试接口生成的测试日志数据,并提取测试日志数据中的测试参数,基于测试参数生成针对测试接口的模拟测试请求,利于模拟测试请求对测试接口进行数据传输的可靠性测试,可以提高测试接口的可靠性测试的测试效率。

如图11所示,图11是本申请实施例提供的一种计算机设备的结构示意图,该设备内部结构如图11所示,包括:一个或多个处理器1101、存储器1102、通信接口1103。上述处理器1101、存储器1102和通信接口1103可通过总线1104或其他方式连接,本申请实施例以通过总线1104连接为例。

其中,处理器1101(或称cpu(centralprocessingunit,中央处理器))是计算机设备的计算核心以及控制核心,其可以解析计算机设备内的各类指令以及处理计算机设备的各类数据,例如:cpu可以用于解析用户向计算机设备所发送的开关机指令,并控制计算机设备进行开关机操作;再如:cpu可以在计算机设备内部结构之间传输各类交互数据,等等。通信接口1103可选的可以包括标准的有线接口、无线接口(如wi-fi、移动通信接口等),受处理器1101的控制用于收发数据。存储器1102(memory)是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的存储器1102既可以包括计算机设备的内置存储器,当然也可以包括计算机设备所支持的扩展存储器。存储器1102提供存储空间,该存储空间存储了计算机设备的操作系统,可包括但不限于:windows系统、linux系统等等,本申请对此并不作限定。

在一个实施例中,上述处理器1101,具体用于:

获取与测试接口相关联的目标测试标识;

基于目标测试标识调用日志数据库,从日志数据库中获取基于测试接口生成的测试日志数据;

提取测试日志数据中的测试参数,基于测试参数生成针对测试接口的模拟测试请求;

基于模拟测试请求对测试接口进行数据传输的可靠性测试。

在一个实施例中,上述处理器1101,具体用于:

提取m个测试日志数据所包含的m个日志参数,其中,一个测试日志数据对应一个日志参数,m为正整数;

获取参数过滤字段,根据所述参数过滤字段分别对所述m个日志参数进行参数过滤,得到所述测试参数。

在一个实施例中,上述处理器1101,具体用于:

根据参数过滤字段分别对m个日志参数进行过滤,得到每个日志参数分别对应的初始测试参数;

分别生成每个初始测试参数对应的去重字符串;

基于每个初始测试参数分别对应的去重字符串对m个日志参数对应的初始测试参数进行去重;

将对m个日志参数对应的初始测试参数进行去重后所得到的初始测试参数确定为测试参数。

在一个实施例中,上述处理器1101,具体用于:

获取测试接口的接口配置信息;

对接口配置信息和测试参数进行合并,得到初始测试请求;

获取针对测试接口的接口测试策略,根据接口测试策略修改初始测试请求,其中,修改后的初始测试请求属于异常的测试请求;

将修改后的初始测试请求确定为模拟测试请求。

在一个实施例中,上述处理器1101,具体用于:

基于测试接口将模拟测试请求发送给请求响应设备,以使请求响应设备根据模拟测试请求向测试设备返回测试响应数据;

对测试响应数据进行检测;

当检测到测试响应数据包含异常数据时,确定测试接口具有数据传输的不可靠性。

在一个实施例中,上述处理器1101,具体用于:

基于模拟测试请求对测试接口进行数据传输的可靠性测试,并生成针对测试接口的测试结果;

获取与目标测试标识关联存储的历史测试数据;

根据测试结果更新历史测试数据,得到针对测试接口的更新测试数据;

将目标测试标识与更新测试数据进行关联存储。

在一个实施例中,上述处理器1101,具体用于:

获取l个数据接口;l个数据接口包括测试接口,l为正整数;

分别生成l个数据接口中每个数据接口的测试标识,并获取每个数据接口的接口标识;

对每个数据接口的测试标识与对应的接口标识进行关联存储;

获取与测试接口的接口标识进行关联存储的测试标识,作为目标测试标识。

在一个实施例中,上述处理器1101,具体用于:

设置针对测试接口的测试周期;

在到达测试周期的周期节点所指示的时刻时,获取与测试接口相关联的目标测试标识。

通过本申请实施例,获取与测试接口相关联的目标测试标识,基于目标测试标识调用日志数据库获取基于测试接口生成的测试日志数据,并提取测试日志数据中的测试参数,基于测试参数生成针对测试接口的模拟测试请求,利于模拟测试请求对测试接口进行数据传输的可靠性测试,可以提高测试接口的可靠性测试的测试效率。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该计算机程序在执行时,可包括如上述数据测试方法的实施例的流程。其中,该计算机可读取存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

本申请一个或多个实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法的实施例中所执行的步骤。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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