CN113806209A - 接口测试方法、框架、计算机设备和存储介质 - Google Patents
接口测试方法、框架、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113806209A CN113806209A CN202010550117.2A CN202010550117A CN113806209A CN 113806209 A CN113806209 A CN 113806209A CN 202010550117 A CN202010550117 A CN 202010550117A CN 113806209 A CN113806209 A CN 113806209A
- Authority
- CN
- China
- Prior art keywords
- test
- case
- test case
- tested
- module
- 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
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 534
- 238000000034 method Methods 0.000 claims abstract description 47
- 238000004590 computer program Methods 0.000 claims description 16
- 230000006870 function Effects 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 8
- 238000011161 development Methods 0.000 abstract description 14
- 230000007246 mechanism Effects 0.000 description 10
- 241000282693 Cercopithecidae Species 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种接口测试方法、框架、计算机设备和存储介质。所述方法包括:调用测试框架文件定义的配置模块配置用例参数,测试框架文件还定义了搜索模块、执行模块以及测试用例需继承的指定类;响应于测试指令,调用执行模块,通过执行模块调用搜索模块,搜索模块根据用例参数在目标测试用例中进行搜索,获得与用例参数匹配的待测试用例,各目标测试用例均继承指定类,执行模块执行待测试用例,获得待测试用例对应的接口的测试结果。采用本方法能够实现接口自动化测试,降低测试人员在开发平台实施接口自动化测试的难度。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种接口测试方法、框架、计算机设备和存储介质。
背景技术
对于开发平台(例如Unity)开发的应用程序,其在正式发布前通常需要测试人员进行相关的测试,以验证该应用程序是否能够正常运行。目前应用于开发平台的测试方法,其执行测试的具体逻辑依赖于额外放置的测试配置文件,侧重于应用程序性能测试和用户界面(UI)测试,缺少针对开发平台接口的自动化测试。
发明内容
基于此,有必要针对上述技术问题,提供一种能够实现接口自动化测试的接口测试方法、框架、计算机设备和存储介质。
一种接口测试方法,所述方法包括:
调用测试框架文件定义的配置模块配置用例参数,所述测试框架文件还定义了搜索模块、执行模块以及测试用例需继承的指定类;
响应于测试指令,调用所述执行模块,通过所述执行模块调用所述搜索模块,所述搜索模块根据所述用例参数在目标测试用例中进行搜索,获得与所述用例参数匹配的待测试用例,各所述目标测试用例均继承所述指定类,所述执行模块执行所述待测试用例,获得所述待测试用例对应的接口的测试结果。
一种接口测试框架,所述框架中定义了测试用例需继承的指定类,还包括:
配置模块,用于配置用例参数;
搜索模块,用于根据所述用例参数在目标测试用例中进行搜索,获得与所述用例参数匹配的待测试用例,各所述目标测试用例均继承所述指定类;
执行模块,用于响应于测试指令,调用所述搜索模块获得与所述用例参数匹配的待测试用例,并执行所述待测试用例,获得所述待测试用例对应的接口的测试结果。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
调用测试框架文件定义的配置模块配置用例参数,所述测试框架文件还定义了搜索模块、执行模块以及测试用例需继承的指定类;
响应于测试指令,调用所述执行模块,通过所述执行模块调用所述搜索模块,所述搜索模块根据所述用例参数在目标测试用例中进行搜索,获得与所述用例参数匹配的待测试用例,各所述目标测试用例均继承所述指定类,所述执行模块执行所述待测试用例,获得所述待测试用例对应的接口的测试结果。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
调用测试框架文件定义的配置模块配置用例参数,所述测试框架文件还定义了搜索模块、执行模块以及测试用例需继承的指定类;
响应于测试指令,调用所述执行模块,通过所述执行模块调用所述搜索模块,所述搜索模块根据所述用例参数在目标测试用例中进行搜索,获得与所述用例参数匹配的待测试用例,各所述目标测试用例均继承所述指定类,所述执行模块执行所述待测试用例,获得所述待测试用例对应的接口的测试结果。
上述接口测试方法、框架、计算机设备和存储介质,在测试框架文件中定义了配置模块、搜索模块、执行模块以及测试用例需继承的指定类,通过调用配置模块配置用例参数,响应于测试指令,调用执行模块,通过执行模块调用搜索模块,搜索模块根据用例参数在目标测试用例中进行搜索,获得与用例参数匹配的待测试用例,各目标测试用例均继承指定类,执行模块执行所待测试用例,获得待测试用例对应的接口的测试结果。据此,可实现接口自动化测试,测试框架文件可通过代码直接集成于开发平台的工程源码中,接入快速便捷,可在该开发平台支持运行的任一平台设备上直接调用接口开始执行自动化测试,并且为测试人员编写测试用例提供便利,减少测试人员需要自行编写的逻辑代码,从而降低测试人员在开发平台实施接口自动化测试的难度。
附图说明
图1为一个实施例中接口测试方法的流程示意图;
图2为一个实施例中事件机制的流程示意图;
图3为一个实施例中接口测试框架的结构框图;
图4为一个实施例中计算机设备的内部结构图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供了一种接口测试框架和接口测试方法,接口测试框架可通过代码形式集成于开发平台的工程源代码中,被调用时实现接口自动化测试。接口测试方法可以应用于安装有开发平台的终端,也可以应用于开发平台所在的服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
在一个实施例中,如图1所示,提供了一种接口测试方法,本实施例以该方法应用于终端进行举例说明。本实施例中,该方法包括以下步骤S102至步骤S104。
S102,调用测试框架文件定义的配置模块配置用例参数,测试框架文件还定义了搜索模块、执行模块以及测试用例需继承的指定类。
测试框架文件中定义了配置模块、搜索模块、执行模块以及测试用例需继承的指定类,被调用时可以实现相应的功能。其中,配置模块提供配置用例参数的功能;搜索模块提供搜索测试用例的功能;执行模块提供驱动测试用例执行的功能;指定类用于提供测试用例的编写规范,指定类中封装了断言集合和事件机制,测试用例继承该指定类后可使用这些封装的功能。
S104,响应于测试指令,调用执行模块,通过执行模块调用搜索模块,搜索模块根据用例参数在目标测试用例中进行搜索,获得与用例参数匹配的待测试用例,各目标测试用例均继承指定类,执行模块执行待测试用例,获得待测试用例对应的接口的测试结果。
目标测试用例表示测试人员根据测试框架文件提供的编写规范编写的测试用例,每个目标测试用例在编写时定义了用例参数。当测试人员未通过配置模块配置待测试用例的用例参数时(如配置的用例参数为空),默认执行所有的目标测试用例;当测试人员通过配置模块配置了待测试用例的用例参数时,执行目标测试用例中与配置的用例参数匹配的测试用例。
以开发平台为Unity为例,测试人员可以使用安装于终端上的Unity引擎新建或打开一个项目工程Project,并将测试框架文件(用C Sharp Test代码表示,简称为CSTest)添加到项目工程Project源代码可存放的任何位置中,测试人员根据CSTest提供的编写规范在Project中编写接口测试用例并保存,作为目标测试用例。启动自动化测试前,测试人员可以根据实际需求配置本次测试的用例参数,启动自动化测试后,终端调用执行模块,通过执行模块调用搜索模块,搜索模块获取本次测试配置的用例参数,并根据配置的用例参数在目标测试用例中搜索需要执行的测试用例,作为待测试用例,执行模块获得待测试用例后,执行待测试用例。需要说明的时,在进行测试时,可以直接在UnityEditor中运行测试,也可以使用Unity引擎构建出不同平台(如Android设备、iOS设备、Windows设备、Switch设备、linux设备等Unity引擎支持运行的设备平台)的应用程序,然后安装于测试设备中运行测试。
上述接口测试方法中,在测试框架文件中定义了配置模块、搜索模块、执行模块以及测试用例需继承的指定类,通过调用配置模块配置用例参数,响应于测试指令,调用执行模块,通过执行模块调用搜索模块,搜索模块根据用例参数在目标测试用例中进行搜索,获得与用例参数匹配的待测试用例,各目标测试用例均继承指定类,执行模块执行所待测试用例,获得待测试用例对应的接口的测试结果。据此,可实现接口自动化测试,测试框架文件可通过代码直接集成于开发平台的工程源码中,接入快速便捷,可在该开发平台支持运行的任一平台设备上直接调用接口开始执行自动化测试,并且为测试人员编写测试用例提供便利,减少测试人员需要自行编写的逻辑代码,从而降低测试人员在开发平台实施接口自动化测试的难度。
在一个实施例中,用例参数包括:类别名称和测试类型;搜索模块根据用例参数在目标测试用例中进行搜索,获得与用例参数匹配的待测试用例的步骤,具体可以包括以下步骤:搜索模块根据类别名称在目标测试用例中进行搜索,获得与类别名称匹配的第一测试用例;搜索模块根据测试类型在第一测试用例中进行搜索,获得与测试类型匹配的测试用例,作为待测试用例。
每个目标测试用例均添加了类别名称和测试类型的属性。类别名称表示测试用例所属的测试用例类的类名称。具体地,测试人员在编写测试用例时,可以将具有共同执行步骤的测试用例划分到同一测试用例类,举例来说,假设下载接口对应的测试用例包括测试用例a1和测试用例a2,测试用例a1用于下载小文件,测试用例a2用于下载大文件,假设测试用例a1和测试用例a2在执行前都需要进行登录操作,在执行后都需要进行预览已下载文件的操作,此时可以将测试用例a1和测试用例a2归为同一测试用例类(如命名为下载类),为测试用例a1和测试用例a2添加相同的类别名称属性。
测试类型表示测试用例所属的测试类型,可以根据测试用例的优先级或测试要点进行划分,例如可以定义P0,P1,Compatibility,Stress,Performance,Monkey,Other等类型,P0对应覆盖基础功能和流程的用例,P1对应除了基础功能以外的功能性用例或异常场景用例,Compatibility对应兼容性验证的用例,Stress对应压力、暴力测试的用例,Performance对应性能测试用例,Monkey对应随机测试用例,Other对应其余用例。可以理解,测试类型的划分方式和定义不限于此,测试人员可以结合实际需求对测试类型进行灵活设置。
搜索模块在根据用例参数在目标测试用例中进行搜索时,采用逐级搜索的方式,先从目标测试用例中搜索与配置的类别名称匹配的第一测试用例,再从第一测试用例中搜索与配置的测试类型匹配的测试用例,作为需要执行的待测试用例。举例来说,若配置的类别名称包括A1,配置的测试类型包括P0,则搜索模块先从目标测试用例中搜索获得类别名称为A1的测试用例类,第一测试用例包括测试用例类A1下所包含的所有测试用例,然后搜索模块从第一测试用例中搜索获得测试类型为P0的测试用例,作为需要执行的待测试用例。在上述实施例中,配置的类别名称和测试类型均只包括一种,可以理解,在其它实施例中,配置的类别名称和测试类型也可以包括多种,例如,配置的类别名称包括A1,配置的测试类型包括P0和P1;或配置的类别名称包括A1和A2,配置的测试类型包括P0;或配置的类别名称包括A1和A2,配置的测试类型包括P0和P1等,具体的搜索方式与上述实施例相似,此处不再赘述。
本实施例中,通过为每个目标测试用例添加类别名称和测试类型的属性,并为测试人员提供配置入口,使得测试范围可灵活配置,通过配置的类别名称和测试类型以及统一的逐级搜索方法,可以从目标测试用例中快速匹配到想要执行的测试用例,方便测试人员根据自身需求获取相应的测试用例,并且匹配搜索的流程清晰简单,有利于测试人员进行自定义扩展。
需要说明的是,在其它实施例中,除了类别名称和测试类型之外,用例参数还可以包括其它属性,例如还可以包括:测试用例类所属测试模块的测试模块名称,一个测试模块可以包括一个或者多于一个的测试用例类,此时,一个测试用例的用例参数包括测试模块名称、类别名称和测试类型三层属性,相应地,搜索模块在根据用例参数在目标测试用例中进行搜索时,可以按照测试模块名称、类别名称和测试类型的顺序逐级匹配搜索,获得需要执行的待测试用例。
在一个实施例中,当配置的类别名称为空时,搜索模块根据类别名称在目标测试用例中进行搜索,获得与类别名称匹配的第一测试用例的步骤,具体可以是:搜索模块将所有的目标测试用例作为第一测试用例。
本实施例中,配置的类别名称为空,即测试人员未对类别名称进行配置,可认为测试人员对于需要执行的测试用例的所属类没有特定要求,因此无需根据类别名称进行匹配搜索。
在一个实施例中,当配置的测试类型为空时,搜索模块根据测试类型在第一测试用例中进行搜索,获得与测试类型匹配的测试用例,作为待测试用例的步骤,具体可以是:搜索模块将所有的第一测试用例作为待测试用例。
本实施例中,配置的测试类型为空,即测试人员未对测试类型进行配置,可认为测试人员对于需要执行的测试用例的所属测试类型没有特定要求,因此无需根据测试类型进行匹配搜索。
需要说明的是,测试人员在配置用例参数时,可以只配置类别名称,测试类型设置为空;也可以只配置测试类型,类别名称设置为空;还可以是类别名称和测试类型都设置为空,即实际上未对用例参数进行配置,此时默认将所有的目标测试用例作为待测试用例。
在一个实施例中,测试类型包括随机测试;搜索模块根据测试类型在第一测试用例中进行搜索,获得与测试类型匹配的测试用例,作为待测试用例的步骤,具体可以包括以下步骤:搜索模块在第一测试用例中进行搜索,获得测试类型为随机测试的第二测试用例;从第二测试用例中随机选取测试用例,作为待测试用例。
随机测试也称为Monkey测试,假设用户是一只猴子,其在使用产品时会有一些随机的、稀奇古怪的操作方式,因此Monkey测试指用毫无规律的指令或操作来使用被测对象以测试被测对象的稳定性和容错能力。
假设每个目标测试用例都添加了CSTestAtrribute属性,其中的随机类型属性用TestCaseType.Monkey表示,搜索模块可以基于C#语言的反射机制访问属性能力,搜索测试类型属性为随机类型的测试用例,具体流程可以如下:首先通过调用C#在System.Reflection命名空间下的Assembly.GetExecutingAssembly().GetTypes()、GetCustomAttributes()方法,即可筛选出含有CSTestAtrribute属性的测试用例类;然后对类中的测试用例执行进一步的属性判断,即可筛选出含有属性为TestCastType.Monkey的测试用例;最终可以将匹配到的测试用例集合存储于C#的泛型列表List中,记为ListMonkeyMethods。以上用例匹配方案仅使用了C#语言特性,因此适用于所有C#工程,同时清晰简单的流程有利于测试人员对CSTest进行自定义扩展。
具体地,同一测试用例类中可以包括一个或者多于一个的测试类型为随机测试的测试用例(简称为随机测试用例),搜索模块根据类别名称在目标测试用例中进行匹配搜索到的第一测试用例也可能包括多于一个的随机测试用例,将第一测试用例中的所有随机测试用例匹配搜索出来,作为第二测试用例,再从第二测试用例中随机选取测试用例,作为需要执行的待测试用例。
本实施例中,通过定义随机测试的类型,并根据该随机测试的类型匹配搜索相应的随机测试用例,从随机测试用例中随机选取测试用例作为需要执行的待测试用例,从而实现接口随机测试,有助于验证被测对象的稳定性和容错能力。
在一个实施例中,从第二测试用例中随机选取测试用例,作为待测试用例的步骤,具体可以包括以下步骤:根据第二测试用例生成测试用例列表,测试用例列表中的各第二测试用例具有相应的编号;基于测试用例列表中的编号生成随机数;从测试用例列表中获取与随机数匹配的编号对应的测试用例,作为待测试用例。
举例来说,假设第二测试用例有10个,根据这10个第二测试用例生成的测试用例列表编号为0~9,每个第二测试用例对应其中一个编号,随机数的范围为0~9,假设生成的随机数为1,则获取测试用例列表中编号为1对应的测试用例,作为接口随机测试的待测试用例。
以Unity平台为例,可以引用Unity工程中UnityEngine.Random类的随机数方法来产生随机数,其为静态方法,使用时无需为每个需要随机性的对象或系统创建一个实例,相对于C#的System.Random类有易用性的优点。本实施例利用了Unity平台和C#语言的基础能力,能够支持接口Monkey测试,满足接口测试的随机测试需求,适用于Unity自身自持的所有平台设备,如Android/iOS/PC/Mac等设备。
在一个实施例中,待测试用例包括异步接口测试用例;执行模块执行待测试用例,获得待测试用例对应的接口的测试结果的步骤,具体可以包括以下步骤:执行模块调用协程函数执行异步接口测试用例,获得异步接口测试用例对应的异步接口的测试结果。
在程序调用中,当一个异步过程调用发出后,调用者不能立刻得到结果,负责处理这个调用的对象会在实际完成后,通过状态、通知或回调来通知调用者。以Unity平台为例,可以设置测试用例的函数返回类型为IEnumerator,使用Unity协程功能来实现异步接口的测试,本实施例利用了Unity平台和C#语言的基础能力,能够支持异步接口测试,满足接口测试的异步测试需求,适用于Unity自身自持的所有平台设备,如Android/iOS/PC/Mac等设备。
在一个实施例中,待测试用例中包括预期结果;执行模块执行待测试用例,获得待测试用例对应的接口的测试结果的步骤,具体可以包括以下步骤:执行模块执行待测试用例,获得待测试用例的执行结果,并将待测试用例的执行结果与预期结果进行对比分析,获得待测试用例对应的接口的测试结果。
测试框架文件定义的测试用例需继承的指定类中,封装了断言集合,测试人员在编写测试用例时可直接调用指定类中的断言语句。例如,断言语句EXPECT_TRUE(result,string),表示预期结果为TRUE,result表示待测试用例的实际执行结果,string表示设定的执行失败信息,如可以设为“Error:result is not true!”,将待测试用例的执行结果与预期结果进行对比分析,若执行结果与预期结果相符,则该待测试用例对应的接口的测试结果为测试通过;若执行结果与预期结果不相符,则该待测试用例对应的接口的测试结果为测试失败,并将设定的执行失败信息记录在测试报告中。
本实施例中,通过断言机制将待测试用例的执行结果与预期结果进行对比分析,获得待测试用例对应的接口的测试结果,测试人员在编写测试用例时可直接调用测试框架文件定义的测试用例需继承的指定类中封装的断言语句,无需自行编写相应的判断逻辑代码,减小测试用例的编写难度。
在一个实施例中,执行模块执行待测试用例,获得待测试用例对应的接口的测试结果的步骤,具体可以包括以下步骤:按照各待测试用例的类别名称,对待测试用例进行分组,获得至少一个测试用例组;分组执行各测试用例组中的待测试用例,获得各待测试用例对应的接口的测试结果。
举例来说,假设需要执行的待测试用例包括20个,分别用a1~a10、b1~b10表示,其中,a1~a10属于同一测试用例类A1,b1~b10属于同一测试用例类A2,则在执行前,将这20个待测试用例分为两个测试用例组A1和A2,测试用例组A1中包括测试用例a1~a10,测试用例组A2中包括测试用例b1~b10,执行时可以先执行测试用例组A1中的各测试用例a1~a10,获得a1~a10各自对应的接口的测试结果,待a1~a10执行完毕,再执行测试用例组A2中的各测试用例b1~b10,获得b1~b10各自对应的接口的测试结果。
本实施例中,将属于同一测试用例类的待测试用例归为一组,并分组执行各待测试用例,可以避免重复执行同一测试用例类中各待测试用例的相同执行步骤,例如初始化和反初始化等操作,从而提高测试效率。
在一个实施例中,分组执行各测试用例组中的待测试用例,获得各待测试用例对应的接口测试结果的步骤,具体可以包括以下步骤:对任意一个测试用例组,执行下述过程:在测试用例组中的第一个待测试用例执行之前,进行该测试用例组对应的初始化操作;在测试用例组中的最后一个待测试用例执行之后,进行该测试用例组对应的反初始化操作;在测试用例组中的每个待测试用例执行之前,进行该待测试用例对应的前置操作;在测试用例组中的每个待测试用例执行之后,进行该待测试用例对应的后置操作。
测试框架文件定义的测试用例需继承的指定类中,封装了事件机制,测试人员在编写测试用例时可直接调用指定类中的事件机制。如图2所示,提供了一个实施例中事件机制的流程示意图,其中包括TestSuite级别和TestCase级别的事件,TestSuite对应测试用例组,TestCase对应测试用例,每个TestSuite中包括多个TestCase。TestSuite级别事件中,SetUpTestSuite对应测试用例组执行前的准备工作(如初始化操作),会在测试用例组中的第一个待测试用例执行前运行;TearDownTestSuite对应测试用例组执行后的清理工作(如反初始化操作),会在测试用例组中的最后一个待测试用例执行后运行。TestCase级别事件中,SetUpTestCase对应待测试用例执行前的准备工作(如修改测试环境),会在测试用例组中的每个待测试用例执行前运行;TearDownTestCase对应待测试用例执行后的清理工作(如恢复测试环境),会在测试用例组中的每个待测试用例执行后运行。
本实施例中,通过事件机制分组执行各测试用例组中的待测试用例,获得各待测试用例对应的接口的测试结果,测试人员在编写测试用例时可直接调用测试框架文件定义的测试用例需继承的指定类中封装的事件机制,无需自行编写相应的事件机制逻辑代码,减小测试用例的编写难度。
在一个实施例中,测试结束后,将测试结果保存在测试报告文件中。具体地,测试报告文件中可以包括:测试过程中执行过的用例总数量、测试通过的用例数量、测试失败的用例数量、测试总时长以及每条测试用例的具体执行信息。据此,测试人员通过查看测试报告文件,可以快速获得本次自动化测试结果的详细信息。
应该理解的是,虽然图1-2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-2中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图3所示,提供了一种接口测试框架300,该框架可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该框架中定义了测试用例需继承的指定类340,还包括:配置模块310、搜索模块320和执行模块330,其中:
配置模块310,用于配置用例参数。
搜索模块320,用于根据用例参数在目标测试用例中进行搜索,获得与用例参数匹配的待测试用例,各目标测试用例均继承指定类。
执行模块330,用于响应于测试指令,调用搜索模块获得与用例参数匹配的待测试用例,并执行待测试用例,确定待测试用例对应的接口的测试结果。
在一个实施例中,用例参数包括:类别名称和测试类型;搜索模块320在根据用例参数在目标测试用例中进行搜索,获得与用例参数匹配的待测试用例时,具体用于:根据类别名称在目标测试用例中进行搜索,获得与类别名称匹配的第一测试用例;根据测试类型在第一测试用例中进行搜索,获得与测试类型匹配的测试用例,作为待测试用例。
在一个实施例中,当配置的类别名称为空时,搜索模块320在根据类别名称在目标测试用例中进行搜索,获得与类别名称匹配的第一测试用例时,具体用于:将所有的目标测试用例作为第一测试用例。
在一个实施例中,当配置的测试类型为空时,搜索模块320在根据测试类型在第一测试用例中进行搜索,获得与测试类型匹配的测试用例,作为待测试用例时,具体用于:将所有的第一测试用例作为待测试用例。
在一个实施例中,测试类型包括随机测试;搜索模块320在根据测试类型在第一测试用例中进行搜索,获得与测试类型匹配的测试用例,作为待测试用例时,具体用于:在第一测试用例中进行搜索,获得测试类型为随机测试的第二测试用例;从第二测试用例中随机选取测试用例,作为待测试用例。
在一个实施例中,搜索模块320在从第二测试用例中随机选取测试用例,作为待测试用例时,具体用于:根据第二测试用例生成测试用例列表,测试用例列表中的各第二测试用例具有相应的编号;基于测试用例列表中的编号生成随机数;从测试用例列表中获取与随机数匹配的编号对应的测试用例,作为待测试用例。
在一个实施例中,待测试用例包括异步接口测试用例;执行模块330在执行待测试用例,获得待测试用例对应的接口的测试结果时,具体用于:调用协程函数执行异步接口测试用例,获得异步接口测试用例对应的异步接口的测试结果。
在一个实施例中,待测试用例中包括预期结果;执行模块330在执行待测试用例,获得待测试用例对应的接口的测试结果时,具体用于:执行待测试用例,获得待测试用例的执行结果,并将待测试用例的执行结果与预期结果进行对比分析,获得待测试用例对应的接口的测试结果。
在一个实施例中,执行模块330在执行待测试用例,获得待测试用例对应的接口的测试结果时,具体用于:按照各待测试用例的类别名称,对待测试用例进行分组,获得至少一个测试用例组;分组执行各测试用例组中的待测试用例,获得各待测试用例对应的接口的测试结果。
在一个实施例中,执行模块330在分组执行各测试用例组中的待测试用例,获得各待测试用例对应的接口的测试结果时,具体用于:对任意一个测试用例组,执行下述过程:在测试用例组中的第一个待测试用例执行之前,进行该测试用例组对应的初始化操作;在测试用例组中的最后一个待测试用例执行之后,进行该测试用例组对应的反初始化操作;在测试用例组中的每个待测试用例执行之前,进行该待测试用例对应的前置操作;在测试用例组中的每个待测试用例执行之后,进行该待测试用例对应的后置操作。
关于接口测试框架的具体限定可以参见上文中对于接口测试方法的限定,在此不再赘述。上述接口测试框架中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种接口测试方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种接口测试方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图4或图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要理解的是,上述实施例中的术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种接口测试方法,其特征在于,所述方法包括:
调用测试框架文件定义的配置模块配置用例参数,所述测试框架文件还定义了搜索模块、执行模块以及测试用例需继承的指定类;
响应于测试指令,调用所述执行模块,通过所述执行模块调用所述搜索模块,所述搜索模块根据所述用例参数在目标测试用例中进行搜索,获得与所述用例参数匹配的待测试用例,各所述目标测试用例均继承所述指定类,所述执行模块执行所述待测试用例,获得所述待测试用例对应的接口的测试结果。
2.根据权利要求1所述的方法,其特征在于,所述用例参数包括:类别名称和测试类型;所述搜索模块根据所述用例参数在目标测试用例中进行搜索,获得与所述用例参数匹配的待测试用例,包括:
所述搜索模块根据所述类别名称在所述目标测试用例中进行搜索,获得与所述类别名称匹配的第一测试用例;
所述搜索模块根据所述测试类型在所述第一测试用例中进行搜索,获得与所述测试类型匹配的测试用例,作为待测试用例。
3.根据权利要求2所述的方法,其特征在于,包括下述各项中的至少一项:
第一项:当配置的所述类别名称为空时,所述搜索模块根据所述类别名称在所述目标测试用例中进行搜索,获得与所述类别名称匹配的第一测试用例,包括:
所述搜索模块将所有的所述目标测试用例作为第一测试用例;
第二项:当配置的所述测试类型为空时,所述搜索模块根据所述测试类型在所述第一测试用例中进行搜索,获得与所述测试类型匹配的测试用例,作为待测试用例,包括:
所述搜索模块将所有的所述第一测试用例作为待测试用例。
4.根据权利要求2所述的方法,其特征在于,所述测试类型包括随机测试;所述搜索模块根据所述测试类型在所述第一测试用例中进行搜索,获得与所述测试类型匹配的测试用例,作为待测试用例,包括:
所述搜索模块在所述第一测试用例中进行搜索,获得测试类型为所述随机测试的第二测试用例;
从所述第二测试用例中随机选取测试用例,作为待测试用例。
5.根据权利要求4所述的方法,其特征在于,从所述第二测试用例中随机选取测试用例,作为待测试用例,包括:
根据所述第二测试用例生成测试用例列表,所述测试用例列表中的各第二测试用例具有相应的编号;
基于所述测试用例列表中的编号生成随机数;
从所述测试用例列表中获取与所述随机数匹配的编号对应的测试用例,作为待测试用例。
6.根据权利要求1所述的方法,其特征在于,所述待测试用例包括异步接口测试用例;所述执行模块执行所述待测试用例,获得所述待测试用例对应的接口的测试结果,包括:
所述执行模块调用协程函数执行所述异步接口测试用例,获得所述异步接口测试用例对应的异步接口的测试结果。
7.根据权利要求1所述的方法,其特征在于,所述执行模块执行所述待测试用例,获得所述待测试用例对应的接口的测试结果,包括:
按照各所述待测试用例的类别名称,对所述待测试用例进行分组,获得至少一个测试用例组;
分组执行各所述测试用例组中的待测试用例,获得各所述待测试用例对应的接口的测试结果;
分组执行各所述测试用例组中的待测试用例,包括:对任意一个测试用例组,执行下述过程:
在测试用例组中的第一个待测试用例执行之前,进行该测试用例组对应的初始化操作;
在测试用例组中的最后一个待测试用例执行之后,进行该测试用例组对应的反初始化操作;
在测试用例组中的每个待测试用例执行之前,进行该待测试用例对应的前置操作;
在测试用例组中的每个待测试用例执行之后,进行该待测试用例对应的后置操作。
8.一种接口测试框架,其特征在于,所述框架中定义了测试用例需继承的指定类,还包括:
配置模块,用于配置用例参数;
搜索模块,用于根据所述用例参数在目标测试用例中进行搜索,获得与所述用例参数匹配的待测试用例,各所述目标测试用例均继承所述指定类;
执行模块,用于响应于测试指令,调用所述搜索模块获得与所述用例参数匹配的待测试用例,并执行所述待测试用例,获得所述待测试用例对应的接口的测试结果。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010550117.2A CN113806209A (zh) | 2020-06-16 | 2020-06-16 | 接口测试方法、框架、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010550117.2A CN113806209A (zh) | 2020-06-16 | 2020-06-16 | 接口测试方法、框架、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113806209A true CN113806209A (zh) | 2021-12-17 |
Family
ID=78892587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010550117.2A Pending CN113806209A (zh) | 2020-06-16 | 2020-06-16 | 接口测试方法、框架、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113806209A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114328209A (zh) * | 2021-12-24 | 2022-04-12 | 苏州浪潮智能科技有限公司 | 一种自动化测试插件生成方法、装置、设备及存储介质 |
CN114740829A (zh) * | 2022-05-07 | 2022-07-12 | 镁佳(北京)科技有限公司 | 一种域控制器测试系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106951364A (zh) * | 2017-02-08 | 2017-07-14 | 深圳国泰安教育技术股份有限公司 | 测试方法及装置 |
CN109408357A (zh) * | 2017-12-04 | 2019-03-01 | 深圳市珍爱网信息技术有限公司 | 一种接口自动化测试方法及装置 |
CN109739704A (zh) * | 2018-12-28 | 2019-05-10 | 北京奇虎科技有限公司 | 一种接口测试方法、服务端及计算机可读存储介质 |
CN109840210A (zh) * | 2019-01-30 | 2019-06-04 | 郑州云海信息技术有限公司 | 一种测试方法、装置及电子设备 |
-
2020
- 2020-06-16 CN CN202010550117.2A patent/CN113806209A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106951364A (zh) * | 2017-02-08 | 2017-07-14 | 深圳国泰安教育技术股份有限公司 | 测试方法及装置 |
CN109408357A (zh) * | 2017-12-04 | 2019-03-01 | 深圳市珍爱网信息技术有限公司 | 一种接口自动化测试方法及装置 |
CN109739704A (zh) * | 2018-12-28 | 2019-05-10 | 北京奇虎科技有限公司 | 一种接口测试方法、服务端及计算机可读存储介质 |
CN109840210A (zh) * | 2019-01-30 | 2019-06-04 | 郑州云海信息技术有限公司 | 一种测试方法、装置及电子设备 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114328209A (zh) * | 2021-12-24 | 2022-04-12 | 苏州浪潮智能科技有限公司 | 一种自动化测试插件生成方法、装置、设备及存储介质 |
CN114328209B (zh) * | 2021-12-24 | 2023-11-03 | 苏州浪潮智能科技有限公司 | 一种自动化测试插件生成方法、装置、设备及存储介质 |
CN114740829A (zh) * | 2022-05-07 | 2022-07-12 | 镁佳(北京)科技有限公司 | 一种域控制器测试系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109302522B (zh) | 测试方法、装置以及计算机系统和介质 | |
CN108287694B (zh) | 应用程序构建方法、系统、计算机设备和存储介质 | |
CN112286779B (zh) | 测试任务处理方法、装置、存储介质和计算机设备 | |
CN112162753B (zh) | 软件部署方法、装置、计算机设备和存储介质 | |
US8037360B2 (en) | Software testing framework for multiple operating system, hardware, and software configurations | |
CN106339312B (zh) | Api测试方法和系统 | |
US8677327B2 (en) | Service testing method and service testing system | |
KR102341154B1 (ko) | 모바일 장치들의 원격 구성을 허용하기 위해 모바일 장치들 상에 설치되는 고속 어플리케이션 | |
CN109408357A (zh) | 一种接口自动化测试方法及装置 | |
CN109783350A (zh) | 接口测试方法、装置及计算机可读存储介质 | |
WO2019227708A1 (zh) | 测试案例的在线调试装置、方法及计算机可读存储介质 | |
CN111124919A (zh) | 一种用户界面的测试方法、装置、设备及存储介质 | |
CN110928777B (zh) | 测试用例的处理方法、装置、设备及存储介质 | |
CN112100078A (zh) | 一种生成接口测试用例的方法、装置及设备 | |
CN113806209A (zh) | 接口测试方法、框架、计算机设备和存储介质 | |
US10846206B2 (en) | Adaptive software testing | |
CN103049374B (zh) | 一种自动化测试的方法及装置 | |
CN109388420A (zh) | 应用升级测试方法、装置、计算机设备及存储介质 | |
CN109086198B (zh) | 数据库的测试方法、装置及存储介质 | |
CN111767218B (zh) | 一种用于持续集成的自动化测试方法、设备及存储介质 | |
CN114143235A (zh) | Nfv自动测试方法、装置、设备及存储介质 | |
CN110471828B (zh) | 一种操作系统测试方法、装置及其设备 | |
CN112965905B (zh) | 数据测试方法、装置、设备及存储介质 | |
CN109446105A (zh) | Web应用程序测试方法、装置、可读介质及电子设备 | |
CN111858315B (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 |