一种接口的测试用例生成方法、装置、设备及存储介质

文档序号:7446 发布日期:2021-09-17 浏览:35次 英文

一种接口的测试用例生成方法、装置、设备及存储介质

技术领域

本发明实施例涉及接口测试

技术领域

,尤其涉及一种接口的测试用例生成方法、装置、设备及存储介质。

背景技术

接口测试是测试系统组件间接口的一种测试,是测试的重要组成部分,测试的重点是检查接口参数传递的正确性、接口功能实现的正确性、输出结果的正确性以及各种异常情况的容错处理的完整性和合理性。

目前,在实现接口测试过程中,需要通过人工编写大量的测试用例,耗费大量的时间,无法满足快速高效的软件项目测试要求。

发明内容

本发明实施例提供一种接口的测试用例生成方法、装置、设备及存储介质,可以快速生成批量的接口测试用例,节约时间和人力成本,提高测试效率,并且避免人工编写测试用例过程中的操作失误,保证测试用例的准确性。

第一方面,本发明实施例提供了一种接口的测试用例生成方法,包括:

接收接口说明文档,为所述接口说明文档中的接口设置对应的编号;

读取所述接口说明文档中接口的必要描述信息,并基于接口编号、所述必要描述信息中的接口名称、以及测试用例的类型信息或者输入参数的属性信息生成测试用例的名称;

基于所述必要描述信息中的请求类型、内容类型、输入参数名称、输入参数是否是必填输入参数、输入参数的取值范围以及数值类型生成测试用例的输入参数值;

基于所述必要描述信息中的响应时间以及输出参数,生成测试用例的预期结果。

可选的,所述测试用例为正向测试用例;

所述基于所述必要描述信息中的请求类型、内容类型、输入参数名称、输入参数是否是必填输入参数、输入参数的取值范围以及数值类型生成测试用例的输入参数值,包括:

基于所述请求类型以及所述内容类型确定输入参数的输入格式;其中,所述输入格式中包括所述输入参数名称与对应输入参数的格式;

基于输入参数的取值范围以及数值类型生成第一测试数据;

若输入参数是必填输入参数,将所述第一测试数据按照所述输入格式对所述输入参数进行赋值,生成测试用例的输入参数值。

可选的,所述测试用例为反向测试用例;

所述基于所述必要描述信息中的请求类型、内容类型、输入参数名称、输入参数是否是必填输入参数、输入参数的取值范围以及数值类型生成测试用例的输入参数值,包括:

基于所述请求类型以及所述内容类型确定输入参数的输入格式;其中,所述输入格式中包括所述输入参数名称与对应输入参数的格式;

若接口的第一输入参数是必填输入参数,按照所述输入格式对所述第一输入参数赋值为空值,生成测试用例的第一输入参数值;

针对除所述第一输入参数之外的第二输入参数,基于对应的取值范围以及数值类型确定第二测试数据;

若所述第二输入参数为必填输入参数,将所述第二测试数据按照所述输入格式对所述第二输入参数进行赋值,生成测试用例的第二输入参数值。

可选的,基于接口编号、所述必要描述信息中的接口名称、以及输入参数的属性信息生成测试用例的名称,包括:

若所述第一输入参数为必填输入参数,且所述第一输入参数的排序序号小于或者等于必填输入参数的总数量,基于所述接口编号、所述接口名称、所述第一输入参数名称、所述第一输入参数的实际非必填信息生成测试用例的名称;

相应的,所述预期结果中所述第一输入参数对应的输出参数中的编码类型为参数为空。

可选的,所述测试用例为反向测试用例;

所述基于所述必要描述信息中的请求类型、内容类型、输入参数名称、输入参数是否是必填输入参数、输入参数的取值范围以及数值类型生成测试用例的输入参数值,包括:

基于所述请求类型以及所述内容类型确定输入参数的输入格式;其中,所述输入格式中包括输入参数名称与对应的输入参数的格式;

确定超出第三输入参数的取值范围,且符合所述第三输入参数的数值类型的第三测试数据;

若所述第三输入参数为必填输入参数,将所述第三测试数据按照所述输入格式对所述第三输入参数进行赋值,生成测试用例的第三输入参数值;

针对除所述第三输入参数之外的第四输入参数,基于对应的取值范围以及数值类型确定第四测试数据;

若所述第四输入参数为必填输入参数,将所述第四测试数据按照所述输入格式对所述第四输入参数进行赋值,生成测试用例的第四输入参数值。

可选的,基于接口编号、所述必要描述信息中的接口名称、以及输入参数的属性信息生成测试用例的名称,包括:

若所述第三输入参数为必填输入参数,且所述第三输入参数的排序序号小于或者等于必填输入参数的总数量,基于所述接口编号、所述接口名称、所述第三输入参数名称以及所述第三输入参数的无效属性信息生成测试用例的名称;

相应的,所述预期结果中第三输入参数对应的输出参数中的编码类型为参数无效。

可选的,基于接口编号、所述必要描述信息中的接口名称、以及测试用例的类型信息生成测试用例的名称,包括:

基于所述接口编号、所述接口名称以及所述测试用例的正向类型生成测试用例的名称。

