CN112162924A - 接口自动化测试方法、装置、计算机设备及存储介质 - Google Patents

接口自动化测试方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN112162924A
CN112162924A CN202011032130.5A CN202011032130A CN112162924A CN 112162924 A CN112162924 A CN 112162924A CN 202011032130 A CN202011032130 A CN 202011032130A CN 112162924 A CN112162924 A CN 112162924A
Authority
CN
China
Prior art keywords
interface
test
dependency
information
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011032130.5A
Other languages
English (en)
Inventor
邱晓帆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Trust Co Ltd
Original Assignee
Ping An Trust Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ping An Trust Co Ltd filed Critical Ping An Trust Co Ltd
Priority to CN202011032130.5A priority Critical patent/CN112162924A/zh
Publication of CN112162924A publication Critical patent/CN112162924A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开一种接口自动化测试方法、装置、计算机设备及存储介质。该方法包括:获取接口测试请求,所述接口测试请求包括目标接口标识;基于所述目标接口标识查询接口测试信息表,获取所述目标接口标识对应的目标依赖信息;基于所述目标依赖信息,深度遍历所述接口测试信息表,确定至少两个待执行测试案例和接口执行顺序,所述待执行测试案例包括目标测试案例和所述目标测试案例所依赖的前序测试案例;依据所述接口执行顺序,依次执行至少两个所述待执行测试案例,获取接口测试结果。该方法采用接口测试信息表量化记录接口依赖关系,保证所有待执行测试案例依据其对应的接口依赖关系进行测试,保障接口测试的自动化,提高接口自动化测试效率。

Description

