一种接口测试方法、装置、计算机设备及存储介质与流程

文档序号:21318313发布日期:2020-06-30 20:48阅读:150来源:国知局
一种接口测试方法、装置、计算机设备及存储介质与流程

本公开涉及计算机技术领域,具体而言,涉及一种接口测试方法、装置、计算机设备及存储介质。



背景技术:

随着计算机技术的飞速发展,越来越多的业务(如金融服务、社交服务和网络购物等)通过计算机程序进行实现。其中,各种业务系统之间的数据交互、业务系统与用户之间的交互均是通过调用预先定义的接口来实现。为了确保各种接口能够满足交互需求,需要在接口开发完成后对其进行测试。

通常,在需要对接口进行测试之前,测试人员需要基于接口对应的各个接口参数中的任意一个或任意组合编写大量的接口测试用例,还需要将编写的接口测试用例进行人工输入操作,费时费力。特别是在进行回归测试时,每一次计算机程序的均需要执行上述一系列操作,导致回归测试的效率极低。



技术实现要素:

本公开实施例至少提供一种接口测试方法、装置、计算机设备及存储介质,通过测试用例和测试结果的自动生成和存储,实现了对测试接口自动的进行回归测试,省时省力。

第一方面,本公开实施例提供了一种接口测试方法,所述方法包括:

获取待测试的测试接口的接口参数类型;

基于所述测试接口的接口参数类型,生成所述测试接口对应的多条测试用例,并基于所述多条测试用例向所述测试接口发出测试请求,得到所述测试请求对应的测试结果;

将所述测试接口对应的多条测试用例及测试结果进行存储,以便基于存储的多条测试用例及测试结果对所述测试接口进行回归测试。

在一种实施方式中,所述基于所述测试接口的接口参数类型,生成所述测试接口对应的多条测试用例,包括:

基于所述测试接口的接口参数类型,确定与该接口参数类型对应的候选接口参数值范围;

从所述候选接口参数值范围中,确定所述测试接口的多个测试用例参数值,并生成每条包含所述多个测试用例参数值中的一个测试用例参数值的测试用例。

在一种实施方式中,若所述接口参数类型为整数类型、浮点类型或字符类型,所述多个测试用例参数值中包括以下至少一种:

属于所述候选接口参数值范围内的第一参数值;

不属于所述候选接口参数值范围的第二参数值;

所述候选接口参数值范围对应的两个边界参数值。

在一种实施方式中,若多个测试用例参数值中包括所述第一参数值,所述基于所述多条测试用例向所述测试接口发出测试请求,得到所述测试请求对应的测试结果,包括:

基于携带有所述第一参数值的测试用例向所述测试接口发出测试请求,得到实际的测试结果;

所述将所述测试接口对应的多条测试用例及测试结果进行存储,包括:

若所述实际的测试结果与理论测试结果一致,将携带有所述第一参数值的测试用例及测试结果进行存储。

在一种实施方式中,若多个测试用例参数值中包括所述第二参数值,所述基于所述多条测试用例向所述测试接口发出测试请求,得到所述测试请求对应的测试结果,包括:

基于携带有所述第二参数值的测试用例向所述测试接口发出测试请求,得到实际的测试结果;

所述将所述测试接口对应的多条测试用例及测试结果进行存储,包括:

若所述实际的测试结果中包含错误提示信息,将携带有所述第二参数值的测试用例及测试结果进行存储。

在一种实施方式中,若多个测试用例参数值中包括所述边界参数值,所述基于所述多条测试用例向所述测试接口发出测试请求,得到所述测试请求对应的测试结果,包括:

基于携带有所述边界参数值的测试用例向所述测试接口发出测试请求,得到实际的测试结果;

所述将所述测试接口对应的多条测试用例及测试结果进行存储,包括:

若所述实际的测试结果中包含正确提示信息,将携带有所述边界参数值的测试用例及测试结果进行存储。

在一种实施方式中,若所述接口参数类型为布尔类型,所述多个测试用例参数值中包括所述候选接口参数值范围对应的两个布尔参数值。

在一种实施方式中,所述基于所述多条测试用例向所述测试接口发出测试请求,得到所述测试请求对应的测试结果,包括:

基于携带有所述布尔参数值的测试用例向所述测试接口发出测试请求,得到实际的测试结果;

所述将所述测试接口对应的多条测试用例及测试结果进行存储,包括:

若所述实际的测试结果与理论测试结果一致,将携带有所述布尔参数值的测试用例及测试结果进行存储。

在一种实施方式中,所述从所述候选接口参数值范围中,确定所述测试接口的多个测试用例参数值,包括:

若所述测试接口的接口参数为多个,从该测试接口的多个接口参数中每个接口参数的候选接口参数值范围中,确定该测试接口的多个接口参数中每个接口参数的多个测试用例参数值;

基于该测试接口的多个接口参数中每个接口参数的多个测试用例参数值,确定该测试接口对应的多组测试用例参数值;其中,该测试接口的多个接口参数中的任意两个接口参数的各种测试用例参数值组合至少被一组测试用例参数值覆盖;每种测试用例参数值组合由所述任意两个接口参数中一个接口参数的一个测试用例参数值以及另一个接口参数的一个测试用例参数值组合而成。

在一种实施方式中,所述基于存储的多条测试用例及测试结果对所述测试接口进行回归测试,包括:

在所述测试接口达到预设测试触发条件时,读取存储的所述测试接口对应的多条测试用例及测试结果;

基于读取的多条测试用例向所述测试接口发出测试请求,得到所述测试请求对应的测试结果;

若所述测试结果与读取的多条测试用例中的每条测试用例对应的测试结果一致,则测试成功;

若所述测试结果与读取的多条测试用例中的任一条测试用例对应的测试结果不一致,则测试失败,生成测试失败提醒信息并发送至开发端。

第二方面,本公开还提供了一种接口测试装置,所述装置包括:

获取模块,用于获取待测试的测试接口的接口参数类型;

生成模块,用于基于所述测试接口的接口参数类型,生成所述测试接口对应的多条测试用例,并基于所述多条测试用例向所述测试接口发出测试请求,得到所述测试请求对应的测试结果;

测试模块,用于将所述测试接口对应的多条测试用例及测试结果进行存储,以便基于存储的多条测试用例及测试结果对所述测试接口进行回归测试。

第三方面,本公开还提供了一种计算机设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储介质之间通过总线通信,所述机器可读指令被所述处理器执行时执行如第一方面及其各种实施方式任一所述的接口测试方法的步骤。

第四方面,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如第一方面及其各种实施方式任一所述的接口测试方法的步骤。

采用上述接口测试方案,其在获取到待测试的测试接口的接口参数类型之后,可以自动生成测试接口对应的多条测试用例,并可以基于多条测试用例向测试接口发出测试请求,得到测试请求对应的测试结果。之后,将测试接口对应的多条测试用例及测试结果进行存储。这样,一旦需要对测试接口进行回归测试,即可通过读取存储的多条测试用例及测试结果来自动完成,避免了人工方式所存在的测试效率较低的问题,省时省力。

为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本公开实施例一所提供的一种接口测试方法的流程图;

图2示出了本公开实施例一所提供的接口测试方法中,测试用例参数值生成具体方法的流程图;

图3示出了本公开实施例一所提供的接口测试方法中,测试用例执行具体方法的流程图;

图4示出了本公开实施例一所提供的接口测试方法中,回测测试具体方法的流程图;

图5示出了本公开实施例二所提供的一种接口测试装置的示意图;

图6示出了本公开实施例三所提供的一种计算机设备的示意图。

具体实施方式

为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。

经研究发现,开发人员在利用计算机程序实现一套业务系统之后,为了便于实现该业务系统与其它业务系统或用户等的交互,通常会设置一些预先定义的接口来满足交互需求。测试人员则可以通过对接口的测试来验证当前接口是否能够满足交互需求。

通常,在需要对接口进行测试之前,测试人员需要基于接口对应的各个接口参数中的任意一个或任意组合编写大量的接口测试用例,还需要将编写的接口测试用例进行人工输入操作,费时费力。

考虑到随着业务系统的改进,开发人员会基于业务需求对计算机程序进行修改。这时,即需要测试人员重新按照上述操作过程进行接口测试以确认修改没有引入新的错误或导致其他程序代码产生错误,也即,需要进行回归测试。特别是在进行多次回归测试时,每一次计算机程序的均需要执行上述一系列操作,导致回归测试的效率极低。

基于上述研究,本公开提供了至少一种接口测试方案,其可以根据获取的测试接口的接口参数类型,自动生成和存储测试用例和测试结果,通过读取存储的多条测试用例及测试结果来自动完成回归测试,避免了人工方式所存在的测试效率较低的问题,省时省力。

针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

为便于对本实施例进行理解,首先对本公开实施例所公开的一种接口测试方法进行详细介绍,本公开实施例所提供的接口测试方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(userequipment,ue)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字处理(personaldigitalassistant,pda)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该接口测试方法可以通过处理器调用存储介质中存储的计算机可读指令的方式来实现。

下面以执行主体为服务器为例对本公开实施例提供的接口测试方法加以说明。

实施例一

参见图1所示,为本公开实施例一提供的接口测试方法的流程图,方法包括步骤s101~s103,其中:

s101、获取待测试的测试接口的接口参数类型。

s102、基于测试接口的接口参数类型,生成测试接口对应的多条测试用例,并基于多条测试用例向测试接口发出测试请求,得到测试请求对应的测试结果;

s103、将测试接口对应的多条测试用例及测试结果进行存储,以便基于存储的多条测试用例及测试结果对测试接口进行回归测试。

这里,本公开实施例提供的接口测试方法能够基于存储的多条测试用例及测试结果对测试接口进行自动的回归测试。可见,上述自动的回归测试的实现依赖于测试用例及测试结果的存储,本公开实施例中,可以在自动生成测试用例和测试结果之后进行存储。

测试用例(testcase),是针对测试接口进行测试任务的测试文件,通过执行测试用例可以实现对接口的相关测试。传统的一种测试用例生成方案是在确定测试接口的定义信息之后,通过分析其接口参数,先将参数的所有可能取值离散化,再进行排列组合后编写测试用例,该生成方案在实际业务场景中,由于接口参数与及参数可选值的增多,不仅会导致人工输入参数比较耗时,完全测试接口参数的所有排列组合很容易导致测试用例爆炸。

为了缓解这一问题,在大多数情况下,可以通过边界值法、等价类划分法等方式来编写核心用例进行测试,然而该生成方案比较依赖于测试人员的个人经验,在经验不足时,很可能导致得不到理想的测试结果。

正是为了解决上述各种问题,本公开实施例才提供了一种基于接口参数类型自动生成测试用例的方案,该方案可以直接从测试接口的定义信息中获取其接口参数类型,直接利用该接口参数类型生成多条测试用例,无需对接口参数进行分析,省时省力,且能够在保证错误检出率的前提下降低测试用例规模。

本公开实施例中,在针对测试接口自动生成多条测试用例之后,可以基通过测试用例对待测试的测试接口进行自动化测试,得到测试结构,也即,可以基于确定的多条测试用例向测试接口发出测试请求,得到测试请求对应的测试结果。

值得说明的是,本公开实施例中,可以采用批量执行测试用例的方式进行自动化测试,以进一步提升测试效率。

在执行自动化测试之后,为了便于实现后续的回归测试,本公开实施例可以在首次执行批量的测试用例时,将执行自动化测试的被执行体(即多条测试用例)以及执行结果(即测试结果)进行存储。这里,可以将上述测试用例和测试结果存储至预设的数据库中,以便后续回归测试时按需读取。

本公开实施例中,可以在确定测试接口符合预设测试触发条件(例如确定代码更新)之后,读取存储的多条测试用例和测试结果,并利用读取的多条测试用例执行接口测试,之后,将执行后的测试结果与读取的测试结果进行比对,并通过对比结果确定最终的测试结果,可见,本公开实施例提供的接口测试方法通过测试用例和测试结果的自动生成和存储,能够实现自动的回归测试,测试效率较高。

值得说明的是,这里的接口测试可以为功能测试,通过接口执行结果和预先存储的测试结果之间的比较结果可以确定待回归测试的测试接口是否满足接口功能需求,以避免代码修改所可能存在的接口功能异常问题。本公开实施例中的测试接口可以是一个,也可以是多个。

考虑到测试用例的自动生成方法是本公开实施例实现自动的回归测试的关键步骤,如图2所示,可以通过如下方法步骤来实现:

s201、基于测试接口的接口参数类型,确定与该接口参数类型对应的候选接口参数值范围;

s202、从候选接口参数值范围中,确定测试接口的多个测试用例参数值,并生成每条包含多个测试用例参数值中的一个测试用例参数值的测试用例。

这里,本公开实施例可以首先基于测试接口的接口参数类型,确定与该接口参数类型对应的候选接口参数值范围,然后基于该候选接口参数值范围,确定测试接口的多个测试用例参数值。其中,一个测试用例参数值可以对应一条测试用例。

本公开实施例中的测试接口可以是一个,也可以是多个。针对每个测试接口而言,该测试接口可以具有一个或多个接口参数,每个接口参数均可以对应有接口参数类型,如整数类型、浮点类型、字符类型、布尔类型等。然而,不管是针对同一测试接口的不同接口参数还是不同测试接口的同一接口参数,在测试接口的定义信息中均可以确定其接口参数类型,同一接口参数类型所对应的候选接口参数值范围相同,不同的接口参数类型所对应的候选接口参数值范围也不同。

考虑到本公开实施例所涉及到的接口参数类型可以有多个,而不同的接口参数类型所对应的测试用例参数值的取值也不同,这样,将使得最终的测试结果也不同。接下来可以分别通过如下几个方面进行具体说明。

第一方面,若接口参数类型为整数类型、浮点类型或字符类型,此时的多个测试用例参数值中可以仅包括属于候选接口参数值范围内的第一参数值(这里的第一参数值的数量与测试用例参数值的数量相同)、还可以仅包括不属于候选接口参数值范围的第二参数值(这里的第二参数值与测试用例参数值的数量相同)、还可以仅包括候选接口参数值范围对应的两个边界参数值、还可以包括上述第一参数值、第二参数值、以及两个边界参数值的任意两种或三种的组合。

其一,若多个测试用例参数值中包括第一参数值,这时可以基于如下步骤确定最终的存储内容。

步骤一、基于携带有第一参数值的测试用例向测试接口发出测试请求,得到实际的测试结果;

步骤二、若实际的测试结果与理论测试结果一致,将携带有第一参数值的测试用例及测试结果进行存储。

这里,第一参数值作为属于候选接口参数值范围内的参数值,可以确定基于携带有第一参数值的测试用例向测试接口发出测试请求,得到实际的测试结果,将该实际的测试结果与理论测试结果进行对比,若一致,即可以将第一参数值确定为测试接口对应的一条测试用例所包括的测试用例参数值,若不一致,则说明当前的测试结果存在问题,可以在纠正后重新执行,直至在对比一致时进行存储,也即,回归测试所参照的测试用例和测试结果可以是经过人工校准后的测试用例和测试结果。其中,上述理论测试结果用于指示按照测试接口的预设接口定义信息,在基于携带有第一参数值的测试用例向测试接口发出测试请求之后,理论上应该得到的测试结果。

在确定测试接口的接口参数类型为整数类型时,这里的候选接口参数值范围可以指向一个整数范围,例如-32768~+32767,这里的第一参数值可以是-32768~+32767内的任意一个或多个整数,例如412、1283、55846等。同理,在确定测试接口的接口参数类型为浮点类型时,这里的候选接口参数范围可以指向一个浮点数范围,有关第一参数值的取值可以参照上述整数类型的确定方式,在此不再赘述。

在确定测试接口的接口参数类型为字符类型时,这里的候选接口参数值范围可以指向一个字符范围,例如2个字符~10个字符,这里的第一参数值可以是2个字符~10个字符内的任意个字符,例如abcde。

其二,若多个测试用例参数值中包括第二参数值,这时可以基于如下步骤确定最终的存储内容。

步骤一、基于携带有第二参数值的测试用例向测试接口发出测试请求,得到实际的测试结果;

步骤二、若实际的测试结果中包含错误提示信息,将携带有第二参数值的测试用例及测试结果进行存储。

这里,第二参数值作为不属于候选接口参数值范围内的参数值,可以确定基于携带有第二参数值的测试用例向测试接口发出测试请求,得到实际的测试结果,若确定实际的测试结果包含错误提示信息,则可以将携带有第二参数值的测试用例及测试结果进行存储。其中,上述错误提示信息用于指示按照预设接口定义信息,在基于携带有第二参数值的测试用例向测试接口发出测试请求之后,理论上应该返回错误指示。

在确定测试接口的接口参数类型为整数类型时,同理,这里的候选接口参数值范围可以指向一个整数范围,这里仍以-32768~+32767作为候选接口参数值范围为例,若选取的第二参数值为4000000,也即,所选第二参数值溢出上述整数范围,则将在基于上述第二参数值进行接口测试时,导致接口反馈错误提示信息。同理,在确定测试接口的接口参数类型为浮点类型时,这里的候选接口参数范围可以指向一个浮点数范围,有关第二参数值的取值可以参照上述整数类型的确定方式,在此不再赘述。

确定测试接口的接口参数类型为字符类型时,这里的候选接口参数值范围可以指向一个字符范围,这里仍以2个字符~10个字符作为候选接口参数值范围为例,若选取的第二参数值为abc46q14732(对应11个字符),这时也将导致接口反馈错误提示信息。

其三,若多个测试用例参数值中包括边界参数值,这时可以基于如下步骤确定最终的存储内容。

步骤一、基于携带有边界参数值的测试用例向测试接口发出测试请求,得到实际的测试结果;

步骤二、若实际的测试结果中包含正确提示信息,将携带有边界参数值的测试用例及测试结果进行存储。

这里,边界参数值作为候选接口参数值范围的特殊参数值,可以单独进行测试验证。也即,可以携带有边界参数值的测试用例向测试接口发出测试请求,得到实际的测试结果,如果实际的测试结果中包含有正确提示信息,则可以将携带有边界参数值的测试用例及测试结果进行存储。其中,上述正确提示信息用于指示按照预设接口定义信息,在基于携带有边界参数值的测试用例向测试接口发出测试请求之后,理论上应该返回正确提示。

在确定测试接口的接口参数类型为整数类型时,同理,这里的候选接口参数值范围可以指向一个整数范围,这里仍以-32768~+32767作为候选接口参数值范围为例,该候选接口参数值范围的最小边界参数值为-32768,最大边界参数值为+32768。若选取了-32768的最小边界参数值进行接口测试时,其接口反馈正确提示信息。同理,在确定测试接口的接口参数类型为浮点类型时,这里的候选接口参数范围可以指向一个浮点数范围,有关边界参数值的取值可以参照上述整数类型的确定方式,在此不再赘述。

在确定测试接口的接口参数类型为字符类型时,这里的候选接口参数值范围可以指向一个字符范围,这里仍以2个字符~10个字符作为候选接口参数值范围为例,该候选接口参数值范围的最小边界参数值为2个字符,最大边界参数值为10个字符。若选取了2个字符的最小边界参数值(如ab)进行接口测试时,其接口反馈正确提示信息。

第二方面,若接口参数类型为布尔类型,此时的多个测试用例参数值中可以包括候选接口参数值范围对应的两个布尔参数值,这时可以基于如下步骤确定最终的存储内容。

步骤一、基于携带有布尔参数值的测试用例向测试接口发出测试请求,得到实际的测试结果;

步骤二、若实际的测试结果与理论测试结果一致,将携带有布尔参数值的测试用例及测试结果进行存储。

这里,考虑到布尔类型的接口参数可以具备true/false这两个布尔参数值,这样,在基于携带有布尔参数值的测试用例向测试接口发出测试请求,得到实际的测试结果之后,可以基于该实际的测试结果与理论测试结果的对比结果,确定携带有布尔参数值的测试用例及测试结果的存储。其中,上述理论测试结果可以是按照预设接口定义信息执行基于布尔参数值的测试请求后所得到的测试结果。

若对比一致,即可以将布尔参数值确定为测试接口对应的一条测试用例所包括的测试用例参数值,若不一致,则说明当前的测试结果存在问题,可以在纠正后重新执行,直至在对比一致时进行存储。

例如,一个布尔类型的接口参数在取值为true时,按照接口定义信息得到的理论测试结果应该0,然而其实际的测试结果对应11111111,则说明当前接口存在异常,需要进行人工校准后再次进行测试,以将对比一致的测试用例参数值和测试结果进行存储,从而确保回归测试所参照的测试用例和测试结果可以是经过人工校准后的测试用例和测试结果,进一步确保回归测试的准确性。

考虑到本公开实施例中测试接口的接口参数可以为多个,针对包含多个接口参数的测试接口而言,其对应的测试用例规模相对较大。为了进一步降低测试用例规模,本公开实施例可以采用参数组合测试的方式进行接口测试。如图3所示,本公开实施例提供了一种多组测试用例参数值的确定方法,该方法具体包括如下步骤:

s301、若测试接口的接口参数为多个,从该测试接口的多个接口参数中每个接口参数的候选接口参数值范围中,确定该测试接口的多个接口参数中每个接口参数的多个测试用例参数值;

s302、基于该测试接口的多个接口参数中每个接口参数的多个测试用例参数值,确定该测试接口对应的多组测试用例参数值;其中,该测试接口的多个接口参数中的任意两个接口参数的各种测试用例参数值组合至少被一组测试用例参数值覆盖;每种测试用例参数值组合由任意两个接口参数中一个接口参数的一个测试用例参数值以及另一个接口参数的一个测试用例参数值组合而成。

这里,基于测试接口的多个接口参数中每个接口参数的候选接口参数值范围,确定该测试接口的多个接口参数中每个接口参数的多个测试用例参数值;基于该测试接口的多个接口参数中每个接口参数的多个测试用例参数值,确定该测试接口对应的多组测试用例参数值,本公开实施例中,在执行参数组合测试的过程中,需要确保任意两个接口参数的各种测试用例参数值组合被一组测试用例参数值覆盖。

例如,针对包括三个接口参数(即语言、字体、展示模式)的一个测试接口而言,其语言这一接口参数对应的取值有英语、法语和西班牙语,其字体这一接口参数对应的取值有最小字体和标准字体,其展示模式对应的取值有仅文本展示模式和最小边长展示模式。

这时,针对语言和展示模式这两个接口参数而言,其所有测试参数值组合中的每个测试参数值组合需要被一组测试用例参数值,也即,需要确保有一组测试用例参数值是包括有(英语、文本展示模式)这一测试参数值组合的,还需要确保有一组测试用例参数值是包括有(英语、最小边长展示模式)这一测试参数值组合的,同理,还需要确保分别有包括(法语、文本展示模式)、(法语、最小边长展示模式)、(西班牙语、文本展示模式)、(西班牙语、最小边长展示模式)等测试参数值组合的一组测试用例参数值,而在确定一组测试用例参数值时,以(英语、文本展示模式)这一测试参数值组合这一组合为例,其字体的取值可以为空,可以是上述字体取值中的一种,同理,针对字体和展示模式这两个接口参数、以及语言和字体这两个接口参数而言,也可以按照上述方法确定,在确保任意两个接口参数的各种测试用例参数值组合被一组测试用例参数值覆盖之后,即可以得到多组测试用例参数值。

在得到多组测试用例参数值之后,可以基于多组测试用例参数值进行组合测试,也即,利用多组测试用例参数值向测试接口发出测试请求,得到测试请求对应的测试结果,相对传统的全部组合测试方式,其进一步降低了测试用例的数量,且由于上述多组测试用例参数值可以覆盖任意两个接口参数的所有取值组合,这在降低测试成本的前提下,又覆盖了较多的测试用例,兼顾了覆盖力度和测试成本。

同理,将上述利用多组测试用例参数值所对应的多个测试用例向测试接口发出测试请求,得到测试请求对应的测试结果以及多个测试用例进行存储也可以进行接口的回归测试。

本公开实施例提供的接口测试方法可以基于存储的多条测试用例及测试结果对测试接口进行回归测试,如图4所示,上述回归测试的方法具体包括如下步骤:

s401、在测试接口达到预设测试触发条件时,读取存储的测试接口对应的多条测试用例及测试结果;

s402、基于读取的多条测试用例向测试接口发出测试请求,得到测试请求对应的测试结果;

s403、若测试结果与读取的多条测试用例中的每条测试用例对应的测试结果一致,则测试成功;

s404、若测试结果与读取的多条测试用例中的任一条测试用例对应的测试结果不一致,则测试失败,生成测试失败提醒信息并发送至开发端。

这里,可以在测试接口达到预设测试触发条件时,读取存储的测试接口对应的多条测试用例及测试结果,而后,利用读取的多条测试用例分别向测试接口发出测试请求,得到测试请求对应的测试结果,这时,可以将测试结果与读取的多条测试用例中的各条测试用例对应的测试结果进行比对,若比对一致,说明所有条的测试用例均验证通过,即说明针对测试接口的测试成功,若对比不一致,则说明存在至少一条测试用例验证不通过的情况,即说明针对测试接口的测试失败,可以生成测试失败提醒信息,并将该测试失败提醒信息发送至开发端,以使开发人员根据测试失败提醒信息查找测试接口测试失败的原因。

本公开实施例中的预设测试触发条件可以是达到预设触发周期,例如每两天进行一次回归测试,还可以是在接收到开发端发送的测试触发指令,该测试触发指令可以是开发人员进行程序修改后自动生成并向服务器推送的,也即,每接收到开发端发送的测试触发指令即进行一次回归测试,还可以是其它触发条件,本公开实施例对此不做具体的限制。

其中,上述回归测试时自动执行的,也即达到上述触发条件之后,服务器可以自动循环的读取存储的各条测试用例用于测试,整个过程无需人工参与,省时省力。

本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。

基于同一发明构思,本公开实施例中还提供了与接口测试方法对应的接口测试装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述接口测试方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。

实施例二

参照图5所示,为本公开实施例二提供的一种接口测试装置的示意图,装置包括:

获取模块501,用于获取待测试的测试接口的接口参数类型;

生成模块502,用于基于测试接口的接口参数类型,生成测试接口对应的多条测试用例,并基于多条测试用例向测试接口发出测试请求,得到测试请求对应的测试结果;

测试模块503,用于将测试接口对应的多条测试用例及测试结果进行存储,以便基于存储的多条测试用例及测试结果对测试接口进行回归测试。

本公开实施例提供的接口测试装置,通过测试用例和测试结果的自动生成和存储,实现了对测试接口进行自动的回归测试,省时省力。

在一种实施方式中,生成模块502,用于按照如下步骤生成测试接口对应的多条测试用例:

基于测试接口的接口参数类型,确定与该接口参数类型对应的候选接口参数值范围;

从候选接口参数值范围中,确定测试接口的多个测试用例参数值,并生成每条包含多个测试用例参数值中的一个测试用例参数值的测试用例。

在一种实施方式中,若接口参数类型为整数类型、浮点类型或字符类型,多个测试用例参数值中包括以下至少一种:

属于候选接口参数值范围内的第一参数值;

不属于候选接口参数值范围的第二参数值;

候选接口参数值范围对应的两个边界参数值。

在一种实施方式中,若多个测试用例参数值中包括第一参数值,生成模块502,用于按照如下步骤得到测试请求对应的测试结果:

基于携带有第一参数值的测试用例向测试接口发出测试请求,得到实际的测试结果;

测试模块503,用于按照如下步骤将测试接口对应的多条测试用例及测试结果进行存储:

若实际的测试结果与理论测试结果一致,将携带有第一参数值的测试用例及测试结果进行存储。

在一种实施方式中,若多个测试用例参数值中包括第二参数值,生成模块502,用于按照如下步骤得到测试请求对应的测试结果:

基于携带有第二参数值的测试用例向测试接口发出测试请求,得到实际的测试结果;

测试模块503,用于按照如下步骤将测试接口对应的多条测试用例及测试结果进行存储:

若实际的测试结果中包含错误提示信息,将携带有第二参数值的测试用例及测试结果进行存储。

在一种实施方式中,若多个测试用例参数值中包括边界参数值,生成模块502,用于按照如下步骤得到测试请求对应的测试结果:

基于携带有边界参数值的测试用例向测试接口发出测试请求,得到实际的测试结果;

测试模块503,用于按照如下步骤将测试接口对应的多条测试用例及测试结果进行存储:

若实际的测试结果中包含正确提示信息,将携带有边界参数值的测试用例及测试结果进行存储。

在一种实施方式中,若接口参数类型为布尔类型,多个测试用例参数值中包括候选接口参数值范围对应的两个布尔参数值。

在一种实施方式中,生成模块502,用于按照如下步骤得到测试请求对应的测试结果:

基于携带有布尔参数值的测试用例向测试接口发出测试请求,得到实际的测试结果;

测试模块503,用于按照如下步骤将测试接口对应的多条测试用例及测试结果进行存储:

若实际的测试结果与理论测试结果一致,将携带有布尔参数值的测试用例及测试结果进行存储。

在一种实施方式中,生成模块502,用于按照如下步骤确定测试接口的多个测试用例参数值:

若测试接口的接口参数为多个,从该测试接口的多个接口参数中每个接口参数的候选接口参数值范围中,确定该测试接口的多个接口参数中每个接口参数的多个测试用例参数值;

基于该测试接口的多个接口参数中每个接口参数的多个测试用例参数值,确定该测试接口对应的多组测试用例参数值;其中,该测试接口的多个接口参数中的任意两个接口参数的各种测试用例参数值组合至少被一组测试用例参数值覆盖;每种测试用例参数值组合由任意两个接口参数中一个接口参数的一个测试用例参数值以及另一个接口参数的一个测试用例参数值组合而成。

在一种实施方式中,测试模块503,用于按照如下步骤对测试接口进行回归测试:

在测试接口达到预设测试触发条件时,读取存储的测试接口对应的多条测试用例及测试结果;

基于读取的多条测试用例向测试接口发出测试请求,得到测试请求对应的测试结果;

若测试结果与读取的多条测试用例中的每条测试用例对应的测试结果一致,则测试成功;

若测试结果与读取的多条测试用例中的任一条测试用例对应的测试结果不一致,则测试失败,生成测试失败提醒信息并发送至开发端。

实施例三

本公开实施例三所提供了一种计算机设备,如图6所示,该计算机设备包括:处理器601、存储介质602和总线603,存储介质602存储有处理器601可执行的机器可读指令(比如图5中的接口测试装置中获取模块501、生成模块502、以及测试模块503对应的执行指令等),当计算机设备运行时,处理器601与存储介质602之间通过总线603通信,机器可读指令被处理器601执行时执行如下处理:

获取待测试的测试接口的接口参数类型;

基于测试接口的接口参数类型,生成测试接口对应的多条测试用例,并基于多条测试用例向测试接口发出测试请求,得到测试请求对应的测试结果;

将测试接口对应的多条测试用例及测试结果进行存储,以便基于存储的多条测试用例及测试结果对测试接口进行回归测试。

在一种实施方式中,上述处理器601执行的指令中,基于测试接口的接口参数类型,生成测试接口对应的多条测试用例,包括:

基于测试接口的接口参数类型,确定与该接口参数类型对应的候选接口参数值范围;

基于候选接口参数值范围,生成测试接口的多个测试用例参数值;其中,每个测试用例参数值对应一条测试用例。

在一种实施方式中,若接口参数类型为整数类型、浮点类型或字符类型,多个测试用例参数值中包括以下至少一种:

属于候选接口参数值范围内的第一参数值;

不属于候选接口参数值范围的第二参数值;

候选接口参数值范围对应的两个边界参数值。

在一种实施方式中,若多个测试用例参数值中包括第一参数值,上述处理器601执行的指令中,基于多条测试用例向测试接口发出测试请求,得到测试请求对应的测试结果,包括:

基于携带有第一参数值的测试用例向测试接口发出测试请求,得到实际的测试结果;

上述处理器601执行的指令中,将测试接口对应的多条测试用例及测试结果进行存储,包括:

若实际的测试结果与理论测试结果一致,将携带有第一参数值的测试用例及测试结果进行存储。

在一种实施方式中,若多个测试用例参数值中包括第二参数值,上述处理器601执行的指令中,基于多条测试用例向测试接口发出测试请求,得到测试请求对应的测试结果,包括:

基于携带有第二参数值的测试用例向测试接口发出测试请求,得到实际的测试结果;

上述处理器601执行的指令中,将测试接口对应的多条测试用例及测试结果进行存储,包括:

若实际的测试结果中包含错误提示信息,将携带有第二参数值的测试用例及测试结果进行存储。

在一种实施方式中,若多个测试用例参数值中包括边界参数值,上述处理器601执行的指令中,基于多条测试用例向测试接口发出测试请求,得到测试请求对应的测试结果,包括:

基于携带有边界参数值的测试用例向测试接口发出测试请求,得到实际的测试结果;

上述处理器601执行的指令中,将测试接口对应的多条测试用例及测试结果进行存储,包括:

若实际的测试结果中包含正确提示信息,将携带有边界参数值的测试用例及测试结果进行存储。

在一种实施方式中,若接口参数类型为布尔类型,多个测试用例参数值中包括候选接口参数值范围对应的两个布尔参数值。

在一种实施方式中,上述处理器601执行的指令中,基于多条测试用例向测试接口发出测试请求,得到测试请求对应的测试结果,包括:

基于携带有布尔参数值的测试用例向测试接口发出测试请求,得到实际的测试结果;

上述处理器601执行的指令中,将测试接口对应的多条测试用例及测试结果进行存储,包括:

若实际的测试结果与理论测试结果一致,将携带有布尔参数值的测试用例及测试结果进行存储。

在一种实施方式中,上述处理器601执行的指令中,从候选接口参数值范围中,确定测试接口的多个测试用例参数值,包括:

若测试接口的接口参数为多个,从该测试接口的多个接口参数中每个接口参数的候选接口参数值范围中,确定该测试接口的多个接口参数中每个接口参数的多个测试用例参数值;

基于该测试接口的多个接口参数中每个接口参数的多个测试用例参数值,确定该测试接口对应的多组测试用例参数值;其中,该测试接口的多个接口参数中的任意两个接口参数的各种测试用例参数值组合至少被一组测试用例参数值覆盖;每种测试用例参数值组合由任意两个接口参数中一个接口参数的一个测试用例参数值以及另一个接口参数的一个测试用例参数值组合而成。

在一种实施方式中,上述处理器601执行的指令中,基于存储的多条测试用例及测试结果对测试接口进行回归测试,包括:

在测试接口达到预设测试触发条件时,读取存储的测试接口对应的多条测试用例及测试结果;

基于读取的多条测试用例向测试接口发出测试请求,得到测试请求对应的测试结果;

若测试结果与读取的多条测试用例中的每条测试用例对应的测试结果一致,则测试成功;

若测试结果与读取的多条测试用例中的任一条测试用例对应的测试结果不一致,则测试失败,生成测试失败提醒信息并发送至开发端。

本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器601运行时执行上述方法实施例中所述的接口测试方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。

本公开实施例所提供的接口测试方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的接口测试方法的步骤,具体可参见上述方法实施例,在此不再赘述。

本公开实施例还提供一种计算机程序,该计算机程序被处理器执行时实现前述实施例的任意一种方法。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(softwaredevelopmentkit,sdk)等等。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

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