第二方面,本发明实施例提供了一种接口的测试用例生成装置,包括:

接收/设置模块,用于接收接口说明文档,为所述接口说明文档中的接口设置对应的编号;

第一生成模块,用于读取所述接口说明文档中接口的必要描述信息,并基于接口编号、所述必要描述信息中的接口名称、以及测试用例的类型信息或者输入参数的属性信息生成测试用例的名称;

第二生成模块,用于基于所述必要描述信息中的请求类型、内容类型、输入参数名称、输入参数是否是必填输入参数、输入参数的取值范围以及数值类型生成测试用例的输入参数值;

第三生成模块,用于基于所述必要描述信息中的响应时间以及输出参数,生成测试用例的预期结果。

第三方面,本发明实施例提供了一种电子设备,包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例提供的方法。

第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现本发明实施例提供的方法。

本发明实施例提供的技术方案,通过为接口说明文档中的接口设置对应的编号,通过读取接口说明文档中接口的必要描述信息,通过基于接口编号、必要描述信息中的接口名称、以及测试用例的类型信息或者输入参数的属性信息生成测试用例的名称,可以便于对测试用例的信息进行了解和区分;通过读取的接口说明文档中的必要描述信息,通过必要描述信息中的请求类型内容类型、输入参数名称、输入参数是否是必填输入参数、输入参数的取值范围以及数值类型生成测试用例的输入参数值,以及通过必要描述信息中的输出参数和响应时间生成测试用例的预期结果,可以快速生成批量的接口测试用例,节约时间和人力成本,提高测试效率,并且避免人工编写测试用例过程中的操作失误,保证测试用例的准确性,可以覆盖较全面的测试用例,从而对接口进行全面测试。在测试用例为正向测试用例的情况下,通过接口编号、接口名称以及测试用例的正向类型生成测试用例的名称,可以便于测试人员快速了解测试用例的信息,便于对测试用例进行区分,通过接口说明文件中的请求类型以及内容类型确定输入参数的输入格式;通过输入参数的取值范围以及数值类型生成第一测试数据,若输入参数是必填输入参数,将第一测试数据按照输入格式对输入参数进行赋值,生成测试用例的输入参数值,基于接口说明文档中的响应时间以及输出参数,生成测试用例的预期结果,可以将重复性、规律性的测试用例编写过程转换成自动生成过程,可以快速高效地批量生成接口测试用例,可以对接口进行正向测试。在测试用例为反向测试用例的情况下,基于接口编号、接口名称、第一输入参数名称、第一输入参数的实际非必填信息生成测试用例的名称,可以便于对测试用例的信息进行了解,便于区分测试用例的验证属性,便于对测试用例进行区分,从而提高接口测试的效率,通过请求类型以及内容类型确定输入参数的输入格式;若接口的第一输入参数是必填输入参数,按照所述输入格式对第一输入参数赋值为空值,生成测试用例的第一输入参数值;针对除第一输入参数之外的第二输入参数,通过对应的取值范围以及数值类型确定第二测试数据;若第二输入参数为必填输入参数,将第二测试数据按照所述输入格式对第二输入参数进行赋值,生成测试用例的第二输入参数值,可以生成反向测试用例的输入参数值,从而对接口属于必填输入参数的输入参数进行非空验证,从而对接口进行较全面的测试。在测试用例为反向测试用例的情况下,通过确定超出取值范围,且符合数值类型的第三测试数据,并将该测试数据赋值给第三输入参数,得到测试用例的第三输入参数值,即通过将第三输入参数赋值为无效参数值,得到测试用例的第三输入参数值,通过将预期结果中第三输入参数对应的输出参数中的编码类型为参数无效,生成的测试用例可以对属于必填输入参数的输入参数进行有效性验证,可以对接口进行较全面的测试。

附图说明

图1a是本发明实施例提供的一种接口的测试用例生成方法流程图;

图1b是本发明实施例提供的一种接口的测试用例生成方法流程图;

图2是本发明实施例提供的一种接口的测试用例生成方法流程图;

图3是本发明实施例提供的一种接口的测试用例生成方法流程图;

图4是本发明实施例提供的一种接口的测试用例生成方法流程图;

图5是本发明实施例提供的一种接口的测试用例生成装置结构框图;

图6是本发明实施例提供的一种电子设备结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

相关技术中,测试用例是为某个特殊目标编写的一组测试输入、执行条件以及预期结果的用例,用于核实是否满足特定软件需求。接口可以是应用程序接口,可以是预先定义的接口,例如函数接口、超文本传输协议(HyperText Transfer Protocol,HTTP)接口等。

相关技术中,接口测试是测试系统组件间接口的一种测试,主要是对测试系统与外部其他系统之间的接口进行测试,以及对系统内部各个子模块之间的接口进行测试。其中,接口测试主要是检查接口参数传递的正确性、接口功能实现的正确性、输出结果的正确性、以及对各种异常情况的容错处理的完整性和合理性。通过接口测试可以提前发现计算机程序中的错误(bug),由于接口测试可以自动化并且是持续集成的,具有低成本高效益的优势。

在接口测试过程中,需要编写接口的测试用例,并执行测试用例,完成对接口的测试。其中,接口的测试用例的设计与单元测试用例的设计具有相似之处,需要采用例如边界值法,等价类法等基本测试方法。设计接口的测试用例的出发点是要验证接口实现的功能、性能指标与接口说明文档的一致性。

目前,接口的测试用例编写主要通过人工方式,其实现过程为:首先,需要参考接口说明文档,明确每个接口的输入参数名称,数值类型、取值范围、是否必填输入参数等,其中,输入参数的组合需要遵循等价类法、边界值法等测试用例的设计方法,以最少的测试用例数量覆盖所有典型输入参数组合,做到每个测试用例覆盖不同的测试点,且每条测试用例都不可被取代。其次,需要根据接口说明文档,明确每个接口所有可能返回的输出结果,在测试用例的响应断言中分别加入相应的预期结果,通过判断接口的实际输出结果与接口测试用例的预期结果的一致性来判断接口功能是否正确。最后,在测试用例的响应断言中加入响应时间的预期结果,通过判断接口的实际响应时间是否达到预期结果,来判断接口的性能是否符合要求。

当某个接口的输入参数和输出结果的可能性过多时,为了保证测试的覆盖率,需要对每个输入参数进行各种测试,并对输出结果的可能性也要构造相应的输入参数,生成测试用例,用来验证接口的实际输出结果是否符合预期结果。其中,接口越复杂时,测试点也越多,针对该接口编写的测试用例的数量也越多,在常规软件测试项目中,一个接口的测试用例可能会较多,人工编写测试用例的方式需要耗费大量的时间,无法满足快速高效的软件项目测试要求,并且在人工编写测试用例的过程中,可能会存在输入参数编写错误或者其他操作导致的测试用例不通过等问题,该问题排查起来也会比较浪费时间。

为了解决上述问题,本发明实施例提供了一种接口的测试用例生成方法,图1a是本发明实施例提供的一种接口的测试用例生成方法流程图,所述方法可以由接口的测试用例生成装置来执行,所述装置可以由软件和/或硬件来实现,所述装置可以配置在电子设备中,所述方法可以应用于接口测试的场景中。

如图1a所示,本发明实施例提供的技术方案包括:

S110:接收接口说明文档,为所述接口说明文档中的接口设置对应的编号。

在本发明实施例中,接口说明文档可以由研发人员根据接口的待测功能进行预先编写,接口说明文档可以是规范化的接口说明文档。其中,接口说明文档中包括一个或者多个接口的必要描述信息,其中,必要描述信息包括请求类型、接口路径,内容类型(content-type)输入参数名称、输入参数是否是必填输入参数、输入参数的取值范围、输入参数的数值类型、响应时间以及输出参数。

举例说明,表1是接口说明文档的一个示例,如表1所示,接口说明文档中包括请求类型、接口路径,content-type、输入参数名称、输入参数是否是必填输入参数、输入参数的取值范围、输入参数的数值类型、响应时间以及输出参数。例如,接口名称为用户登录,请求类型为post,响应时间为3s,输入参数名称包括username、passwd、age和birthday等。

表1

在本发明实施例中,可选的,接收接口说明文档,可以读取接口说明文档中接口的总数量,为接口说明文档中的接口设置对应的编号。其中,对接口设置对应的编号,举例而言,可以按照顺序进行编号,接口的编号可以是01,02……N。其中,通过对接口设置编号,可以用于生成测试用例的名称。

S120:读取所述接口说明文档中接口的必要描述信息,并基于接口编号、所述必要描述信息中的接口名称、以及测试用例的类型信息或者输入参数的属性信息生成测试用例的名称。

在本发明实施例中,可以为读取接口说明文档中接口的必要描述信息设置限定条件,或者也可以不需要设置限定条件。可选的,在为读取接口说明文档中接口的必要描述信息设置限定条件的情况下,例如,可以是在接口编号小于接口说明文档中接口总数量的情况下,读取接口说明文档中接口的必要信息。其中,为读取接口说明文档设置限定条件,可以便于采用循环的方式依次读取接口说明文档中的接口的必要描述信息,从而仅用一段代码程序生成多个测试用例。

在本发明实施例中,测试用例的类型信息可以包括测试用例的正向类型以及测试用例的反向类型。输入参数的属性信息可以包括输入参数是否有效、输入参数是否是必填参数等属性信息。

在本发明实施例中,测试用例可以包括正向测试用例和反向测试用例。其中,正向的测试用例,可以理解为输入正确的输入参数,验证接口是否可以返回正确的输出参数。反向的测试用例,可以理解为输入错误的输入参数,验证接口是否反馈相应的输出参数。在测试用例为正向测试用例的情况下,可以基于接口名称、接口编号以及测试用例的类型信息生成测试用例的名称,从而可以便于测试人员对测试用例的信息进行了解和区分。在测试用例是反向测试用例的情况下,可以基于接口名称、接口编号以及输入参数的属性信息生成测试用例的名称,可以便于测试人员对测试用例的信息进行了解和区分,从而方便接口测试。

S130:基于所述必要描述信息中的请求类型、内容类型、输入参数名称、输入参数是否是必填输入参数、输入参数的取值范围以及数值类型生成测试用例的输入参数值。

在本发明实施例中,接口的请求类型可以包括post请求和get请求,内容类型(content-type),实体头部用于指示资源的多用途互联网邮件扩展类型(MultipurposeInternet Mail Extensions,MIME),在响应中,content-type标头可以通知客户端实际返回内容的内容类型,在请求中,客户端告诉服务器实际发送的数据类型。输入参数名称以及输入参数是否是必填输入参数可以参考表1中的示例。其中,输入参数的取值范围可以理解为输入参数的长度范围,数值类型可以包括字符串型和整数值型等。

在本发明实施例中,可选的,可以基于请求类型和内容类型生成输入参数的输入格式,其中,输入格式中可以包括输入参数名称和输入参数的格式。例如,输入参数的格式可以是{“必填输入参数1”:a,“必填输入参数2”:b,“必填输入参数3”:c...}。可选的,可以基于“输入参数是否是必填输入参数、输入参数的取值范围和数值类型”生成测试数据,从而将测试数据赋值给对应的输入参数,生成测试用例的输入参数值。

由此,通过基于请求类型、内容类型、输入参数名称、输入参数是否是必填输入参数、输入参数的取值范围以及数值类型生成测试用例的输入参数值,可以生成覆盖较全面的测试用例,更加全面测试接口。

S140:基于所述必要描述信息中的响应时间以及输出参数,生成测试用例的预期结果。

在本发明实施例中,响应时间可以用于验证接口的性能,输出参数可以包括编码类型(code)、数据(data)以及消息类型(msg)。例如,如表1所示,输出参数的code中可以包括0、1001和1002等,分别表征正常、参数为空、参数无效等,msg可以包括ture、false等。

在本发明实施例中,可以通过接口说明文档中接口的响应时间以及输出参数生成测试用例的预期结果,可以通过输入参数值以及预期结果形成测试用例,执行测试用例,将测试用例的预期结果和实际输出结果可以进行比较,从而验证测试用例的正确性。

图1b是本发明实施例提供的一种接口的测试用例生成方法流程图,如图1b所示,该方法包括开始,接收接口说明文档;读取接口说明文档中接口的总数量,并为每个接口设置对应的编号;判断接口编号是否小于或者等于接口的总数量,若否,结束流程;若是,读取接口说明文档中的必要描述信息,基于必要描述信息以及接口编号生成接口的测试用例。其中,基于接口的必要描述信息生成接口的测试用例包括上述实施例的S120-S140。具体介绍可以详见上述实施例。

本发明实施例提供的技术方案,通过为接口说明文档中的接口设置对应的编号,通过读取接口说明文档中接口的必要描述信息,通过基于接口编号、必要描述信息中的接口名称、以及测试用例的类型信息或者输入参数的属性信息生成测试用例的名称,可以便于对测试用例的信息进行了解和区分;通过读取的接口说明文档中的必要描述信息,通过必要描述信息中的请求类型内容类型、输入参数名称、输入参数是否是必填输入参数、输入参数的取值范围以及数值类型生成测试用例的输入参数值,以及通过必要描述信息中的输出参数和响应时间生成测试用例的预期结果,可以快速生成批量的接口测试用例,节约时间和人力成本,提高测试效率,并且避免人工编写测试用例过程中的操作失误,保证测试用例的准确性,可以覆盖较全面的测试用例,从而对接口进行全面测试。

图2是本发明实施例提供的一种接口的测试用例生成方法流程图,在本实施例中,测试用例为正向测试用例。

可选的,所述基于所述必要描述信息中的请求类型、内容类型、输入参数名称、输入参数是否是必填输入参数、输入参数的取值范围以及数值类型生成测试用例的输入参数值,包括:

基于所述请求类型以及所述内容类型确定输入参数的输入格式;其中,所述输入格式中包括所述输入参数名称与对应输入参数的格式;

基于输入参数的取值范围以及数值类型生成第一测试数据;

若输入参数是必填输入参数,将所述第一测试数据按照所述输入格式对所述输入参数进行赋值,生成测试用例的输入参数值。

可选的,基于所述接口编号、所述接口名称以及所述测试用例的正向类型生成测试用例的名称。

如图2所示,本发明实施例提供的技术方案包括:

S210:接收接口说明文档,为所述接口说明文档中的接口设置对应的编号。

S220:读取所述接口说明文档中接口的必要描述信息。

在本发明实施例中,S210-S220可以参考上述实施例的介绍。

S230:基于所述接口编号、所述接口名称以及所述测试用例的正向类型生成测试用例的名称。

在本发明实施例中,测试用例的名称包括接口编号、接口名称以及测试用例的正向类型,例如,生成的测试用例的名称可以是接口编号_接口名称_正向。其中,生成测试用例的名称形式并不局限于上述形式,还可以是其他形式。

由此,通过接口编号、接口名称以及测试用例的正向类型生成测试用例的名称,可以便于测试人员快速了解测试用例的信息,便于对测试用例进行区分。

S240:基于所述请求类型以及所述内容类型确定输入参数的输入格式;其中,所述输入格式中包括所述输入参数名称与对应输入参数的格式。