接口自动化测试方法、装置、计算机设备及存储介质
技术领域
本发明涉及软件测试技术领域,尤其涉及一种接口自动化测试方法、装置、计算机设备及存储介质。
背景技术
接口自动化测试是对系统提供的接口测试场景进行自动化测试,以保证接口逻辑功能正确,提高回归测试覆盖率的一种手段。现有接口自动化测试过程中,并没有考虑对接口依赖关系进行量化处理的情况,譬如接口A的运行时需要依赖接口B先运行,这种情况下,一般需人工调整接口执行顺序,以保证存在接口依赖关系的多个接口顺利运行,这种人工调整接口执行顺序方式不利于操作和维护,导致接口自动化测试效率较低;并且,无量化手段记录接口依赖关系,容易出现遗漏而导致测试运行出错;此外,随着接口数量的增多,接口依赖关系越发复杂,其维护成本越来越高。
发明内容
本发明实施例提供一种接口自动化测试方法、装置、计算机设备及存储介质,以解决人工调整存在接口依赖关系的所有接口的接口执行顺序所存在的操作和维护困难、效率低且成本高的问题。
一种接口自动化测试方法,包括:
获取接口测试请求,所述接口测试请求包括目标接口标识;
基于所述目标接口标识查询接口测试信息表,获取所述目标接口标识对应的目标依赖信息;
基于所述目标依赖信息,深度遍历所述接口测试信息表,确定至少两个待执行测试案例和接口执行顺序,所述待执行测试案例包括目标测试案例和所述目标测试案例所依赖的前序测试案例;
依据所述接口执行顺序,依次执行至少两个所述待执行测试案例,获取接口测试结果。
一种接口自动化测试装置,包括:
测试请求获取模块,用于获取接口测试请求,所述接口测试请求包括目标接口标识;
依赖信息获取模块,用于基于所述目标接口标识查询接口测试信息表,获取所述目标接口标识对应的目标依赖信息;
深度遍历处理模块,用于基于所述目标依赖信息,深度遍历所述接口测试信息表,确定至少两个待执行测试案例和接口执行顺序,所述待执行测试案例包括目标测试案例和所述目标测试案例所依赖的前序测试案例;
测试案例执行模块,用于依据所述接口执行顺序,依次执行至少两个所述待执行测试案例,获取接口测试结果。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述接口自动化测试方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述接口自动化测试方法的步骤。
上述接口自动化测试方法、装置、计算机设备及存储介质,基于所述目标接口标识查询接口测试信息表,根据量化记录在接口测试信息表的接口依赖关系,确定与目标接口标识相对应的目标依赖信息,提高目标接口对应的目标依赖信息的获取效率,有助于提高接口自动化测试的测试效率;再根据目标依赖信息深度遍历接口测试信息表,有助于提高遍历搜索效率,可快速有效地确定至少两个待执行测试案例及其对应的接口执行顺序,无需人工调整接口执行顺序,有助于提高接口自动化测试效率,避免人工调整接口执行顺序遗漏或者出错导致测试运行出错;最后,依据深度遍历接口测试信息表所确定的接口执行顺序,依次执行至少两个待执行测试案例,以获取接口测试结果,保证所有待执行测试案例依据其对应的接口依赖关系进行测试,保障接口测试的自动化,提高接口自动化测试效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中接口自动化测试方法的一应用环境示意图;
图2是本发明一实施例中接口自动化测试方法的一流程图;
图3是本发明一实施例中接口自动化测试方法的另一流程图;
图4是本发明一实施例中接口自动化测试方法的另一流程图;
图5是本发明一实施例中接口自动化测试方法的另一流程图;
图6是本发明一实施例中接口自动化测试方法的另一流程图;
图7是本发明一实施例中接口自动化测试方法的另一流程图;
图8是本发明一实施例中接口自动化测试方法中深度遍历的一示意图;
图9是本发明一实施例中接口自动化测试装置的一示意图;
图10是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的接口自动化测试方法,该接口自动化测试方法可应用如图1所示的应用环境中。具体地,该接口自动化测试方法应用在接口自动化测试系统中,该接口自动化测试系统包括如图1所示的客户端和服务器,客户端与服务器通过网络进行通信,用于采用量化手段记录接口依赖关系,利用该接口依赖关系,自动且快速确定存在接口依赖关系的目标测试案例及其前序测试案例对应的接口执行顺序,采用量化记录接口依赖关系的方式,便于操作和维护,有助于降低维护成本,提高接口自动化测试效率,避免遗漏而导致测试运行出错。其中,客户端又称为用户端,是指与服务器相对应,为客户提供本地服务的程序。客户端可安装在但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备上。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一实施例中,如图2所示,提供一种接口自动化测试方法,以该方法应用在图1中的服务器为例进行说明,包括如下步骤:
S201:获取接口测试请求,接口测试请求包括目标接口标识。
其中,接口测试请求是用于触发进行接口自动化测试的请求。目标接口标识是用于唯一识别需要进行接口自动化测试的目标接口的标识。
作为一示例,在需要对某一目标接口进行测试,确保其接口逻辑功能的正常时,可基于目标接口对应的目标接口标识触发接口测试请求,以便获取与目标接口标识对应的目标测试案例进行自动化测试。该目标测试案例是用于对目标接口进行接口自动化测试的案例,包括用于实现目标接口对应的接口逻辑功能的案例代码。
S202:基于目标接口标识查询接口测试信息表,获取目标接口标识对应的目标依赖信息。
其中,接口测试信息表是用于量化记录所有在库接口对应的接口配置信息的数据表。该在库接口是预先存储到系统数据库上,可进行接口自动化测试的接口。
一般来说,在将任一在库接口对应的接口测试案例存储到系统数据库后,需将该在库接口对应的接口配置信息存储到接口测试信息表中,以便利用该接口测试信息表实现对所有在库接口之间的接口依赖关系进行量化管理。该接口测试案例为用于对在库接口进行自动化化测试的案例,包括用于实现在库接口对应的接口逻辑功能的案例代码。该接口依赖关系是用于反映不同在库接口之间相互依赖的关系,例如,A→B→C这三个接口中,接口B依赖于接口A先运行,接口C依赖于接口B先运行,则接口A为接口B的前序接口,接口C为接口B的后序接口,可在接口测试信息表中,配置和维护每一在库接口及其前序接口之间的接口依赖关系,以实现对所有在库接口之间的接口依赖关系进行量化维护,维护操作方便且成本较低。其中,在库接口的前序接口是指需要在在库接口之前运行的接口;在库接口的后序接口是指需要在在库接口之后运行的接口。
其中,接口配置信息是与接口相关的配置信息,包括接口详情信息和接口依赖信息,该接口详情信息包括但不限于配置接口标识、配置接口名称和配置URL等与接口相关的信息。接口依赖信息是指在库接口运行时需要依赖的其他在库接口的信息,即接口依赖信息包括用于反映所有前序接口及其接口依赖关系的信息。
进一步地,接口配置信息还包括在库接口对应的接口出参信息,该接口出参信息为用于记录在接口测试信息表的接口变量字段上的信息,该接口出参信息包括出参接口变量和对应的出参参数路径,该出参参数路径为出参接口变量对应的出参变量值在系统内存中的存储路径,该出参变量值动态变化,可根据出参参数路径动态获取其出参变量值。
可以理解地,采用接口测试信息表量化记录所有在库接口对应的接口配置信息,以便于维护接口依赖关系,可实现支持复杂接口依赖关系或者数据量较大的接口自动化测试的维护和执行。
作为一示例,步骤S202具体包括如下步骤:
(1)服务器先基于目标接口标识查询接口测试信息表,判断接口测试信息表中是否存在与目标接口标识相对应的配置接口标识。
(2)若接口测试信息表中存在与目标接口标识相对应的配置接口标识,则将与目标接口标识相对应的配置接口标识对应的在库接口确定为目标接口,在接口测试信息表中目标接口对应的依赖关系字段对应的信息不为空时,将接口测试信息表中目标接口对应的依赖关系字段对应的信息确定为目标依赖信息。该目标依赖信息是用于记录目标接口对应的所有前序接口及其接口依赖关系的信息。可以理解地,可通过接口测试信息表快速有效地确定目标接口对应的目标依赖信息,无需人工调整接口执行顺序,有助于提高操作和维护效率、提高接口自动化测试效率,避免遗漏而导致测试运行出错。
可以理解地,在接口测试信息表中目标接口对应的依赖关系字段对应的信息为空时,认定目标接口标识对应的目标接口无需依赖于其他在库接口先运行,直接将目标接口对应的接口测试案例确定为待执行测试案例,执行该待执行测试案例,获取接口测试结果。
(3)若接口测试信息表中不存在与目标接口标识相对应的配置接口标识,则认定目标接口不为在库接口,可跳转到接口配置界面进行接口依赖关系配置,或者直接将目标接口对应的接口测试案例确定为待执行测试案例,执行该待执行测试案例,获取接口测试结果。
S203:基于目标依赖信息,深度遍历接口测试信息表,确定至少两个待执行测试案例和接口执行顺序,待执行测试案例包括目标测试案例和目标测试案例所依赖的前序测试案例。
其中,待执行测试案例为待执行接口对应的接口测试案例,该待执行接口为本次接口自动化测试过程中需要执行的接口。接口执行顺序为所有待执行测试案例执行过程中的先后顺序。
作为一示例,服务器在确定目标依赖信息之后,需基于目标依赖信息深度遍历接口测试信息表,即深度遍历接口测试信息表中量化记录的所有接口依赖关系,确定目标接口标识对应的目标接口直接依赖的所有前序接口,将目标接口和所有前序接口确定为待执行接口,基于所有待执行接口之间的接口依赖关系,确定接口执行顺序,将待执行接口对应的接口测试案例确定为待执行测试案例。由于待执行接口包括目标接口及其所依赖的前序接口,因此,待执行测试案例包括目标测试案例和目标测试案例所依赖的前序测试案例。该目标测试案例为目标接口对应的接口测试案例,该前序测试案例为目标接口所依赖的前序接口对应的接口测试案例。
可以理解地,通过目标接口标识对应的目标依赖信息深度遍历接口测试信息表,有助于提高遍历搜索效率,可以快速有效地确定所有待执行测试案例和接口执行顺序,无需人工调整接口执行顺序,有助于提高接口自动化测试效率,避免人工调整接口执行顺序遗漏或者出错而导致测试运行出错。
S204:依据接口执行顺序,依次执行至少两个待执行测试案例,获取接口测试结果。
作为一示例,服务器在确定至少两个待执行测试案例及其对应的接口执行顺序之后,依据接口执行顺序,依次执行至少两个待执行测试案例完成接口自动化测试,获取接口测试结果。
本实施例所提供的接口自动化测试方法中,基于目标接口标识查询接口测试信息表,根据量化记录在接口测试信息表的接口依赖关系,确定与目标接口标识相对应的目标依赖信息,提高目标接口对应的目标依赖信息的获取效率,有助于提高接口自动化测试的测试效率;再根据目标依赖信息深度遍历接口测试信息表,有助于提高遍历搜索效率,可快速有效地确定至少两个待执行测试案例及其对应的接口执行顺序,无需人工调整接口执行顺序,有助于提高接口自动化测试效率,避免人工调整接口执行顺序遗漏或者出错导致测试运行出错;最后,依据深度遍历接口测试信息表所确定的接口执行顺序,依次执行至少两个待执行测试案例,以获取接口测试结果,保证所有待执行测试案例依据其对应的接口依赖关系进行测试,保障接口测试的自动化,提高接口自动化测试效率。
在一实施例中,如图3所示,步骤S203,即基于目标依赖信息,深度遍历接口测试信息表,确定至少两个待执行测试案例和接口执行顺序,待执行测试案例包括目标测试案例和目标测试案例所依赖的前序测试案例,包括:
S301:对目标依赖信息进行识别,确定目标依赖信息是否包含合法分隔符。
其中,合法分隔符是预先配置的用于分隔相邻两个依赖接口标识的字符。
作为一示例,服务器调用字符串识别算法,基于预先配置的合法分隔符识别目标依赖信息,以判断目标依赖信息中是否包含合法分隔符,以根据识别结果执行后续的步骤。该字符串识别算法是用于识别文本中特定字符串的算法。
S302:若目标依赖信息包括合法分隔符,则从目标依赖信息中确定至少两个依赖接口标识和同级依赖顺序;基于至少两个依赖接口标识深度遍历接口测试信息表,获取每一依赖接口标识对应的前序测试案例和深度依赖顺序;基于目标接口标识对应的目标测试案例和所有前序测试案例,确定至少两个待执行测试案例;基于至少两个依赖接口标识对应的深度依赖顺序和同级依赖顺序,确定接口执行顺序。
其中,依赖接口标识是目标依赖信息记录中的用于唯一识别目标接口直接依赖的前序接口对应的标识。一般来说,若目标依赖信息包含合法分隔符,可基于合法分隔符所分隔的字符串内容确定依赖接口标识,该依赖接口标识为目标接口直接依赖的前序接口对应的标识。
其中,同级依赖顺序为至少两个依赖接口标识对应的前序接口之间的先后顺序。一般来说,至少两个依赖接口标识采用合法分隔符隔离,在采用字符串识别算法识别目标依赖信息时,可依据从左到右的顺序,确定至少两个依赖接口标识对应的同级依赖顺序。
其中,深度依赖顺序是基于每一依赖接口标识深度遍历接口测试信息表,确定的每一依赖接口标识对应的所有前序测试案例的先后顺序。一般来说,基于每一依赖接口标识深度遍历接口测试信息表时,依据深度遍历到的所有配置接口标识的先后顺序,从后到前的顺序确定深度依赖顺序。
例如,若目标接口标识为T15,目标接口标识T15在接口测试信息表中的依赖关系字段对应的信息为“T10;T9;T11”,其中,“;”为合法分隔符,以下结合附图8,对步骤S302进行详细说明,具体包括如下步骤:
(1)在目标依赖信息“T10;T9;T11”包括合法分隔符“;”时,从目标依赖信息“T10;T9;T11”中,确定依赖接口标识为T10、T9和T11,并确定其对应的同级依赖顺序为T10→T9→T11。
(2)再基于三个依赖接口标识T10/T9/T11,分别深度遍历接口测试信息表,获取每一依赖接口标识对应的前序测试案例和深度依赖顺序。如图8所示,依赖接口标识T10的接口依赖信息为“T7;T5”,配置接口标识T7的接口依赖信息为“T1”,配置接口标识T5对应的接口依赖信息为“T2”,配置接口标识T2对应的接口依赖信息为“T1”,则依赖接口标识T10对应的前序测试案例包括配置接口标识T10、T7、T1、T5和T2对应的接口测试案例,且依据深度遍历到的所有配置接口标识的先后顺序,从后到前的顺序确定依赖接口标识T10对应的深度依赖顺序为T1→T7→T2→T5→T10。依赖接口标识T9和依赖接口标识T11的接口依赖信息为空,则直接将依赖接口标识T9和依赖接口标识T11对应的接口测试案例确定前序测试案例,其深度依赖顺序为本身。
(3)接着,将目标接口标识T15对应的目标测试案例和深度遍历所确定的所有前序接口标识T10/T9/T11/T7/T5/T1/T2对应的前序测试案例,确定为待执行测试案例;三个依赖接口标识T10/T9/T11对应的深度依赖顺序分别为“T1→T7→T2→T5→T10”、“T9”和“T11”,依赖同级依赖顺序进行连接所有深度依赖顺序,并将目标测试案例确定为最后一个待执行测试案例,以确定其接口执行顺序为T1→T7→T2→T5→T10→T9→T11→T15,以达到采用深度遍历搜索方式,快速有效地确定所有待执行测试案例和接口执行顺序,无需人工调整接口执行顺序,有助于提高接口自动化测试效率,避免接口自动化测试过程中人工调整接口执行顺序遗漏或者出错而导致测试运行出错。
S303:若目标依赖信息未包含合法分隔符,则从目标依赖信息中确定一个依赖接口标识,基于依赖接口标识深度遍历接口测试信息表,获取依赖接口标识对应的前序测试案例和深度依赖顺序,基于目标接口标识对应的目标测试案例和所有前序测试案例,确定至少两个待执行测试案例;基于依赖接口标识对应的深度依赖顺序,确定接口执行顺序。
作为一示例,若目标依赖信息未包含合法分隔符,可认定目标依赖信息中只包含一个依赖接口标识,此时,服务器需先基于该依赖接口标识深度遍历接口测试信息表,获取该依赖接口标识对应的前序测试案例和深度依赖顺序。如图8所示,若目标接口标识为T15,目标接口标识T15在接口测试信息表中的依赖关系字段对应的信息为“T10”,则只需基于依赖接口标识T10深度遍历接口测试信息表,获取依赖接口标识T10对应的前序测试案例为T10、T7、T1、T5和T2对应的接口测试案例,其对应的深度依赖顺序为T1→T7→T2→T5→T10。接着,服务器基于目标接口标识对应的目标测试案例和所有前序测试案例,确定至少两个待执行测试案例;基于依赖接口标识对应的深度依赖顺序,确定接口执行顺序,即将目标测试案例添加到深度依赖顺序之后,其所形成的接口执行顺序为T1→T7→T2→T5→T10→T15,将目标测试案例确定为最后一个待执行测试案例,以达到采用深度遍历搜索方式,快速有效地确定所有待执行测试案例和接口执行顺序,无需人工调整接口执行顺序,有助于提高接口自动化测试效率,避免接口自动化测试过程中人工调整接口执行顺序遗漏或者出错而导致测试运行出错。
在一实施例中,如图4所示,步骤S204,即依据接口执行顺序,依次执行至少两个待执行测试案例,获取接口测试结果,包括:
S401:获取每一待执行测试案例对应的有效案例代码。
其中,待执行测试案例对应的有效案例代码是指可以直接执行的用于实现对接口逻辑功能进行接口测试的代码,具体是指接口逻辑功能清楚,不存在不确定变量值的代码。
作为一示例,服务器在确定至少两个待执行测试案例后,可获取每一待执行测试案例对应的原始案例代码,对原始案例代码中所有接口入参字段进行识别,判断所有接口入参字段是否均有对应的输入参数;若所有接口入参字段均有对应的输入参数,则将原始案例代码确定为有效案例代码;若至少一个接口入参字段没有对应的输入参数,则跳转到参数输入界面,获取用户输入的与接口入参字段相对应的输入参数,以形成有效案例代码。待执行测试案例对应的原始案例代码为预先配置的用于实现对接口逻辑功能进行接口测试的代码,无法确保是否存在不确定变量值的代码,若直接执行,可能会因缺少必要的输入参数而导致接口测试出错。可以理解地,服务器获取每一待执行测试案例对应的有效案例代码,可避免原始案例代码缺少必要的输入参数而导致接口测试出错的情况,有助于保障每一待执行测试案例测试的可靠性。
S402:依据接口执行顺序,依次执行至少两个待执行测试案例对应的有效案例代码,获取每一有效案例代码对应的案例执行状态。
作为一示例,服务器依据接口执行顺序,依次执行至少两个待执行测试案例对应的有效案例代码,获取每一有效案例代码对应的案例执行状态,该案例执行状态是用于反映有效案例代码执行情况的状态。该案例执行状态包括执行成功和执行失败两种,该执行成功反映有效案例代码对应的接口逻辑功能可成功执行,该执行失败反映有效案例代码对应的接口逻辑功能不可成功执行。
S403:若所有有效案例代码对应的案例执行状态均为执行成功,则获取测试成功的接口测试结果。
作为一示例,若所有有效案例代码对应的案例执行状态均为执行成功,则说明所有有效案例代码对应的接口逻辑功能均可顺利执行,反映目标接口的接口逻辑功能以及其前序接口的接口逻辑功能均可顺利执行,因此,可获取测试成功的接口测试结果。
S404:若任一有效案例代码对应的案例执行状态为执行失败,则获取测试失败的接口测试结果。
作为一示例,若任一有效案例代码对应的案例执行状态为执行失败,则说明对应的有效案例代码对应的接口逻辑功能不可顺利执行,反映相应的目标接口或者前序接口的接口逻辑功能错误,因此,可获取测试失败的接口测试结果。本示例中,若任一有效案例代码对应的案例执行状态为执行失败时,服务器停止该有效案例代码对应的待执行接口及该待执行接口的后序接口对应的有效案例代码的测试。
本实施例所提供的接口自动化测试方法中,先获取每一待执行测试案例对应的有效案例代码,从形式上避免原始案例代码缺少必要的输入参数而导致接口测试出错的情况,有助于保障每一待执行测试案例测试的可靠性;接着,依据接口执行顺序,依次执行至少两个待执行测试案例对应的有效案例代码,根据所有有效案例代码对应的案例执行状态,获取最终的接口测试结果,以实现基于接口执行顺序完成接口自动化测试过程,有助于提高接口自动化测试的测试效率。
在一实施例中,如图5所示,步骤S401,即获取每一待执行测试案例对应的有效案例代码,具体包括:
S501:获取每一待执行测试案例对应的原始案例代码,提取原始案例代码中的接口入参字段对应的接口入参信息。
其中,原始案例代码为预先配置的用于实现对接口逻辑功能进行接口测试的代码,无法确保是否存在不确定变量值的代码,若直接执行,可能会因缺少必要的输入参数而导致接口测试出错。该接口入参字段为原始案例代码中与输入参数相对应的字段。接口入参字段对应的接口入参信息是记录在原始案例代码中与接口入参字段相对应的信息。
作为一示例,服务器获取每一待执行测试案例对应的原始案例代码,采用字符串识别算法或者其他识别算法,从原始案例代码中确定所有接口入参字段,并获取所有接口入参字段对应的接口入参信息。例如,可采用字符串识别算法或者其他识别算法,从原始案例代码中识别赋值符“=”对应的赋值代码,将赋值代码左边的信息确定为接口入参字段,将赋值代码右边的信息确定为接口入参信息,以实现快速搜索确定所有接口入参字段对应的接口入参信息。
S502:若接口入参信息包含变量引用标识,则获取变量引用标识对应的入参接口变量。
其中,变量引用标识是预先配置的用于反映原始案例代码执行过程中需引用其他接口测试的输出参数的标识。变量引用标识对应的入参接口变量是指需要引用其他接口测试的输出参数作为输入参数的接口变量。
作为一示例,服务器在获取所有接口入参信息之后,先采用字符串识别算法或者其他识别算法,识别接口入参信息是否包含变量引用标识,以确定该接口入参字段对应的接口入参信息是否需要引用其他接口测试的输出参数;在接口入参信息包含变量引用标识时,需获取该变量引用标识对应的入参接口变量,即需要引用其他接口测试的输出参数对应的接口变量。例如,若某一接口入参信息为${msg},而预先配置的变量引用标识为${},则该变量引用标识${}对应的入参接口变量为msg,即入参接口变量msg不仅为本次接口测试的原始案例代码的输入参数的变量,也为其他接口测试的输出参数的变量。
S503:基于入参接口变量查询接口测试信息表中的接口出参信息,获取入参接口变量对应的入参参数路径。
作为一示例,服务器在获取入参接口变量后,先采用查询语句生成模板对入参接口变量进行处理,形成目标查询语句。该查询语句生成模板是预先配置的用于基于入参接口变量自动生成查询语句的模板。该目标查询语句是采用查询语句生成模板对入参接口变量进行处理,形成的可实现查询功能的语句。再执行目标查询语句查询接口测试信息表中接口变量字段对应的所有接口出参信息,将与入参接口变量相同的出参接口变量对应的接口出参信息确定为目标出参信息;将目标出参信息中的出参参数路径,确定为入参接口变量对应的入参参数路径,该入参参数路径为用于获取入参接口变量对应的输入参数的路径,该入参参数路径可以采用json格式,方便调用。
例如,若在库接口A对应的接口配置信息中,其接口变量字段对应的接口出参信息为msg=results[0].retmsg,在库接口B对应的接口配置信息中,其接口变量字段对应的接口出参信息为mss=results[1].retmss;若待执行接口的入参接口变量为msg,则基于入参接口变量msg形成的目标查询语句查询接口测试信息表后,将msg=results[0].retmsg确定为目标出参信息;该目标出参信息中,赋值符“=”左边的信息为本次接口测试的原始案例代码的入参接口变量msg,也为其他接口测试的输出参数的变量,右边的信息为入参接口变量对应的入参参数路径results[0].retmsg,以实现快速确定入参参数路径的目的。
S504:基于入参接口变量对应的入参参数路径,获取与入参接口变量相对应的待入参变量值。
作为一示例,服务器可基于入参接口变量对应的入参参数路径,查询系统内存,从系统内存中提取入参参数路径返回的数据,确定为与入参接口变量相对应的待入参变量值,以实现快速确定原始案例代码中入参接口变量对应的待入参变量值。
例如,若在库接口A对应的接口配置信息中,其接口变量字段对应的接口出参信息为msg=results[0].retmsg时,说明预先执行在库接口A对应的接口测试案例时,已经将在库接口A中出参接口变量对应的输出参数存储在系统内存中,获取该输出参数在系统内存中的出参参数路径,基于出参接口变量和出参参数路径形成在库接口A对应的接口出参信息。在运行待执行测试案例对应的原始案例代码过程中,确定其入参接口变量为msg时,可根据msg=results[0].retmsg确定入参参数路径results[0].retmsg,基于入参参数路径results[0].retmsg查询系统内存,获取与入参接口变量相对应的待入参变量值。例如,在入参参数路径为json格式的路径时,可根据入参参数路径返回的数值中,确定与入参接口变量相对应的待入参变量值。
S505:将待入参变量值作为接口入参字段的输入参数,形成待执行测试案例对应的有效案例代码。
作为一示例,服务器在获取入参接口变量对应的待入参变量值之后,将该待入参变量值作为接口入参字段对应的入参接口变量的输入参数,对入参接口变量进行赋值,将赋值之后的原始案例代码确定为有效案例代码,可避免原始案例代码缺少必要的输入参数而导致接口测试出错的情况,有助于保障每一待执行测试案例测试的可靠性。
本实施例所提供的接口自动化测试方法中,对待执行测试案例的原始案例代码进行识别,以确定接口入参信息,在接口入参信息包含变量引用标识时,说明该待执行测试案例存在数据依赖,即需要依赖其他在先执行的在库接口的输出参数,此时,可根据变量引用标识对应的入参接口变量查询接口测试信息表,从接口测试信息表对应的接口出参信息中确定入参接口变量对应的入参参数路径,根据入参参数路径确定待入参变量值,并赋值给原始案例代码,以形成不缺少必要的输入参数的有效案例代码。可以理解地,基于接口测试信息表中的接口出参信息,量化记录各个在库接口对应的输出参数及其出参参数路径,以实现在待执行测试案例执行过程中存在数据依赖时,可快速确定其所依赖的待入参变量值并赋值给原始案例代码,以形成有效案例代码,保证存在数据依赖的情况下进行接口自动化测试的灵活性,避免人工配置或写入存在数据依赖的待入参变量值时,存在操作和维护困难,执行不稳定且成本高等问题。
在一实施例中,如图6所示,在步骤S201之前,即在获取接口测试请求之前,接口自动化测试方法还包括:
S601:获取待入库接口对应的原始配置信息,原始配置信息包括配置接口标识、配置接口名称、配置URL和接口依赖信息。
其中,待入库接口为本次需要入库的接口,即需要将其对应的接口测试案例存储到系统数据库的接口。原始配置信息是在将待入库接口对应的接口测试案例存储到系统数据库过程中,由用户自主配置的用于记录与待入库接口相对应的信息。该配置接口标识是用户自主配置的用于唯一识别待入库接口的标识。一般来说,配置接口标识是基于预先接口生成规则生成的唯一标识,例如,配置接口标识为“标识字符+序号字符”格式,如T15中,T为标识字符,15为序号字符。配置接口名称为用户自主配置的待入库接口的名称。配置URL为待入库接口对应的接口测试案例对应的URL。接口依赖信息为用户自主配置和维护的记录前序接口的信息。
S602:对配置接口标识和配置接口名称进行唯一性校验,获取唯一性校验结果。
作为一示例,服务器在接收到原始配置信息之后,需将该待入库接口的配置接口标识和配置接口名称,分别与接口测试信息表中在库接口的配置接口标识和配置接口名称进行对比,若不存在配置接口标识和/或配置接口名称相同的在库接口,则认定该待入库接口具有唯一性,获取校验通过的唯一性校验结果;若存在配置接口标识和/或配置接口名称相同的在库接口,即其配置接口标识和/或配置接口名称不具有唯一性,获取校验不通过的唯一性校验结果。
S603:对配置URL进行可行性校验,获取可行性校验结果。
作为一示例,服务器在获取原始配置信息之后,需对配置URL进行可行性校验,则基于配置URL触发访问请求,若在预设时间内接收到对应的预设时间,则获取校验通过的可行性校验结果;若在预设时间内没有接收到对应的预设时间,则获取校验不通过的可行性校验结果。
S604:对接口依赖信息进行内容校验,获取依赖校验结果。
作为一示例,服务器在获取原始配置信息之后,需采用预先配置的内容校验逻辑对用户自主配置的接口依赖信息进行内容校验,若接口依赖信息满足内容校验逻辑对应的格式条件,则获取校验通过的依赖校验结果;若接口依赖信息不满足内容校验逻辑对应的格式条件,则获取校验不通过的依赖校验结果。
S605:若唯一性校验结果、可行性校验结果和依赖校验结果均为校验通过,则将原始配置信息作为接口配置信息存储在接口测试信息表中。
作为一示例,若唯一性校验结果、可行性校验结果和依赖校验结果均为校验通过,则认定待入库接口的原始配置信息满足入库条件,将原始配置信息作为接口配置信息存储在接口测试信息表中。相应地,若唯一性校验结果、可行性校验结果和依赖校验结果中的至少一个为校验不通过,则认定待入库接口的原始配置信息不满足入库条件,不能将原始配置信息作为接口配置信息存储在接口测试信息表中,此时,生成并控制客户端显示配置错误提醒信息,以使用户根据配置错误提醒信息进行修正。
可以理解地,将唯一性校验结果为校验通过的原始配置信息存储在接口测试信息表中,有助于保障后续查询接口测试信息表时,具有唯一性,避免无法查询或者查询结果数量较多,影响接口自动化测试效率。将可行性校验结果为校验通过的原始配置信息存储在接口测试信息表中,有助于保障后续待执行测试案例执行过程中,可访问相应的配置URL,以保障接口自动化测试的可行性。将依赖校验结果为校验通过的原始配置信息存储在接口测试信息表中,有助于保障待入库接口的接口依赖信息的准确性,从而保障后续基于目标依赖信息进行深度遍历接口测试信息表的可行性,保障接口自动化测试的可行性。
在一实施例中,如图7所示,步骤S604,即对接口依赖信息进行内容校验,获取依赖校验结果,包括:
S701:若接口依赖信息为空,则获取校验通过的依赖校验结果。
作为一示例,服务器在识别到原始配置信息中的接口依赖信息为空,说明用户并没有给待入库接口配置其所依赖的前序接口,则直接获取校验通过的依赖校验结果。
S702:若接口依赖信息不为空,则采用字符串匹配算法识别接口依赖信息是否包含非法字符串。
其中,字符串匹配算法是用于匹配文本内容中的特定字符串的算法,包括但不限于BF算法和KMP算法。非法字符串是指除了依赖接口标识和合法分隔符之外的字符。由于依赖接口标识也是基于接口生成规则生成的唯一标识,其格式为“标识字符+序号字符”,而合法分隔符是预先配置的用于分隔相邻两个依赖接口标识的字符,由此可知,每一待入库接口对应的接口依赖信息一般仅包括“标识字符”、“序号字符”和“合法分隔符”,除此之外的字符串均为非法字符串。
作为一示例,服务器在识别到原始配置信息中的接口依赖信息不为空时,采用字符串匹配算法识别接口依赖信息,判断接口依赖信息中是否包含除“标识字符”、“序号字符”和“合法分隔符”之外的非法字符串,以便获取相应的依赖校验结果。
S703:若接口依赖信息包含非法字符串,则获取校验不通过的依赖校验结果。
作为一示例,若接口依赖信息中包含除“标识字符”、“序号字符”和“合法分隔符”之外的非法字符串,则直接获取校验不通过的依赖校验结果,以便向客户端发送配置错误提醒信息,以使用户根据配置错误提醒信息进行修正,删除相应的非法字符串,从而保障后续基于目标依赖信息进行深度遍历接口测试信息表的可行性,保障接口自动化测试的可行性。
S704:若接口依赖信息不包含非法字符串,则从接口依赖信息中提取依赖接口标识,判断依赖接口标识是否为在库接口标识。
其中,在库接口标识为在库接口对应的配置接口标识,该在库接口为系统当前时间之前已经将接口测试案例存储在系统数据库,且其接口配置信息存储在接口测试信息表中的接口。
作为一示例,在接口依赖信息不包含非法字符串时,可采用字符串识别算法从接口依赖信息中提取所有依赖接口标识;需判断依赖接口标识是否为在库接口标识,以避免后续基于目标依赖信息深度遍历接口测试信息表时,出现无法确定目标测试案例对应的前序测试案例的情况,有助于保障接口自动化测试的可行性。
S705:若依赖接口标识为在库接口标识,获取接口依赖信息中依赖接口标识的数量;在依赖接口标识的数量为一个时,获取校验通过的依赖校验结果;在依赖接口标识的数量为至少两个时,判断相邻两个依赖接口标识之间是否设有合法分隔符,若相邻两个依赖接口标识之间设有合法分隔符,则获取校验通过的依赖校验结果。
作为一示例,在依赖接口标识为在库接口标识时,需获取依赖接口标识的数量。若依赖接口标识的数量为一个,则直接获取校验通过的依赖校验结果,以便后续基于一个依赖接口标识进行深度遍历接口测试信息表。若依赖接口标识的数量为至少两个,则需相邻两个依赖接口标识之间是否设有合法分隔符,若相邻两个依赖接口标识之间设有合法分隔符,则获取校验通过的依赖校验结果,从而避免相邻两个依赖接口标识之间不采用合法分隔符隔离,导致后续无法基于合法分隔符识别目标依赖信息中的至少两个依赖接口标识的情况发生,保障基于至少两个依赖接口标识深度遍历接口测试信息表的可行性。
S706:若依赖接口标识不为在库接口标识,或者相邻两个依赖接口标识之间不设有合法分隔符,则获取校验不通过的依赖校验结果。
作为一示例,若依赖接口标识不为在库接口标识,则获取校验不通过的依赖校验结果,以便向客户端发送配置错误提醒信息,以使用户根据配置错误提醒信息进行修正,从而避免后续基于目标依赖信息深度遍历接口测试信息表时,无法确定目标测试案例对应的前序测试案例的情况出现,有助于保障接口自动化测试的可行性。
作为一示例,在依赖接口标识为在库接口标识,且依赖接口标识的数量为至少两个的情况下,若相邻两个依赖接口标识之间不设有合法分隔符,获取校验不通过的依赖校验结果,以便向客户端发送配置错误提醒信息,以使用户根据配置错误提醒信息进行修正,从而避免相邻两个依赖接口标识之间不采用合法分隔符隔离,导致后续无法基于合法分隔符识别目标依赖信息中的至少两个依赖接口标识的情况发生,保障基于至少两个依赖接口标识深度遍历接口测试信息表的可行性。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种接口自动化测试装置,该接口自动化测试装置与上述实施例中接口自动化测试方法一一对应。如图9所示,该接口自动化测试装置包括测试请求获取模块901、依赖信息获取模块902、深度遍历处理模块903和测试案例执行模块904。各功能模块详细说明如下:
测试请求获取模块901,用于获取接口测试请求,接口测试请求包括目标接口标识。
依赖信息获取模块902,用于基于目标接口标识查询接口测试信息表,获取目标接口标识对应的目标依赖信息。
深度遍历处理模块903,用于基于目标依赖信息,深度遍历接口测试信息表,确定至少两个待执行测试案例和接口执行顺序,待执行测试案例包括目标测试案例和目标测试案例所依赖的前序测试案例。
测试案例执行模块904,用于依据接口执行顺序,依次执行至少两个待执行测试案例,获取接口测试结果。
优选地,深度遍历处理模块903包括:
分隔符识别单元,用于对目标依赖信息进行识别,确定目标依赖信息是否包含合法分隔符。
第一遍历处理单元,用于若目标依赖信息包括合法分隔符,则从目标依赖信息中确定至少两个依赖接口标识和同级依赖顺序;基于至少两个依赖接口标识深度遍历接口测试信息表,获取每一依赖接口标识对应的前序测试案例和深度依赖顺序;基于目标接口标识对应的目标测试案例和所有前序测试案例,确定至少两个待执行测试案例;基于至少两个依赖接口标识对应的深度依赖顺序和同级依赖顺序,确定接口执行顺序。
第二遍历处理单元,用于若目标依赖信息未包含合法分隔符,则从目标依赖信息中确定一个依赖接口标识,基于依赖接口标识深度遍历接口测试信息表,获取依赖接口标识对应的前序测试案例和深度依赖顺序,基于目标接口标识对应的目标测试案例和所有前序测试案例,确定至少两个待执行测试案例;基于依赖接口标识对应的深度依赖顺序,确定接口执行顺序。
优选地,测试案例执行模块904包括:
有效代码获取单元,用于获取每一待执行测试案例对应的有效案例代码。
执行状态获取单元,用于依据接口执行顺序,依次执行至少两个待执行测试案例对应的有效案例代码,获取每一有效案例代码对应的案例执行状态。
测试成功判定单元,用于若所有有效案例代码对应的案例执行状态均为执行成功,则获取测试成功的接口测试结果。
测试失败判定单元,用于若任一有效案例代码对应的案例执行状态为执行失败,则获取测试失败的接口测试结果。
优选地,有效代码获取单元包括:
接口入参信息获取子单元,用于获取每一待执行测试案例对应的原始案例代码,提取原始案例代码中的接口入参字段对应的接口入参信息。
入参接口变量获取子单元,用于若接口入参信息包含变量引用标识,则获取变量引用标识对应的入参接口变量。
入参参数路径获取子单元,用于基于入参接口变量查询接口测试信息表中的接口出参信息,获取入参接口变量对应的入参参数路径。
待入参变量值获取子单元,用于基于入参接口变量对应的入参参数路径,获取与入参接口变量相对应的待入参变量值。
有效案例代码获取子单元,用于将待入参变量值作为接口入参字段的输入参数,形成待执行测试案例对应的有效案例代码。
优选地,接口自动化测试装置还包括:
原始配置信息信息获取模块,用于获取待入库接口对应的原始配置信息,原始配置信息包括配置接口标识、配置接口名称、配置URL和接口依赖信息。
唯一性校验结果获取模块,用于对配置接口标识和配置接口名称进行唯一性校验,获取唯一性校验结果。
可行性校验结果获取模块,用于对配置URL进行可行性校验,获取可行性校验结果。
依赖校验结果获取模块,用于对接口依赖信息进行内容校验,获取依赖校验结果。
原始配置信息存储模块,用于若唯一性校验结果、可行性校验结果和依赖校验结果均为校验通过,则将原始配置信息作为接口配置信息存储在接口测试信息表中。
优选地,依赖校验结果获取模块,包括:
第一通过结果获取单元,用于若接口依赖信息为空,则获取校验通过的依赖校验结果。
非法字符串判断单元,用于若接口依赖信息不为空,则采用字符串匹配算法识别接口依赖信息是否包含非法字符串。
第一不通过结果获取单元,用于若接口依赖信息包含非法字符串,则获取校验不通过的依赖校验结果。
在库接口标识判断单元,用于若接口依赖信息不包含非法字符串,则从接口依赖信息中提取依赖接口标识,判断依赖接口标识是否为在库接口标识。
第二通过结果获取单元,用于若依赖接口标识为在库接口标识,获取接口依赖信息中依赖接口标识的数量;在依赖接口标识的数量为一个时,获取校验通过的依赖校验结果;在依赖接口标识的数量为至少两个时,判断相邻两个依赖接口标识之间是否设有合法分隔符,若相邻两个依赖接口标识之间设有合法分隔符,则获取校验通过的依赖校验结果。
第二不通过结果获取单元,用于若依赖接口标识不为在库接口标识,或者相邻两个依赖接口标识之间不设有合法分隔符,则获取校验不通过的依赖校验结果。
关于接口自动化测试装置的具体限定可以参见上文中对于接口自动化测试方法的限定,在此不再赘述。上述接口自动化测试装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于执行接口自动化测试方法过程中采用或者生成的数据,包括但不限于接口测试信息表。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种接口自动化测试方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中接口自动化测试方法的步骤,例如图2所示的步骤S201-S204,或者图3至图7中所示的步骤,为避免重复,这里不再赘述。或者,处理器执行计算机程序时实现接口自动化测试装置这一实施例中的各模块/单元的功能,例如图9所示的测试请求获取模块901、依赖信息获取模块902、深度遍历处理模块903和测试案例执行模块904的功能,为避免重复,这里不再赘述。
在一实施例中,提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中接口自动化测试方法的步骤,例如图2所示的步骤S201-S204,或者图3至图7中所示的步骤,为避免重复,这里不再赘述。或者,该计算机程序被处理器执行时实现上述接口自动化测试装置这一实施例中的各模块/单元的功能,例如图9所示的测试请求获取模块901、依赖信息获取模块902、深度遍历处理模块903和测试案例执行模块904的功能,为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (10)

