一种接口入参功能测试方法、装置、设备及存储介质与流程

文档序号:18939970发布日期:2019-10-23 01:04阅读:230来源:国知局
一种接口入参功能测试方法、装置、设备及存储介质与流程

本发明涉及测试技术领域,特别是涉及一种接口入参功能测试方法、装置、设备及存储介质。



背景技术:

随着计算机技术的快速发展,具有各种功能的软件不断被开发出来,给人们的生活和工作带来很多便利。在软件发布之前,多需要对接口入参功能进行测试,即将入参参数赋予一定的参数值,进行接口请求,获得测试结果。

目前,在对接口入参功能测试中,多是由测试人员手动录入各个入参参数的参数值。操作较为繁琐,而且需要依赖测试人员的经验对各个入参参数进行参数值的录入,测试覆盖面无法保障,测试效率较低,无法适应软件的快速更新需求。



技术实现要素:

本发明的目的是提供一种接口入参功能测试方法、装置、设备及存储介质,以简化测试过程,提高测试效率,保障测试覆盖面。

为解决上述技术问题,本发明提供如下技术方案:

一种接口入参功能测试方法,包括:

获得待测接口的标准入参;

按照设定的参数值生成规则,自动生成所述标准入参中每个入参参数对应的替换参数值;

针对每个入参参数,依次使用该入参参数对应的每个替换参数值替换该入参参数的标准参数值,并保持其他入参参数的标准参数值不变,获得该入参参数对应的最终数据;

分别使用每个最终数据进行接口请求,获得测试结果。

在本发明的一种具体实施方式中,所述根据设定的参数值生成规则,自动生成所述标准入参中每个入参参数对应的替换参数值,包括:

确定所述标准入参中每个入参参数的格式类型;

针对每个入参参数,从设定的参数值生成规则中,选择与该入参参数的格式类型对应的规则,自动生成该入参参数对应的替换参数值。

在本发明的一种具体实施方式中,还包括:

根据获得的测试结果,生成测试日志;

将所述测试日志推送给设定人员。

在本发明的一种具体实施方式中,还包括:

针对每个入参参数,如果该入参参数对应的至少一个测试结果与正常执行结果不同,则将该入参参数确定为一类参数;如果该入参参数对应的所有测试结果均与所述正常执行结果相同,则将该入参参数确定为二类参数;所述正常执行结果为:使用所述标准入参进行接口请求,获得的测试结果;

在再次测试时,针对每个属于一类参数的入参参数,按照所述参数值生成规则,自动生成该入参参数对应的替换参数值,依次使用该入参参数对应的每个替换参数值替换该入参参数的标准参数值,并保持其他入参参数的标准参数值不变,获得该入参参数对应的最终数据;

依次使用每个预设参数值同时替换属于二类参数的每个入参参数的标准参数值,并保持其他属于一类参数的每个入参参数的标准参数值不变,获得二类参数对应的最终数据;

重复执行所述分别使用每个最终数据进行接口请求,获得测试结果的步骤。

在本发明的一种具体实施方式中,所述预设参数值为由空字符构成的参数值,和/或由随机数字、随机小写字母、随机大写字母、随机汉字、特殊字符、空字符构成的参数值。

一种接口入参功能测试装置,包括:

标准入参获得模块,用于获得待测接口的标准入参;

替换参数值生成模块,用于按照设定的参数值生成规则,自动生成所述标准入参中每个入参参数对应的替换参数值;

最终数据获得模块,用于针对每个入参参数,依次使用该入参参数对应的每个替换参数值替换该入参参数的标准参数值,并保持其他入参参数的标准参数值不变,获得该入参参数对应的最终数据;

测试结果获得模块,用于分别使用每个最终数据进行接口请求,获得测试结果。

在本发明的一种具体实施方式中,所述替换参数值生成模块,具体用于:

确定所述标准入参中每个入参参数的格式类型;

针对每个入参参数,从设定的参数值生成规则中,选择与该入参参数的格式类型对应的规则,自动生成该入参参数对应的替换参数值。

在本发明的一种具体实施方式中,还包括:

参数分类模块,用于针对每个入参参数,如果该入参参数对应的至少一个测试结果与正常执行结果不同,则将该入参参数确定为一类参数;如果该入参参数对应的所有测试结果均与所述正常执行结果相同,则将该入参参数确定为二类参数;所述正常执行结果为:使用所述标准入参进行接口请求,获得的测试结果;

再次测试执行模块,用于在再次测试时,针对每个属于一类参数的入参参数,按照所述参数值生成规则,自动生成该入参参数对应的替换参数值,依次使用该入参参数对应的每个替换参数值替换该入参参数的标准参数值,并保持其他入参参数的标准参数值不变,获得该入参参数对应的最终数据;

依次使用每个预设参数值同时替换属于二类参数的每个入参参数的标准参数值,并保持其他属于一类参数的每个入参参数的标准参数值不变,获得二类参数对应的最终数据;

触发所述测试结果获得模块。

一种接口入参功能测试设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现上述任一项所述接口入参功能测试方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述接口入参功能测试方法的步骤。

应用本发明实施例所提供的技术方案,通过设定的参数值生成规则,自动生成标准入参中每个入参参数对应的替换参数值,并自动针对每个入参参数,进行标准参数值的替换,获得每个入参参数对应的最终数据,分别使用每个最终数据进行接口请求,获得测试结果,相较于人工进行入参参数的参数值的设定,操作更为简单,简化了测试过程,提高了测试效率,能够保障测试覆盖面,能够更好的适应软件的快速更新需求。

附图说明

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

图1为本发明实施例中一种接口入参功能测试方法的实施流程图;

图2为本发明实施例中一种接口入参功能测试装置的结构示意图;

图3为本发明实施例中一种接口入参功能测试设备的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1所示,为本发明实施例所提供的一种接口入参功能测试方法的实施流程图,该方法可以包括以下步骤:

s110:获得待测接口的标准入参。

待测接口可以为待测软件的任意一个接口,不同接口的入参参数可能不同。首先确定当前的待测接口,然后通过用户录入等方式可以获得待测接口的标准入参。标准入参中每个入参参数具有标准参数值。

用户具体可以是测试人员、技术人员等。

s120:按照设定的参数值生成规则,自动生成标准入参中每个入参参数对应的替换参数值。

在本发明实施例中,可以预先设定一个参数值生成规则。

具体的,可以提供给用户一个选项列表,由用户从选项列表中选择参数值生成规则所基于的选项:

1.1长度:入参长度,默认为0,即选取标准参数值的长度;

1.2数字类型:生成入参时是否包含数字;默认是。

1.3小写字母:生成入参时是否包含小写字母;默认是。

1.4大写字母:生成入参时是否包含大写字母;默认是。

1.5汉字(gbk):生成入参时是否包含汉字;默认是(一个汉字字符认为其长度为1)。

1.6特殊字符(!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~):生成入参时是否包含特殊字符;默认是。

1.7空字符(\t\n\x0b\x0c\r):生成入参时是否包含空字符;默认是。

1.8自定义入参:支持用户录入的入参定义,如sql注入等。

1.9字符优先级:

在1.1(长度)≥6时,首先生成1.2—1.7中各一个随机字符(长度为6),余下的从1.2—1.7中随机获得,补足1.1(长度)。

若长度不满足时,优先级为:汉字>空字符>特殊字符>大写字母=小写字母=数字。

根据用户选择的选项,可以设定参数值生成规则。举例而言,如果上述全部选项均被选择,则参数值生成规则如下:

2.1:空字符;

2.2:包含1个随机数字,1个随机小写字母,1个随机大写字母,1个随机汉字,全部特殊字符,全部空字符;

2.3:"入参参数的标准参数值"满足手机号格式:随机生成一个手机号;

2.4:"入参参数的标准参数值"满足手机号格式:随机生成一个手机号并去掉最后一位;

2.5:"入参参数的标准参数值"满足手机号格式:随机生成一个手机号并增加一个随机数字位;

2.6:"入参参数的标准参数值"满足日期格式:随机生成一个日期时间;

2.7:"入参参数的标准参数值"满足日期格式:生成一个"入参参数的标准参数值"前1年的时间;

2.8:"入参参数的标准参数值"满足日期格式:生成一个"入参参数的标准参数值"后1年的时间;

2.9:"入参参数的标准参数值"满足实数格式:生成一个随机小数;

2.10:"入参参数的标准参数值"满足实数格式:-1;

2.11:"入参参数的标准参数值"满足实数格式:0;

2.12:"入参参数的标准参数值"满足实数格式:生成一个位数等于1.1(长度)的随机数;

2.13:"入参参数的标准参数值"满足实数格式:生成一个位数等于1.1(长度)1.2倍(向上取整)的随机数;

2.14:"入参参数的标准参数值"满足邮箱格式:生成一个随机邮箱;

2.15:"入参参数的标准参数值"满足邮箱格式:生成一个长度等于1.1(长度)的随机字符串;

2.16:"入参参数的标准参数值"满足字符串格式:1.2-1.7均为是的情况下,按照1.9的优先级获取;如1.1(长度)为1且1.5(汉字)为“是”时,则为一个随机汉字,若1.1(长度)为1且1.5(汉字)为“否”时,则为一个随机空字符;如1.1(长度)为2且1.5(汉字)为“是”时,则为一个随机汉字+一个随机空字符;以此类推。生成等于1.1(长度)的随机字符串;

2.17:"入参参数的标准参数值"满足字符串格式:同2.16,生成1.1(长度)1.2倍长度(向上取整)的随机字符串;

2.18:录入框录入的非空自定义的入参。

需要说明的是,上述参数值生成规则仅为示例,在实际应用中,可以根据实际情况,进行设定。

按照设定的参数值生成规则,可以自动生成标准入参中每个入参参数对应的替换参数值。

在本发明的一种具体实施方式中,可以先确定标准入参中每个入参参数的格式类型,然后针对每个入参参数,从设定的参数值生成规则中,选择与该入参参数的格式类型对应的规则,自动生成该入参参数对应的替换参数值。

如获得的标准入参的json格式为:

{"key1":"value1","key2":["list_1","list_2"]}。

以上述的参数值生成规则为例,若"value1"的标准参数值为手机号码,即该入参参数的格式类型为手机号格式类型,可以选择对应的规则为2.1-2.5,生成的该入参参数对应的替换参数值分别为[”,'0aa!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~\t\n\r\x0b\x0c赐','15577778892','1557777888','155777788880','自定义入参'];

若"value1"的标准参数值为日期,即该入参参数的格式类型为日期格式类型,可以选择对应的规则为2.1、2.2、2.6-2.8,基于这些规则,自动生成该入参参数对应的替换参数值;

若"value1"的标准参数值为实数,即该入参参数的格式类型为实数格式类型,可以选择对应的规则为2.1、2.2、2.9-2.13,基于这些规则,自动生成该入参参数对应的替换参数值;

若"value1"的标准参数值为邮箱,即该入参参数的格式类型为邮箱格式类型,可以选择对应的规则为2.1、2.2、2.14、2.15,基于这些规则,自动生成该入参参数对应的替换参数值;

若"value1"的标准参数值为字符串,即该入参参数的格式类型为字符串格式类型,可以选择对应的规则为2.1、2.2、2.16、2.17,基于这些规则,自动生成该入参参数对应的替换参数值。

以上是对入参参数"value1"的替换参数值的生成进行的举例说明,对于入参参数"list_1"、"list_2"的替换参数值的生成与此相似,不再重复举例。

自动生成标准入参中每个入参参数对应的替换参数值后,可以继续执行步骤s130的操作。

s130:针对每个入参参数,依次使用该入参参数对应的每个替换参数值替换该入参参数的标准参数值,并保持其他入参参数的标准参数值不变,获得该入参参数对应的最终数据。

在步骤s120按照设定的参数值生成规则,自动生成标准入参中每个入参参数对应的替换参数值之后,每个入参参数对应了一个或多个替换参数值。

针对每个入参参数,依次使用该入参参数对应的每个替换参数值替换该入参参数的标准参数值,并保持其他入参参数对应的每个标准参数值不变,获得该入参参数对应的最终数据。一个入参参数对应几个替换参数值,该入参参数即对应几个最终数据。

继续以上面的例子为例进行说明。

生成的入参参数"value1"对应的替换参数值分别为:

[”,'0aa!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~\t\n\r\x0b\x0c赐','15577778892','1557777888','155777788880','自定义入参']。

依次使用该列表中的每个替换参数值替换{"key1":"value1","key2":["list_1","list_2"]}中入参参数"value1"的标准入参值,并保持其他入参参数的标准参数值不变,获得入参参数"value1"对应的最终数据分别为:

{"key1":"","key2":["list_1","list_2"]};

{"key1":"0aa!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~\t\n\r\x0b\x0c赐","key2":["list_1","list_2"]};

{"key1":"'15577778892'","key2":["list_1","list_2"]};

{"key1":"'1557777888'","key2":["list_1","list_2"]};

{"key1":"'155777788880'","key2":["list_1","list_2"]};

{"key1":"自定义入参","key2":["list_1","list_2"]}。

入参参数"value1"对应6个替换参数值,最终获得的该入参参数对应的最终数据有6个。

同理,可以分别获得入参参数"list_1"、"list_2"对应的最终数据。

s140:分别使用每个最终数据进行接口请求,获得测试结果。

获得每个入参参数对应的最终数据后,分别使用每个最终数据进行接口请求,获得测试结果。对于每个最终数据,相应的测试结果可以是接口是否正常响应该最终数据,是否返回正常执行结果,是否返回异常执行结果,系统是否出错等。

在本发明的一个实施例中,可以根据获得的测试结果,生成测试日志,将测试日志推送给设定人员。如通过邮件、手机号码、终端客户端等推送给设定人员,以使设定人员根据测试日志确定是否对该接口入参功能进行优化。

应用本发明实施例所提供的方法,通过设定的参数值生成规则,自动生成标准入参中每个入参参数对应的替换参数值,并自动针对每个入参参数,进行标准参数值的替换,获得每个入参参数对应的最终数据,分别使用每个最终数据进行接口请求,获得测试结果,相较于人工进行入参参数的参数值的设定,操作更为简单,简化了测试过程,提高了测试效率,能够保障测试覆盖面,能够更好的适应软件的快速更新需求。

在本发明的一个实施例中,该方法还可以包括以下步骤:

步骤一:针对每个入参参数,如果该入参参数对应的至少一个测试结果与正常执行结果不同,则将该入参参数确定为一类参数;如果该入参参数对应的所有测试结果均与正常执行结果相同,则将该入参参数确定为二类参数;正常执行结果为:使用标准入参进行接口请求,获得的测试结果。

在本发明实施例中,获得待测接口的标准入参之后,可以使用该标准入参进行接口请求,获得的测试结果即为正常执行结果。

分别使用每个最终数据进行接口请求,获得每个最终数据对应的测试结果。标准入参中每个入参参数对应于一个或多个最终数据,同时也会对应于一个或多个测试结果。

针对每个入参参数,可以将该入参参数对应的每个测试结果与正常执行结果进行比较,确定是否相同,如果该入参参数对应的至少一个测试结果与正常执行结果不同,则可以将该入参参数确定为一类参数,表明该入参参数的不同参数值对于测试结果的影响较大,如果该入参参数对应的所有测试结果均与正常执行结果相同,则可以将该入参参数确定为二类参数,表明该入参参数的不同参数值对于测试结果的影响较小。

步骤二:在再次测试时,针对每个属于一类参数的入参参数,按照参数值生成规则,自动生成该入参参数对应的替换参数值,依次使用该入参参数对应的每个替换参数值替换该入参参数的标准参数值,并保持其他入参参数的标准参数值不变,获得该入参参数对应的最终数据。

在实际应用中,对于待测接口的测试可以按照设定周期进行,或者在软件程序有更新时进行。可以在对待测接口的入参功能的初次测试时执行步骤s110至步骤s140的操作,获得测试结果,还可以在每次需要对待测接口的入参功能的测试中均执行步骤s110至步骤s140的操作,获得测试结果。

在本发明实施例中,在执行步骤s110至步骤s140的操作之后,对于入参参数进行一类参数与二类参数的划分。在再次需要对待测接口进行测试时,可以针对每个属于一类参数的入参参数,按照参数值生成规则,自动生成该入参参数对应的替换参数值,依次使用该入参参数对应的每个替换参数值替换该入参参数的标准参数值,并保持其他入参参数的标准参数值不变,获得该入参参数对应的最终数据。该过程可以参照步骤s120至步骤s130的操作过程,在此不再赘述。

步骤三:依次使用每个预设参数值同时替换属于二类参数的每个入参参数的标准参数值,并保持其他属于一类参数的每个入参参数的标准参数值不变,获得二类参数对应的最终数据。

在本发明实施例中,可以设定预设参数值,预设参数值具体可以为由空字符构成的参数值,和/或由随机数字、随机小写字母、随机大写字母、随机汉字、特殊字符、空字符构成的参数值。

依次使用每个预设参数值同时替换属于二类参数的每个入参参数的标准参数值,并保持其他属于一类参数的每个入参参数的标准参数值不变,获得二类参数对应的最终数据。

举例而言,若入参参数"value1"对应的最终数据获得的接口返回结果即测试结果有变动,则将入参参数"value1"标记为一类参数,再次测试时,仍按照2.1-2.5生成替换参数值获取最终入参;

若入参参数"value1"对应的最终数据获得的接口返回结果即测试结果没有变动,则将入参参数"value1"标记为二类参数,再次测试时,仅用2.2和2.3生成替换参数值得到最终数据;

若入参参数"value1"为一类参数,"list_1"、"list_2"等多个入参参数均为二类参数,则在替换参数时执行批量替换,保持入参参数"value1"的标准参数值不变,得到的二类参数对应的最终该数据为:

{"key1":"value1","key2":["",""]};

{"key1":"value1","key2":["0aa!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~\t\n\r\x0b\x0c赐","0aa!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~\t\n\r\x0b\x0c赐"]}。

即所有二类参数,共执行两次接口请求。

步骤四:重复执行步骤s140分别使用每个最终数据进行接口请求,获得测试结果的操作。

在本发明实施例中,针对每个属于一类参数的入参参数,获得该入参参数对应的最终数据,对于二类参数,获得二类参数对应的最终数据。分别使用每个最终数据进行接口请求,可以获得测试结果。

通过本发明实施例所提供的方法,在执行接口入参功能测试时,只需要用户录入一个标准入参,即可自动生成需要测试的接口入参数据,发起请求获取返回结果。极大的减少人工操作过程,提升了入参测试的覆盖率。在测试完成后,通过判断入参参数对测试结果是否有影响来标记参数类型,提高下次测试的执行效率。

相应于上面的方法实施例,本发明实施例还提供了一种接口入参功能测试装置,下文描述的一种接口入参功能测试装置与上文描述的一种接口入参功能测试方法可相互对应参照。

参见图2所示,该装置包括:

标准入参获得模块210,用于获得待测接口的标准入参;

替换参数值生成模块220,用于按照设定的参数值生成规则,自动生成标准入参中每个入参参数对应的替换参数值;

最终数据获得模块230,用于针对每个入参参数,依次使用该入参参数对应的每个替换参数值替换该入参参数的标准参数值,并保持其他入参参数的标准参数值不变,获得该入参参数对应的最终数据;

测试结果获得模块240,用于分别使用每个最终数据进行接口请求,获得测试结果。

应用本发明实施例所提供的装置,通过设定的参数值生成规则,自动生成标准入参中每个入参参数对应的替换参数值,并自动针对每个入参参数,进行标准参数值的替换,获得每个入参参数对应的最终数据,分别使用每个最终数据进行接口请求,获得测试结果,相较于人工进行入参参数的参数值的设定,操作更为简单,简化了测试过程,提高了测试效率,能够保障测试覆盖面,能够更好的适应软件的快速更新需求。

在本发明的一种具体实施方式中,替换参数值生成模块220,具体用于:

确定标准入参中每个入参参数的格式类型;

针对每个入参参数,从设定的参数值生成规则中,选择与该入参参数的格式类型对应的规则,自动生成该入参参数对应的替换参数值。

在本发明的一种具体实施方式中,还包括测试日志推送模块,用于:

根据获得的测试结果,生成测试日志;

将测试日志推送给设定人员。

在本发明的一种具体实施方式中,还包括:

参数分类模块,用于针对每个入参参数,如果该入参参数对应的至少一个测试结果与正常执行结果不同,则将该入参参数确定为一类参数;如果该入参参数对应的所有测试结果均与正常执行结果相同,则将该入参参数确定为二类参数;正常执行结果为:使用标准入参进行接口请求,获得的测试结果;

再次测试执行模块,用于在再次测试时,针对每个属于一类参数的入参参数,按照参数值生成规则,自动生成该入参参数对应的替换参数值,依次使用该入参参数对应的每个替换参数值替换该入参参数的标准参数值,并保持其他入参参数的标准参数值不变,获得该入参参数对应的最终数据;

依次使用每个预设参数值同时替换属于二类参数的每个入参参数的标准参数值,并保持其他属于一类参数的每个入参参数的标准参数值不变,获得二类参数对应的最终数据;

触发测试结果获得模块240。

在本发明的一种具体实施方式中,预设参数值为由空字符构成的参数值,和/或由随机数字、随机小写字母、随机大写字母、随机汉字、特殊字符、空字符构成的参数值。

相应于上面的方法实施例,本发明实施例还提供了一种接口入参功能测试设备,如图3所示,该设备包括:

存储器310,用于存储计算机程序;

处理器320,用于执行计算机程序时实现上述任一项接口入参功能测试方法的步骤。

相应于上面的方法实施例,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述任一项接口入参功能测试方法的步骤。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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