在本发明实施例中,通过请求类型以及content-type可以确定输入参数的输入格式,其中,请求类型可以是post请求,content-type可以是json。其中,输入参数的输入格式可以是{“必填输入参数1”:a,“必填输入参数2”:b,“必填输入参数3”:c...}。

S250:基于输入参数的取值范围以及数值类型生成第一测试数据。

在本发明实施例中,基于输入参数的取值范围可以确定输入参数的长度范围,通过数值类型可以是确定输入参数是字符串还是整数值,基于取值范围和数值类型,通过调用随机生成函数可以生成符合要求的第一测试数据。例如,必填输入参数1的数值类型为int,且取值范围[0,100],通过调用随机函数可以生成符合要求的测试数据,该测试数据可以作为第一测试数据。

S260:若输入参数是必填输入参数,将所述第一测试数据按照所述输入格式对所述输入参数进行赋值,生成测试用例的输入参数值。

在本发明实施例中,若输入参数是必填输入参数,按照输入格式将第一测试数据赋值给该输入参数,得到测试用例的输入参数值。例如,若输入格式为{“必填输入参数1”:a,“必填输入参数2”:b,“必填输入参数3”:c...},必填输入参数1的数值类型为int,且取值范围[0,100],通过调用随机生成函数生成第一测试数据,将第一测试数据赋值给输入参数a,得到测试用例的输入参数值。

S270:基于所述必要描述信息中的响应时间以及输出参数,生成测试用例的预期结果。

在本发明实施例中,预期结果包括两部分,分别包括响应时间和输出参数。其中,正向测试用例的输出参数可以为{“code”:0;“msg”:false;“data”:...}。其中,正向测试用例的预期结果的编码(code)类型为0,则表征正常。

其中,S270的其他介绍可以参考上述实施例的介绍。

由此,若测试用例为正向测试用例,通过接口说明文件中的请求类型以及内容类型确定输入参数的输入格式;通过输入参数的取值范围以及数值类型生成第一测试数据,若输入参数是必填输入参数,将第一测试数据按照输入格式对输入参数进行赋值,生成测试用例的输入参数值,基于接口说明文档中的响应时间以及输出参数,生成测试用例的预期结果,可以将重复性、规律性的测试用例编写过程转换成自动生成过程,可以快速高效地批量生成接口测试用例,可以对接口进行正向测试。

图3是本发明实施例提供的一种接口的测试用例生成方法流程图,在本实施例中,测试用例为反向测试用例,该测试用例可以对属于必填输入参数的输入参数进行非空验证。

可选的,所述基于所述必要描述信息中的请求类型、内容类型、输入参数名称、输入参数是否是必填输入参数、输入参数的取值范围以及数值类型生成测试用例的输入参数值,包括:

基于所述请求类型以及所述内容类型确定输入参数的输入格式;其中,所述输入格式中包括所述输入参数名称与对应输入参数的格式;

若接口的第一输入参数是必填输入参数,按照所述输入格式对所述第一输入参数赋值为空值,生成测试用例的第一输入参数值;

针对除所述第一输入参数之外的第二输入参数,基于对应的取值范围以及数值类型确定第二测试数据;

若所述第二输入参数为必填输入参数,将所述第二测试数据按照所述输入格式对所述第二输入参数进行赋值,生成测试用例的第二输入参数值。

可选的,基于接口编号、所述必要描述信息中的接口名称、以及输入参数的属性信息生成测试用例的名称,包括:

若所述第一输入参数为必填输入参数,且所述第一输入参数的排序序号小于必填输入参数的总数量,基于所述接口编号、所述接口名称、所述第一输入参数名称、所述第一输入参数的实际非必填信息生成测试用例的名称。

如图3所示,本发明实施例提供的技术方案包括:

S310:接收接口说明文档,为所述接口说明文档中的接口设置对应的编号。

S320:读取所述接口说明文档中接口的必要描述信息。

在本发明实施例中,S310-S320的介绍可以参考上述实施例。

S330:若所述第一输入参数为必填输入参数,且所述第一输入参数的排序序号小于或者等于必填输入参数的总数量,基于所述接口编号、所述接口名称、所述第一输入参数名称、所述第一输入参数的实际非必填信息生成测试用例的名称。

在本发明实施例中,可以确定接口说明文档中属于必填输入参数的输入参数的总数量,为属于必填输入参数的输入参数设置排序序号。若第一输入参数是必填输入参数,且第一输入参数的排序序号小于或者等于必填输入参数的总数量,则生成测试用例的名称;否则,结束流程。

在本发明实施例中,可选的,可以基于接口编号、接口名称、属于必填输入参数的第一输入参数名称、以及第一输入参数的实际非必填信息生成测试用例的名称。例如,第一输入参数为X,且为必填参数,则生成的测试用例的名称可以是接口编号_接口名称_必填输入参数X_非必填。

由此,若第一输入参数为必填输入参数,且第一输入参数的排序序号小于或者等于必填输入参数的总数量,基于接口编号、接口名称、第一输入参数名称、第一输入参数的实际非必填信息生成测试用例的名称,可以便于对测试用例的信息进行了解,便于区分测试用例的验证属性,便于对测试用例进行区分,从而提高接口测试的效率。