1.一种接口自动化测试方法,其特征在于,包括:
获取接口测试请求,所述接口测试请求包括目标接口标识;
基于所述目标接口标识查询接口测试信息表,获取所述目标接口标识对应的目标依赖信息;
基于所述目标依赖信息,深度遍历所述接口测试信息表,确定至少两个待执行测试案例和接口执行顺序,所述待执行测试案例包括目标测试案例和所述目标测试案例所依赖的前序测试案例;
依据所述接口执行顺序,依次执行至少两个所述待执行测试案例,获取接口测试结果。
2.如权利要求1所述的接口自动化测试方法,其特征在于,所述基于所述目标依赖信息,深度遍历所述接口测试信息表,确定至少两个待执行测试案例和接口执行顺序,包括:
对所述目标依赖信息进行识别,确定所述目标依赖信息是否包含合法分隔符;
若所述目标依赖信息包括合法分隔符,则从所述目标依赖信息中确定至少两个依赖接口标识和同级依赖顺序;基于至少两个所述依赖接口标识深度遍历所述接口测试信息表,获取每一所述依赖接口标识对应的前序测试案例和深度依赖顺序;基于所述目标接口标识对应的目标测试案例和所有所述前序测试案例,确定至少两个待执行测试案例;基于至少两个所述依赖接口标识对应的深度依赖顺序和所述同级依赖顺序,确定接口执行顺序;
若所述目标依赖信息未包含合法分隔符,则从所述目标依赖信息中确定一个依赖接口标识,基于所述依赖接口标识深度遍历所述接口测试信息表,获取所述依赖接口标识对应的前序测试案例和深度依赖顺序,基于所述目标接口标识对应的目标测试案例和所有所述前序测试案例,确定至少两个待执行测试案例;基于所述依赖接口标识对应的深度依赖顺序,确定接口执行顺序。
3.如权利要求1所述的接口自动化测试方法,其特征在于,所述依据所述接口执行顺序,依次执行至少两个所述待执行测试案例,获取接口测试结果,包括:
获取每一所述待执行测试案例对应的有效案例代码;
依据所述接口执行顺序,依次执行至少两个所述待执行测试案例对应的有效案例代码,获取每一所述有效案例代码对应的案例执行状态;
若所有所述有效案例代码对应的案例执行状态均为执行成功,则获取测试成功的接口测试结果;
若任一所述有效案例代码对应的案例执行状态为执行失败,则获取测试失败的接口测试结果。
4.如权利要求3所述的接口自动化测试方法,其特征在于,所述获取每一所述待执行测试案例对应的有效案例代码,包括:
获取每一所述待执行测试案例对应的原始案例代码,提取所述原始案例代码中的接口入参字段对应的接口入参信息;
若所述接口入参信息包含变量引用标识,则获取所述变量引用标识对应的入参接口变量;
基于所述入参接口变量查询所述接口测试信息表中的接口出参信息,获取所述入参接口变量对应的入参参数路径;
基于所述入参接口变量对应的入参参数路径,获取与所述入参接口变量相对应的待入参变量值;
将所述待入参变量值作为所述接口入参字段的输入参数,形成所述待执行测试案例对应的有效案例代码。
5.如权利要求1所述的接口自动化测试方法,其特征在于,在所述获取接口测试请求之前,所述接口自动化测试方法还包括:
获取待入库接口对应的原始配置信息,所述原始配置信息包括配置接口标识、配置接口名称、配置URL和接口依赖信息;
对所述配置接口标识和所述配置接口名称进行唯一性校验,获取唯一性校验结果;
对所述配置URL进行可行性校验,获取可行性校验结果;
对所述接口依赖信息进行内容校验,获取依赖校验结果;
若所述唯一性校验结果、所述可行性校验结果和所述依赖校验结果均为校验通过,则将所述原始配置信息作为接口配置信息存储在接口测试信息表中。
6.如权利要求5所述的接口自动化测试方法,其特征在于,所述所述对所述接口依赖信息进行内容校验,获取依赖校验结果,包括:
若所述接口依赖信息为空,则获取校验通过的依赖校验结果;
若所述接口依赖信息不为空,则采用字符串匹配算法识别所述接口依赖信息是否包含非法字符串;
若所述接口依赖信息包含非法字符串,则获取校验不通过的依赖校验结果;
若所述接口依赖信息不包含非法字符串,则从所述接口依赖信息中提取依赖接口标识,判断所述依赖接口标识是否为在库接口标识;
若所述依赖接口标识为在库接口标识,获取所述接口依赖信息中依赖接口标识的数量;在所述依赖接口标识的数量为一个时,获取校验通过的依赖校验结果;在依赖接口标识的数量为至少两个时,判断相邻两个所述依赖接口标识之间是否设有合法分隔符,若相邻两个所述依赖接口标识之间设有合法分隔符,则获取校验通过的依赖校验结果;
若所述依赖接口标识不为在库接口标识,或者相邻两个依赖接口标识之间不设有合法分隔符,则获取校验不通过的依赖校验结果。
7.一种接口自动化测试装置,其特征在于,包括:
测试请求获取模块,用于获取接口测试请求,所述接口测试请求包括目标接口标识;
依赖信息获取模块,用于基于所述目标接口标识查询接口测试信息表,获取所述目标接口标识对应的目标依赖信息;
深度遍历处理模块,用于基于所述目标依赖信息,深度遍历所述接口测试信息表,确定至少两个待执行测试案例和接口执行顺序,所述待执行测试案例包括目标测试案例和所述目标测试案例所依赖的前序测试案例;
测试案例执行模块,用于依据所述接口执行顺序,依次执行至少两个所述待执行测试案例,获取接口测试结果。
8.如权利要求7所述的接口自动化测试装置,其特征在于,所述接口自动化测试装置还包括:
原始配置信息信息获取模块,用于获取待入库接口对应的原始配置信息,所述原始配置信息包括配置接口标识、配置接口名称、配置URL和接口依赖信息;
唯一性校验结果获取模块,用于对所述配置接口标识和所述配置接口名称进行唯一性校验,获取唯一性校验结果;
可行性校验结果获取模块,用于对所述配置URL进行可行性校验,获取可行性校验结果;
依赖校验结果获取模块,用于对所述接口依赖信息进行内容校验,获取依赖校验结果;
原始配置信息存储模块,用于若所述唯一性校验结果、所述可行性校验结果和所述依赖校验结果均为校验通过,则将所述原始配置信息作为接口配置信息存储在接口测试信息表中。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述接口自动化测试方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述接口自动化测试方法的步骤。
CN202011032130.5A 2020-09-27 2020-09-27 接口自动化测试方法、装置、计算机设备及存储介质 Pending CN112162924A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011032130.5A CN112162924A (zh) 2020-09-27 2020-09-27 接口自动化测试方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011032130.5A CN112162924A (zh) 2020-09-27 2020-09-27 接口自动化测试方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN112162924A true CN112162924A (zh) 2021-01-01

