接口自动化测试用例生成方法及相关设备与流程

文档序号:17773295发布日期:2019-05-28 19:42阅读:242来源:国知局
接口自动化测试用例生成方法及相关设备与流程

本发明涉及电子技术领域,尤其涉及一种接口自动化测试用例生成方法、装置及计算机可读存储介质。



背景技术:

一个产品在投入使用之前,为了减少其在使用过程中出现故障的频率,往往需要对各个接口进行测试,而对接口的测试,则依赖测试用例的设计。

目前,接口自动化测试在行业内已经有比较成熟的测试工具如postman等,这类工具都是通过构造接口的入参,获取返回结果后与预期的结果进行比对来判断接口功能的正确性。对接口的完整性测试归根到底都是依赖于接口测试用例的设计,目前行业内如上述的测试用例的设计思路较为单一,在如今的接口功能越来越丰富的背景下,实际上没有完全覆盖接口的全部代码逻辑,同时对业务需求也没有完整的覆盖,无法保证接口的完整性和饱满性,因此存在较大的漏侧的可能,显然,目前的测试用例设计思路已经不能满足测试接口功能多元化的变化,因此如何保证接口测试的完整性和饱满性成为亟待解决的问题。



技术实现要素:

鉴于此,有必要提供一种能较全面地覆盖待测试接口代码逻辑的应用于接口测试领域的接口自动化测试用例生成方法、装置及计算机可读存储介质。

本发明第一方面提供一种应用于接口测试领域的接口自动化测试用例生成方法,包括:

根据待测试接口的有效入参和异常业务场景生成与所述待测试接口对应的第一测试用例;

根据所述待测试接口的有效出参,通过等价类或/和边界值规则生成第二测试用例;

根据所述待测试接口预设的实际调用条件生成第三测试用例;

所述第一测试用例、第二测试用例及所述第三测试用例可供所述待测试接口在进行测试时调用。

本发明第二方面提供一种应用于接口测试领域的接口自动化测试用例生成装置,其特征在于,包括:

第一测试用例生成单元,用于根据待测试接口的有效入参和异常业务场景生成与所述待测试接口对应的第一测试用例;

第二测试用例生成单元,用于根据所述待测试接口的有效出参,通过等价类或/和边界值规则生成第二测试用例;

第三测试用例生成单元,用于根据所述待测试接口预设的实际调用条件生成第三测试用例;

所述第一测试用例、第二测试用例及所述第三测试用例可供所述待测试接口在进行测试时调用。

本发明第三方面提供一种计算机,包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序时实现如上述任意一项所述的应用于接口测试领域的接口自动化测试用例生成方法的步骤。

本发明第四方面提供一种计算机可读存储介质,其上存储有计算机程序或指令,所述计算机程序或指令被处理器执行时实现如上所述的应用于接口测试领域的接口自动化测试用例生成方法的步骤。

本发明提供的应用于接口测试领域的接口自动化测试用例生成方法,涉及计算机领域的接口测试领域,一方面考虑待测试接口的有效入参在异常业务场景下待测试接口的功能执行情况,另一方面考虑接口的有效出参,同时,还考虑接口的实际调用条件,根据上述的思路设计第一测试用例、第二测试用例及第三测试用例,以供待测试接口在进行测试时调用,由于上述的第一测试用例、第二测试用例及第三测试用例考量待测试接口功能、场景较全面,保证了对待测试接口的测试更加的全面,进而保证该待测试接口在后续的使用过程中更加稳定。

附图说明

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

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

图2是图1中步骤s1的细化的流程图;

图3是图1中步骤s2的细化的流程图;

图4是图1中步骤s3的细化的流程图;

图5是本发明实施例二提供的接口自动化测试用例生成装置的结构图;

图6是本发明实施例二提供的接口自动化测试用例生成装置的结构图。

主要元件符号说明

如下具体实施方式将结合上述附图进一步说明本发明。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行详细描述。需要说明的是,在不冲突的情况下,本申请的实施方式及实施方式中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施方式仅仅是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施方式的目的,不是旨在于限制本发明。

实施例一

图1是本发明第一实施方式的接口自动化测试用例生成方法的流程图。应说明的是,本发明实施方式的所述信息输出控制方法并不限于图1所示的流程图中的步骤及顺序。根据不同的需求,所示流程图中的步骤可以增加、移除、或者改变顺序。

如图1所示,一种接口自动化测试用例生成方法,包括:

步骤s1:根据待测试接口的有效入参和异常业务场景生成与该待测试接口对应的第一测试用例。

系统或者平台的各个接口,都会对应执行相应的功能,而在投入使用之前,为了保证其正确运行,往往要先对其进行测试,在此之前,则需要设计测试用例以供需要测试的接口(即步骤s1中的待测试接口)去执行,通过验证接口返回的数据来判断接口的功能是否正确,该测试过程对接口的有效性的稳定性来讲都具有很重要的意义。而在设计测试用例时,可以从各个方面进行考虑。在步骤s1中,则采用通过有效入参和异常的业务场景来生成第一测试用例。具体的,如图2所示,步骤s1具体包括:

s11,获取符合待测试接口对应的第一数据处理逻辑的有效入参;

在本实施例中,每一个待测试接口都会定义有一个第一数据处理逻辑,该第一数据处理逻辑为待测试接口要返回目标结果所要获取的有效入参(一个或者多个)以及对该有效入参的处理规则,当输入某一入参符合该第一数据处理逻辑时,该入参就是上述的相对于该待测试接口的有效入参。

例如,上述的待测试接口为一领取奖品的接口,现对该接口进行测试,需要设计与该领取奖品的接口对应的第一测试用例。该待测试接口预先定义有对应的第一数据处理逻辑。在步骤s11中,获取符合该领取奖品的接口的第一数据处理逻辑的入参,该入参即上述的有效入参。在一个规则中,上述的有效入参可以为领取奖品的用户标识(用户标识为例如手机号、特定字符串、二维码、用户名、奖品id等的其中之一或任意组合),当入参为上述的任意一种或几种组合时,称为有效入参。进一步的,待测试接口可对有效入参根据上述的处理规则进行处理。

s12,根据该有效入参,构建与待测试接口对应的异常业务场景。

在步骤s12中,根据上述的有效入参构建与该领取奖品的接口对应的异常业务场景。在本例中,有效入参和异常业务场景都是针对待测试接口来设计的,本例中的待测试接口为领取奖品的接口,因此有效入参为可以供领取奖品时作为领取者身份验证的数据(例如上述的手机号、特定字符串、二维码、用户名、奖品id等)。类似的,本例中待测试接口为领取奖品的接口,异常业务场景可以构建为包括但不仅限于以下几种情况:

(1)用户未获得奖品的情况下,调用领取奖品的接口(对应前端数据显示错误时开放了领取入口场景)。

(2)奖品处于已被领取状态,再调用领取奖品的接口(对应领取成功后前端按钮状态未刷新开放领取入口的场景);

(3)奖品处于已过期状态,调用领取奖品的接口(对应前端领取按钮状态实时性不高的情况保留领取入口的场景)

(4)奖品处于已领取完的状态下,调用领取奖品的接口(对应前端数据刷新不及时的异常情况)。

s13,根据有效入参和异常业务场景,生成与待测试接口对应的第一测试用例。

在步骤s13中,针对上述获取的有效入参和构建的异常业务场景,生成与待测试接口对应的至少一个第一测试用例。在本实施例中中,待测试接口为领取奖品的接口,上述的有效入参例如为领取者的手机号,上述的异常业务场景为奖品处于已被领取状态,再调用领取奖品的接口,则第一测试用例即为模拟上述情况下的测试用例。可通过对此时待测试接口在该业务场景下,根据有效入参返回的数据进行验证,判断其是否正确,以验证待测试接口是否具备能处理该异常情况的能力。

步骤s1中的第一测试用例生成方法,覆盖了对异常业务场景的测试用例的设计,可以测试系统处理异常状况的能力,一定程度上提高了接口的完整性和饱满性。

步骤s2:根据待测试接口的有效出参,通过等价类或/和边界值规则生成第二测试用例。

与第一测试用例的设计思路不同,在步骤s2中,对待测试接口的测试用例的设计,是从待测试接口的有效出参来考虑的。具体的,一个待测试接口的有效出参会对应有多个结果,此时利用等价类或/和边界值规则生成第二测试用例。具体的,如图3所示,步骤s2包括

步骤s21,获取符合待测试接口第二数据处理逻辑的有效出参。

与有效入参类似的,待测试接口会定义有第二数据处理逻辑,待测试接口的有效出参指待测试接口处理后返回给前端使用的字段,符合上述第二数据处理逻辑的出参即上述的有效出参。

步骤s22,根据有效出参,利用等价类规则、边界值规则的其中之一或组合,针对有效出参所对应的各个结果分别生成第二测试用例。以下还是以待测试接口为一领取奖品的接口为例进行举例说明:

(1)例如待测试接口返回isvalid字段(即上述的有效出参),那么根据该字段存在可能结果包括y(yes)、n(no)两种(即有效出参对应的可能结果),进而利用等价类规则,针对两个可能结果分别生成两个第二测试用例;

(2)再比如有效出参为赛事接口的状态字段isstart,其可能结果包括:ns(未开始)、n(报名未开始)、y(报名进行中)、e(赛事已结束)状态,进而可利用等价类规则针对isstrat字段的各个可能结果生成与待测试接口对应的多个第二测试用例;

(3)再比如对于待测试接口有效出参为字段num,其值是在[1,10]范围的,那么根据等价类和边界值的测试规则需要测试num字段返回(1,10)中任意一个值,返回1,和返回10几种结果,针对上述的结果分别生成多个对应该待测试接口的第二测试用例。

步骤s2中的第二测试用例设计方法,是根据有效出参设计该有效出参下的各个结果对应的第二测试用例使待测试接口测试功能更全面,测试覆盖后台的代码逻辑更多,大大提高待测试接口的功能完整性。

步骤s3:根据待测试接口预设的实际调用条件生成第三测试用例;

对于待测试接口来说,其并不是在接收到每一个请求时返回的数据都是相同的,因此设计测试用例时也要考虑返回不同的数据的情况。在本实施例中,待测试接口返回的数据通过实际调用条件来决定,不同的待测试接口,其实际调用条件可能不同。具体的,如图4所示,步骤s3包括:

步骤s31,分析待检测接口预设的实际调用条件。

对于待测试接口,其具备不同的实际调用条件,实际调用条件为例如请求次数、请求时间、请求者身份等,也即待测试接口根据请求次数、请求时间、请求者身份等的不同而返回不同的数据,该实际调用条件用于作为待测试接口返回的实际数据内容的参考依据。

步骤s32,根据实际调用条件,生成与该实际调用条件下的返回结果一一对应的多个第三测试用例。

(1)例如实际调用条件为请求次数,即同一待测试接口,调用其的请求次数不一样所对应的返回结果不一样,则待测试接口以请求次数作为依据,针对不同的请求次数会返回不同的结果。

如首页接口,其第一次请求和第二次请求的返回结果是不一样的,具体的,第一次请求时是全量返回数据并附带一个版本号,第二次请求时后台版本未变更就不返回数据,则根据多个请求次数下的返回结果设计多个与之一一对应的第三测试用例。

(2)例如实际调用条件为请求时间,即同一待测试接口,调用其的请求所产生的时间段不同会有不同的返回结果。

如某些待测试接口在a时间段对外开放,在其他时间段处于封锁状态,则针对不同的时间段设计与不同的时间段一一对应的第三测试用例。

(3)例如实际调用条件为请求者身份,即同一待测试接口,调用其的请求的发出者的身份不同,会产生不同的返回结果。

如某些接口支持多种身份用户的登入,而对于不同身份的用户需要展示不同的信息,则针对不同的身份,设计与身份一一对应的多个第三测试用例。

步骤s3中的第三测试用例生成方法,丰富了待测试接口的测试场景,保证了接口的正确性。

如上述的第一测试用例、第二测试用例及第三测试用例的设计思路,考虑了待测试接口的种种业务情况,覆盖接口的代码逻辑较全面,待测试接口在测试时调用上述的测试用例,可提高测试结果的可靠性。

本发明提供的接口自动化测试用例生成方法,一方面考虑待测试接口的有效入参在异常业务场景下待测试接口的功能执行情况,另一方面考虑接口的有效出参,同时,还考虑接口的实际调用条件,根据上述的思路设计第一测试用例、第二测试用例及第三测试用例,以供待测试接口在进行测试时调用,由于上述的第一测试用例、第二测试用例及第三测试用例考量待测试接口功能、场景较全面,保证了对待测试接口的测试更加的全面,进而保证该待测试接口在后续的使用过程中更加稳定。

实施例二

如图5所示,本实施例提供的一种接口自动化测试用例生成装置10,包括:

第一测试用例生成单元11,用于根据待测试接口的有效入参和异常业务场景生成与该待测试接口对应的第一测试用例。

系统或者平台的各个接口,都会对应执行相应的功能,而在投入使用之前,为了保证其正确运行,往往要先对其进行测试,在此之前,则需要设计测试用例以供需要测试的接口(即步骤s1中的待测试接口)去执行,通过验证接口返回的数据来判断接口的功能是否正确,该测试过程对接口的有效性的稳定性来讲都具有很重要的意义。而在设计测试用例时,可以从各个方面进行考虑。在步骤s1中,则采用通过有效入参和异常的业务场景来生成第一测试用例。具体的,如图6所示,第一测试用例生成单元11具体包括:

入参获取模块111,用于获取符合待测试接口对应的第一数据处理逻辑的有效入参。

在本实施例中,每一个待测试接口都会定义有一个第一数据处理逻辑,该第一数据处理逻辑为待测试接口要返回目标结果所要获取的有效入参(一个或者多个)以及对该有效入参的处理规则,当输入某一入参符合该第一数据处理逻辑时,该入参就是上述的相对于该待测试接口的有效入参。

例如,上述的待测试接口为一领取奖品的接口,现对该接口进行测试,需要设计与该领取奖品的接口对应的第一测试用例。该待测试接口预先定义有对应的第一数据处理逻辑。入参获取模块111获取符合该领取奖品的接口的第一数据处理逻辑的入参,该入参即上述的有效入参。在一个规则中,上述的有效入参可以为领取奖品的用户标识(用户标识为例如手机号、特定字符串、二维码、用户名、奖品id等的其中之一或任意组合),当入参为上述的任意一种或几种组合时,称为有效入参。进一步的,待测试接口可对有效入参根据上述的处理规则进行处理。

业务场景构建模块112,用于根据该有效入参,构建与待测试接口对应的异常业务场景。

业务场景构建模块112根据上述的有效入参构建与该领取奖品的接口对应的异常业务场景。在本例中,有效入参和异常业务场景都是针对待测试接口来设计的,本例中的待测试接口为领取奖品的接口,因此有效入参为可以供领取奖品时作为领取者身份验证的数据(例如上述的手机号、特定字符串、二维码、用户名、奖品id等)。类似的,本例中待测试接口为领取奖品的接口,异常业务场景可以构建为包括但不仅限于以下几种情况:

(1)用户未获得奖品的情况下,调用领取奖品的接口(对应前端数据显示错误时开放了领取入口场景)。

(2)奖品处于已被领取状态,再调用领取奖品的接口(对应领取成功后前端按钮状态未刷新开放领取入口的场景);

(3)奖品处于已过期状态,调用领取奖品的接口(对应前端领取按钮状态实时性不高的情况保留领取入口的场景)

(4)奖品处于已领取完的状态下,调用领取奖品的接口(对应前端数据刷新不及时的异常情况)。

第一测试用例生成模块113,用于根据有效入参和异常业务场景,生成与待测试接口对应的第一测试用例。

第一测试用例生成模块113针对上述获取的有效入参和构建的异常业务场景,生成与待测试接口对应的至少一个第一测试用例。在本实施例中中,待测试接口为领取奖品的接口,上述的有效入参例如为领取者的手机号,上述的异常业务场景为奖品处于已被领取状态,再调用领取奖品的接口,则第一测试用例即为模拟上述情况下的测试用例。可通过对此时待测试接口在该业务场景下,根据有效入参返回的数据进行验证,判断其是否正确,以验证待测试接口是否具备能处理该异常情况的能力。

第一测试用例生成单元11,覆盖了对异常业务场景的测试用例的设计,可以测试系统处理异常状况的能力,一定程度上提高了接口的完整性和饱满性。

第二测试用例生成单元12,用于根据待测试接口的有效出参,通过等价类或/和边界值规则生成第二测试用例。

与第一测试用例的设计思路不同,第二测试用例生成单元12对待测试接口的测试用例的设计,是从待测试接口的有效出参来考虑的。具体的,一个待测试接口的有效出参会对应有多个结果,此时利用等价类或/和边界值规则生成第二测试用例。具体的,如图6所示,第二测试用例生成单元12具体包括:

出参获取模块121,用于获取符合待测试接口第二数据处理逻辑的有效出参。

与有效入参类似的,待测试接口会定义有第二数据处理逻辑,待测试接口的有效出参指待测试接口处理后返回给前端使用的字段,符合上述第二数据处理逻辑的出参即上述的有效出参。

第二测试用例生成模块122,用于根据有效出参,利用等价类规则、边界值规则的其中之一或组合,针对有效出参所对应的各个结果分别生成第二测试用例。以下还是以待测试接口为一领取奖品的接口为例进行举例说明:

(1)例如待测试接口返回isvalid字段(即上述的有效出参),那么根据该字段存在可能结果包括y(yes)、n(no)两种(即有效出参对应的可能结果),进而利用等价类规则,针对两个可能结果分别生成两个第二测试用例;

(2)再比如有效出参为赛事接口的状态字段isstart,其可能结果包括:ns(未开始)、n(报名未开始)、y(报名进行中)、e(赛事已结束)状态,进而可利用等价类规则针对isstrat字段的各个可能结果生成与待测试接口对应的多个第二测试用例;

(3)再比如对于待测试接口有效出参为字段num,其值是在[1,10]范围的,那么根据等价类和边界值的测试规则需要测试num字段返回(1,10)中任意一个值,返回1,和返回10几种结果,针对上述的结果分别生成多个对应该待测试接口的第二测试用例。

第二测试用例生成单元12是根据有效出参设计该有效出参下的各个结果对应的第二测试用例使待测试接口测试功能更全面,测试覆盖后台的代码逻辑更多,大大提高待测试接口的功能完整性。

第三测试用例生成单元13,用于根据待测试接口预设的实际调用条件生成第三测试用例。

对于待测试接口来说,其并不是在接收到每一个请求时返回的数据都是相同的,因此设计测试用例时也要考虑返回不同的数据的情况。在本实施例中,待测试接口返回的数据通过实际调用条件来决定,不同的待测试接口,其实际调用条件可能不同。具体的,如图6所示,第三测试用例生成单元13具体包括:

实际调用条件分析模块131,用于分析待检测接口预设的实际调用条件。

对于待测试接口,其具备不同的实际调用条件,实际调用条件为例如请求次数、请求时间、请求者身份等,也即待测试接口根据请求次数、请求时间、请求者身份等的不同而返回不同的数据,该实际调用条件用于作为待测试接口返回的实际数据内容的参考依据。

第三测试用例生成模块132,用于根据实际调用条件,生成与该实际调用条件下的返回结果一一对应的多个第三测试用例。

(1)例如实际调用条件为请求次数,即同一待测试接口,调用其的请求次数不一样所对应的返回结果不一样,则待测试接口以请求次数作为依据,针对不同的请求次数会返回不同的结果。

如首页接口,其第一次请求和第二次请求的返回结果是不一样的,具体的,第一次请求时是全量返回数据并附带一个版本号,第二次请求时后台版本未变更就不返回数据,则根据多个请求次数下的返回结果设计多个与之一一对应的第三测试用例。

(2)例如实际调用条件为请求时间,即同一待测试接口,调用其的请求所产生的时间段不同会有不同的返回结果。

如某些待测试接口在a时间段对外开放,在其他时间段处于封锁状态,则针对不同的时间段设计与不同的时间段一一对应的第三测试用例。

(3)例如实际调用条件为请求者身份,即同一待测试接口,调用其的请求的发出者的身份不同,会产生不同的返回结果。

如某些接口支持多种身份用户的登入,而对于不同身份的用户需要展示不同的信息,则针对不同的身份,设计与身份一一对应的多个第三测试用例。

第三测试用例生成单元13丰富了待测试接口的测试场景,保证了接口的正确性。

如上述的第一测试用例、第二测试用例及第三测试用例的设计思路,考虑了待测试接口的种种业务情况,覆盖接口的代码逻辑较全面,待测试接口在测试时调用上述的测试用例,可提高测试结果的可靠性。

本发明提供的接口自动化测试用例生成装置,一方面考虑待测试接口的有效入参在异常业务场景下待测试接口的功能执行情况,另一方面考虑接口的有效出参,同时,还考虑接口的实际调用条件,根据上述的思路设计第一测试用例、第二测试用例及第三测试用例,以供待测试接口在进行测试时调用,由于上述的第一测试用例、第二测试用例及第三测试用例考量待测试接口功能、场景较全面,保证了对待测试接口的测试更加的全面,进而保证该待测试接口在后续的使用过程中更加稳定。

本发明所述装置10集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统、装置或终端装置权利要求中陈述的多个单元、模块或装置也可以由同一个单元、模块或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

以上实施方式仅用以说明本发明的技术方案而非限制,尽管参照以上较佳实施方式对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换都不应脱离本发明技术方案的精神和范围。

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