S340:基于所述请求类型以及所述内容类型确定输入参数的输入格式;其中,所述输入格式中包括所述输入参数名称与对应输入参数的格式。

在本发明实施例中,S340的介绍可以参考上述实施例中的对应介绍。

S350:若接口的第一输入参数是必填输入参数,将所述第一输入参数按照所述输入格式对所述第一输入参数赋值为空值,生成测试用例的第一输入参数值。

在本发明实施例中,若第一输入参数是必填输入参数,可以将第一输入参数按照输入格式赋值为空值,则生成测试用例的第一输入参数值。例如,输入格式为{“必填输入参数1”:a,“必填输入参数2”:b,“必填输入参数3”:c...},第一输入参数是必填输入参数1,可以将必填输入参数1对应的a赋值为空值。

S360:针对除所述第一输入参数之外的第二输入参数,基于对应的取值范围以及数值类型确定第二测试数据。

在本发明实施例中,每个接口有多个对应的输入参数。在接口的输入参数中,除第一输入参数之外为第二输入参数,其中,第二输入参数包含参数的数量可以是至少一个。其中,第二测试数据的生成与上述实施例中第一测试数据的方法相同,不再累述。

S370:若所述第二输入参数为必填输入参数,将所述第二测试数据按照所述输入格式对所述第二输入参数进行赋值,生成测试用例的第二输入参数值。

在本发明实施例中,测试用例的第二输入参数值的生成方法与上述实施例中S260中介绍的输入参数值的生成方法相同,不再累述。

S380:基于所述必要描述信息中的响应时间以及输出参数,生成测试用例的预期结果,其中,所述预期结果中所述第一输入参数对应的输出参数中的编码类型为参数为空。

在本发明实施例中,由于第一输入参数是必填输入参数,但是将第一输入参数赋值为空值,则预期结果中的第一输入参数对应的输出参数中的code为1001,表征参数为空,从而实现测试用例的输入参数值与预期结果的对应。

需要说明的是,S350-S370的执行顺序,并局不限于上述实施例中的执行顺序,还可以是其他执行顺序,例如,S360和S370两个步骤在S350之前执行,或者还可以根据实际情况调整执行顺序。

由此,通过请求类型以及内容类型确定输入参数的输入格式;若接口的第一输入参数是必填输入参数,按照所述输入格式对第一输入参数赋值为空值,生成测试用例的第一输入参数值;针对除第一输入参数之外的第二输入参数,通过对应的取值范围以及数值类型确定第二测试数据;若第二输入参数为必填输入参数,将第二测试数据按照输入格式对第二输入参数进行赋值,生成测试用例的第二输入参数值,可以生成反向测试用例的输入参数值,从而对接口属于必填输入参数的输入参数进行非空验证,从而对接口进行较全面的测试。

图4是本发明实施例提供的一种接口的测试用例生成方法流程图,在本实施例中,可选的,测试用例是反向测试用例,该测试用例可以对属于必填输入参数的输入参数进行有效性验证。

可选的,所述基于所述必要描述信息中的请求类型、内容类型、输入参数名称、输入参数是否是必填输入参数、输入参数的取值范围以及数值类型生成测试用例的输入参数值,包括:

基于所述请求类型以及所述内容类型确定输入参数的输入格式;其中,所述输入格式中包括输入参数名称与对应的输入参数的格式;

确定超出第三输入参数的取值范围,且符合所述第三输入参数的数值类型的第三测试数据;

若所述第三输入参数为必填输入参数,将所述第三测试数据按照所述输入格式对所述第三输入参数进行赋值,生成测试用例的第三输入参数值;

针对除所述第三输入参数之外的第四输入参数,基于对应的取值范围以及数值类型确定第四测试数据;

若所述第四输入参数为必填输入参数,将所述第四测试数据按照所述输入格式对所述第四输入参数进行赋值,生成测试用例的第四输入参数值。

可选的,基于接口编号、所述必要描述信息中的接口名称、以及输入参数的属性信息生成测试用例的名称,包括:

若所述第三输入参数为必填输入参数,且所述第三输入参数的排序序号小于必填输入参数的总数量,基于所述接口编号、所述接口名称、所述第三输入参数名称以及所述第三输入参数的无效属性信息生成测试用例的名称。

如图4所示,本发明实施例提供的技术方案包括:

S410:接收接口说明文档,为所述接口说明文档中的接口设置对应的编号。

S420:读取所述接口说明文档中接口的必要描述信息。

在本实施例中,S410-S420的介绍可以参考上述实施例的介绍。

S430:若所述第三输入参数为必填输入参数,且所述第三输入参数的排序序号小于必填输入参数的总数量,基于所述接口编号、所述接口名称、所述第三输入参数名称以及所述第三输入参数的无效属性信息生成测试用例的名称。

在本发明实施例中,可以确定接口说明文档中输入参数属于必填输入参数的总数量,为属于必填输入参数的输入参数设置排序序号。若第一输入参数是必填输入参数,且第一输入参数的排序序号小于或者等于必填输入参数的总数量,则生成测试用例的名称;否则,结束流程。

在本发明实施例中,可以基于接口编号、接口名称、属于必填输入参数的第三输入参数名称以及第三输入参数的无效属性信息生成测试用例的名称。例如,第三输入参数可以是输入参数Y,则生成的测试用例的名称可以是接口编号_接口名称_输入参数Y_无效。

由此,通过接口编号、接口名称、第三输入参数名称以及第三输入参数的无效属性信息生成测试用例的名称,可以便于了解测试用例的验证属性,便于对测试用例进行区分,从而提高接口测试的效率。

S440:基于所述请求类型以及所述内容类型确定输入参数的输入格式;其中,所述输入格式中包括输入参数名称与对应的输入参数的格式。

在本发明实施例中,S440的介绍可以参考上述实施例中的对应介绍。

S450:确定超出第三输入参数的取值范围,且符合所述第三输入参数的数值类型的第三测试数据。

在本发明实施例中,可以通过第三输入参数的取值范围和数值类型,调用随机生成函数生成超出该取值范围,且符合数值类型的第三测试数据。例如,若第三输入参数的取值范围为[1,100],则数值类型为int,则生成的第三测试数据可以是120,其中,120并不在第三输入参数的取值范围内,但符合数值类型。又如,第三输入参数的取值范围为[5,10],则数值类型为str,则表征字符串的长度为[5,10],则可以调用随机生成函数生成长度不在[5,10]范围内的字符串,例如,可以生成第三测试数据abc,则abc的取值范围超出了第三输入参数的取值范围,且符合第三输入参数的数值类型。

S460:若所述第三输入参数为必填输入参数,将所述第三测试数据按照所述输入格式对所述第三输入参数进行赋值,生成测试用例的第三输入参数值。

在本发明实施例中,将第三测试数据赋值给第三输入参数,得到测试用例的第三输入参数值,由于第三测试数据超出了第三输入参数的取值范围,故第三输入参数值是无效的,由此,通过输入无效的输入参数值,可以对属于必填输入参数的输入参数进行有效性验证。

S470:针对除所述第三输入参数之外的第四输入参数,基于对应的取值范围以及数值类型确定第四测试数据。

在本发明实施例中,每个接口有多个对应的输入参数。在接口的输入参数中,除第三输入参数之外为第四输入参数,其中,第四输入参数包含参数的数量可以是至少一个。其中,第四测试数据的生成与上述实施例中第一测试数据的方法相同,不再累述。

S480:若所述第四输入参数为必填输入参数,将所述第四测试数据按照所述输入格式对所述第四输入参数进行赋值,生成测试用例的第四输入参数值。

在本发明实施例中,测试用例的第四输入参数值的生成方法与上述实施例中S260中介绍的输入参数值的生成方法相同,不再累述。

S490:基于所述必要描述信息中的响应时间以及输出参数,生成测试用例的预期结果;其中,所述预期结果中第三输入参数对应的输出参数中的编码类型为参数无效。

在本发明实施例中,由于第三测试数据取出了取值范围,将第三测试数据赋值给第三输入参数,则第三输入参数值为无效的参数值,则预期结果中的第三输入参数对应的输出参数中的code为1002,表征参数无效,从而实现测试用例的输入参数值与预期结果的对应,生成正确的测试用例,从而对接口进行正确测试。

由此,通过确定超出取值范围,且符合数值类型的第三测试数据,并将该测试数据赋值给第三输入参数,得到测试用例的第三输入参数值,即通过将第三输入参数赋值为无效参数值,得到测试用例的第三输入参数值,通过将预期结果中第三输入参数对应的输出参数中的编码类型为参数无效,生成的测试用例可以对属于必填输入参数的输入参数进行有效性验证,可以对接口进行较全面、正确的测试。

图5是本发明实施例提供的一种接口的测试用例生成装置结构框图,如图5所示,所述装置包括:接收/设置模块510、第一生成模块520、第二生成模块530和第三生成模块540。

其中,接收/设置模块510,用于接收接口说明文档,为所述接口说明文档中的接口设置对应的编号;

第一生成模块520,用于读取所述接口说明文档中接口的必要描述信息,并基于接口编号、所述必要描述信息中的接口名称、以及测试用例的类型信息或者输入参数的属性信息生成测试用例的名称;

第二生成模块530,用于基于所述必要描述信息中的请求类型、内容类型、输入参数名称、输入参数是否是必填输入参数、输入参数的取值范围以及数值类型生成测试用例的输入参数值;

第三生成模块540,用于基于所述必要描述信息中的响应时间以及输出参数,生成测试用例的预期结果。

可选的,所述测试用例为正向测试用例;

所述基于所述必要描述信息中的请求类型、内容类型、输入参数名称、输入参数是否是必填输入参数、输入参数的取值范围以及数值类型生成测试用例的输入参数值,包括:

基于所述请求类型以及所述内容类型确定输入参数的输入格式;其中,所述输入格式中包括所述输入参数名称与对应输入参数的格式;

基于输入参数的取值范围以及数值类型生成第一测试数据;

若输入参数是必填输入参数,将所述第一测试数据按照所述输入格式对所述输入参数进行赋值,生成测试用例的输入参数值。

可选的,所述测试用例为反向测试用例;

所述基于所述必要描述信息中的请求类型、内容类型、输入参数名称、输入参数是否是必填输入参数、输入参数的取值范围以及数值类型生成测试用例的输入参数值,包括:

基于所述请求类型以及所述内容类型确定输入参数的输入格式;其中,所述输入格式中包括所述输入参数名称与对应输入参数的格式;

若接口的第一输入参数是必填输入参数,按照所述输入格式对所述第一输入参数赋值为空值,生成测试用例的第一输入参数值;

针对除所述第一输入参数之外的第二输入参数,基于对应的取值范围以及数值类型确定第二测试数据;

若所述第二输入参数为必填输入参数,将所述第二测试数据按照所述输入格式对所述第二输入参数进行赋值,生成测试用例的第二输入参数值。

可选的,基于接口编号、所述必要描述信息中的接口名称、以及输入参数的属性信息生成测试用例的名称,包括:

若所述第一输入参数为必填输入参数,且所述第一输入参数的排序序号小于或者等于必填输入参数的总数量,基于所述接口编号、所述接口名称、所述第一输入参数名称、所述第一输入参数的实际非必填信息生成测试用例的名称;

相应的,所述预期结果中所述第一输入参数对应的输出参数中的编码类型为参数为空。

可选的,所述测试用例为反向测试用例;

所述基于所述必要描述信息中的请求类型、内容类型、输入参数名称、输入参数是否是必填输入参数、输入参数的取值范围以及数值类型生成测试用例的输入参数值,包括:

基于所述请求类型以及所述内容类型确定输入参数的输入格式;其中,所述输入格式中包括输入参数名称与对应的输入参数的格式;

确定超出第三输入参数的取值范围,且符合所述第三输入参数的数值类型的第三测试数据;

若所述第三输入参数为必填输入参数,将所述第三测试数据按照所述输入格式对所述第三输入参数进行赋值,生成测试用例的第三输入参数值;

针对除所述第三输入参数之外的第四输入参数,基于对应的取值范围以及数值类型确定第四测试数据;

若所述第四输入参数为必填输入参数,将所述第四测试数据按照所述输入格式对所述第四输入参数进行赋值,生成测试用例的第四输入参数值。

可选的,基于接口编号、所述必要描述信息中的接口名称、以及输入参数的属性信息生成测试用例的名称,包括:

若所述第三输入参数为必填输入参数,且所述第三输入参数的排序序号小于或者等于必填输入参数的总数量,基于所述接口编号、所述接口名称、所述第三输入参数名称以及所述第三输入参数的无效属性信息生成测试用例的名称;

相应的,所述预期结果中第三输入参数对应的输出参数中的编码类型为参数无效。

可选的,基于接口编号、所述必要描述信息中的接口名称、以及测试用例的类型信息生成测试用例的名称,包括:

基于所述接口编号、所述接口名称以及所述测试用例的正向类型生成测试用例的名称。

上述装置可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。

图6是本发明实施例提供的一种设备结构示意图,如图6所示,该设备包括:

一个或多个处理器610,图6中以一个处理器610为例;

存储器620;

所述设备还可以包括:输入装置630和输出装置640。

所述设备中的处理器610、存储器620、输入装置630和输出装置640可以通过总线或者其他方式连接,图6中以通过总线连接为例。

存储器620作为一种非暂态计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的一种接口的测试用例生成方法对应的程序指令/模块(例如,附图5所示的接收/设置模块510、第一生成模块520、第二生成模块530和第三生成模块540)。处理器610通过运行存储在存储器620中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述方法实施例的一种接口的测试用例生成方法,即:

接收接口说明文档,为所述接口说明文档中的接口设置对应的编号;

读取所述接口说明文档中接口的必要描述信息,并基于接口编号、所述必要描述信息中的接口名称、以及测试用例的类型信息或者输入参数的属性信息生成测试用例的名称;

基于所述必要描述信息中的请求类型、内容类型、输入参数名称、输入参数是否是必填输入参数、输入参数的取值范围以及数值类型生成测试用例的输入参数值;

基于所述必要描述信息中的响应时间以及输出参数,生成测试用例的预期结果。

存储器620可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器620可以包括高速随机存取存储器,还可以包括非暂态性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态性固态存储器件。在一些实施例中,存储器620可选包括相对于处理器610远程设置的存储器,这些远程存储器可以通过网络连接至终端设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置630可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置640可包括显示屏等显示设备。

本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例提供的一种接口的测试用例生成方法:

接收接口说明文档,为所述接口说明文档中的接口设置对应的编号;

读取所述接口说明文档中接口的必要描述信息,并基于接口编号、所述必要描述信息中的接口名称、以及测试用例的类型信息或者输入参数的属性信息生成测试用例的名称;

基于所述必要描述信息中的请求类型、内容类型、输入参数名称、输入参数是否是必填输入参数、输入参数的取值范围以及数值类型生成测试用例的输入参数值;

基于所述必要描述信息中的响应时间以及输出参数,生成测试用例的预期结果。

可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:端到端自动化测试方法、装置及电子设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!