Family

ID=73864225

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011032130.5A Pending CN112162924A (zh) 2020-09-27 2020-09-27 接口自动化测试方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN112162924A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112905461A (zh) * 2021-02-09 2021-06-04 中国工商银行股份有限公司 自动化接口测试案例执行方法及装置
CN113791984A (zh) * 2021-10-28 2021-12-14 建信金融科技有限责任公司 接口自动化测试方法及装置
CN113821441A (zh) * 2021-09-29 2021-12-21 平安银行股份有限公司 基于cucumber测试案例的执行方法、装置、设备及存储介质
CN115102879A (zh) * 2022-07-21 2022-09-23 身边云(北京)信息服务有限公司 一种共享服务平台的测试方法、电子设备及存储介质

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112905461A (zh) * 2021-02-09 2021-06-04 中国工商银行股份有限公司 自动化接口测试案例执行方法及装置
CN112905461B (zh) * 2021-02-09 2024-03-15 中国工商银行股份有限公司 自动化接口测试案例执行方法及装置
CN113821441A (zh) * 2021-09-29 2021-12-21 平安银行股份有限公司 基于cucumber测试案例的执行方法、装置、设备及存储介质
CN113821441B (zh) * 2021-09-29 2023-10-13 平安银行股份有限公司 基于cucumber测试案例的执行方法、装置、设备及存储介质
CN113791984A (zh) * 2021-10-28 2021-12-14 建信金融科技有限责任公司 接口自动化测试方法及装置
CN113791984B (zh) * 2021-10-28 2023-06-09 建信金融科技有限责任公司 接口自动化测试方法及装置
CN115102879A (zh) * 2022-07-21 2022-09-23 身边云(北京)信息服务有限公司 一种共享服务平台的测试方法、电子设备及存储介质
CN115102879B (zh) * 2022-07-21 2023-11-21 身边云(北京)信息服务有限公司 一种共享服务平台的测试方法、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN112162924A (zh) 接口自动化测试方法、装置、计算机设备及存储介质
CN109474578B (zh) 报文消息校验方法、装置、计算机设备和存储介质
CN112052182A (zh) 接口自动化测试方法、装置、计算机设备及存储介质
CN109062788B (zh) 测试用例生成方法、装置、计算机设备和存储介质
CN108256322B (zh) 安全测试方法、装置、计算机设备和存储介质
CN111191281A (zh) 数据脱敏处理方法、装置、计算机设备及存储介质
CN111866149B (zh) 集群部署方法、装置、计算机设备及存储介质
CN108924258B (zh) 后台信息推送方法、装置、计算机设备和存储介质
CN112613993B (zh) 交易数据处理方法、装置、计算机设备和存储介质
CN110781070A (zh) 大数据测试验证方法、装置、计算机设备及存储介质
CN112015752A (zh) 一种数据动态查询的方法、装置、电子设备和存储介质
CN109324961B (zh) 系统自动测试方法、装置、计算机设备及存储介质
CN114968754A (zh) 一种应用程序接口api测试方法以及装置
CN114610635A (zh) 接口测试用例生成方法、装置、计算机设备及存储介质
CN111125748A (zh) 越权查询的判断方法、装置、计算机设备和存储介质
CN112612706A (zh) 自动化测试方法、计算机设备及存储介质
CN111506573B (zh) 数据库表分区方法、装置、计算机设备及存储介质
CN110597782B (zh) 数据库动态切换方法、装置、计算机设备和存储介质
CN111176882A (zh) 特定数据处理方法、装置、计算机设备及存储介质
CN111736917B (zh) 数据校验方法、装置、计算机设备和存储介质
CN112737942B (zh) 服务路由切换方法、装置、设备及介质
CN110298018B (zh) 文本数据处理方法、装置、计算机设备及存储介质
CN112711574A (zh) 数据库安全性检测方法、装置、电子设备及介质
CN112564940A (zh) 配网失败处理方法及装置、设备及存储介质
CN109413504B (zh) 基于字符串替换的弹幕校验方法、装置、终端及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination