掌桥专利:专业的专利平台
掌桥专利
首页

接口测试方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 09:54:18


接口测试方法、装置、电子设备及存储介质

技术领域

本发明属于计算机技术领域,尤其涉及一种接口测试方法、装置、电子设备及存储介质。

背景技术

软件项目迭代频繁,需要经常变更已有的接口来完成相应的功能,一个接口的变更,需要调整所有调用该接口的用例的逻辑,特别是频繁的版本迭代,造成了繁重的接口用例维护工作,这也是接口测试的主要痛点之一。在多人协作的项目中,接口测试用例往往由多人协作完成,但往往项目中各个功能模块的业务经常有关联,所以会存在用例编写过程中互相调用的情况,对已有的用例进行修改,经常会影响到调用该用例的人员相关联的用例受影响。

主流的接口测试脚本通常设计为以项目为维度编写测试用例,多人协作时,各自创建一个文件编写各自负责模块内的测试用例,与他人业务重叠的部分,为了避免代码冗余,则直接调用他人的用例,来作为用例的前置或者后置步骤,版本迭代时,手动修改所有关联的用例,对于特别复杂的修改,有时候考虑到维护成本太大,则直接放弃掉一部分用例,重新编写。

同时,主流的接口测试脚本在编写时,对于同一个接口常常会有多处调用,在接口在后续的版本迭代中,一旦发送变化,需要对所有调用该接口的地方进行调整,不乏还有一些需要调整业务逻辑的地方,难于维护甚至为了避免高昂的维护成本,直接舍弃一部分用例;并且,主流的接口测试脚本在编写时,多人协作常常各自为战,提取本人用例脚本的公共部分作为底层调用,当编写用例需要调用他人的底层脚本时,会出现相互调用的情况,一旦有人变更自己负责的底层代码,将会影响到所有调用这份代码的用例,可能导致无法执行,或者报错;同时,每个执行用例都增加鉴权获取的操作,增加了用例执行的时间且无法并发的执行其他用例,再者现有的接口测试脚本,在处理复杂业务逻辑,封装长流程业务时,用例编写步骤复杂,编写效率低。

发明内容

本发明实施例的目的在于提供一种接口测试方法,旨在解决现有的接口测试方法在处理复杂业务逻辑,封装长流程业务时,编写效率低的问题。

本发明实施例是这样实现的,一种接口测试方法,其特征在于,所述方法包括以下步骤:

将接口测试用例按基础层、多个接口层、多个模板层以及多个用例层呈树杈式封装,其中,所述基础层和多个所述接口层为继承关系,多个所述用例层相互独立;

通过所述用例层执行用例启动;

调用所述模板层的检测方法;

调用所述接口层的方法;

调用所述基础层的请求方法和鉴权;

遍历执行所述模板层的检测方法直至多个所述用例层的步骤全部执行完毕。

更进一步地,将接口测试用例按基础层、多个接口层、多个模板层以及多个用例层呈树杈式封装的方法包括以下步骤:

将所有所述接口测试用例的共用方法封装成一个类,以形成所述基础层;

将所述基础层中的所有的功能模块对应的所有接口分别封装成一个类,以形成多个所述接口层;

将各个功能模块所有相关业务封装成一个类,以形成多个模板层;

根据多个所述接口层生成对应的单元测试框架,以形成多个所述用例层。

更进一步地,所述将所有用例的共用方法封装成一个类的方法包括以下步骤:

将接口测试脚本的所有请求、鉴权以及数据库连接方法封装成一类。

更进一步地,所所述将所述基础层中的所有的功能模块对应的所有接口分别封装成一个类的方法包括以下步骤:

将所述基础层内所有的共用方法按功能划分为多个功能模块;

将每一所述功能模块内的所述共用方法对应的所有接口的请求过程、处理请求参数、设置断言、回参结果解析和验证进行封装。

更进一步地,所述调用所述基础层的鉴权的步骤之前,所述方法还包括以下步骤:

初始化所有所述接口层内的类,以唤起所述基础层的鉴权。

本发明另一实施例的目的还在于提供一种接口测试装置,包括:

接口测试工具,所述接口测试工具将将接口测试用例按基础层、多个接口层、多个模板层以及多个用例层呈树杈式封装;

用例启动模块,用于通过所述用例层执行用例启动;

检测方法调用模块,用于调用所述模板层的检测方法;

接口层方法调用模块,用于调用所述接口层的方法;

鉴权调用模块,用于调用所述基础层的请求方法和鉴权;

测试模块,用于遍历执行所述模板层的检测方法直至多个所述用例层的步骤全部执行完毕。

更进一步地,所述装置包括:

第一封装模块,用于将所有所述接口测试用例的共用方法封装成一个类,以形成所述基础层;

第二封装模块,用于将所述基础层中的所有的功能模块对应的所有接口分别封装成一个类,以形成多个所述接口层;

第三封装模块,用于将各个功能模块所有相关业务封装成一个类,以形成多个模板层;

第四封装模块,用于根据多个所述接口层生成对应的单元测试框架,以形成多个所述用例层。

更进一步地,所述装置还包括:

功能划分子模块,用于将所述基础层内所有的共用方法按功能划分为多个功能模块;

封装子模块,用于将每一所述功能模块内的所述共用方法对应的所有接口的请求过程、处理请求参数、设置断言、回参结果解析和验证进行封装。

本发明另一实施例还提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述中任一项所述的接口测试方法中的步骤。

本发明另一实施例还提供还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述中任一项所述的接口测试方法中的步骤。

本发明的有益效果是:将接口测试用例按基础层、多个接口层、多个模板层以及多个用例层呈树杈式封装,其中,所述基础层和多个所述接口层为继承关系,多个所述用例层相互独立;通过所述用例层执行用例启动;调用所述模板层的检测方法;调用所述接口层的方法;调用所述基础层的请求方法和鉴权;遍历执行所述模板层的检测方法直至多个所述用例层的步骤全部执行完毕,其中,鉴权的唯一入口在基础层,保障了用例编写的过程无需关注底层鉴权,也保障了鉴权方法维护的便捷性,一旦鉴权方法有变更,只需要变更基础层唯一的鉴权方法即可,同时,每个接口的任意变更都只需要在接口层的方法中做对应的变更,用例层无任何感知,也无需做任何调整,大大的减少了接口变更导致的用例维护的工作量,其中,模板层按功能模块划分,灵活变动的模块,把各个功能模块所有相关业务封装成一个类,可简化用例编写步骤。

附图说明

图1是本发明实施例提供的接口测试方法的流程图;

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

图3是本发明实施例提供的接口测试装置的模块示意图;

图4是本发明实施例提供的接口测试装置的又一模块示意图;

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

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。

本发明通过将接口测试用例封装成三层,其中所述基础层和接口层为继承关系,多个所述用例层相互独立,解决了底层代码改动时用例调整工作量大的问题,通过将鉴权的唯一入口在基础层,保障了用例编写的过程无需关注底层鉴权,也保障了鉴权方法维护的便捷性;通过用例层的单元测试框架,实现自动检测接口,通过设置基础层,专门处理复杂业务逻辑和封装长流程业务,简化了用例编写步骤。

本发明第一实施例提供的接口测试方法,请参阅图1,所述方法包括以下步骤步骤S01至步骤S06:

步骤S01,将接口测试用例按基础层、多个接口层、多个模板层以及多个用例层呈树杈式封装,其中,所述基础层和多个所述接口层为继承关系,模板层之间可以相互独立,也可以互相调用,多个所述用例层相互独立。其中,基础层的鉴权为基础方法,所有的用例执行前都必须要调用,鉴权的唯一入口在基础层,保障了用例编写的过程无需关注底层鉴权,也保障了鉴权方法维护的便捷性,一旦鉴权方法有变更,只需要变更基础层的唯一的鉴权方法即可。其中,鉴权(authentication)是指验证用户是否拥有访问系统的权利。

步骤S02,通过所述用例层执行用例启动,具体的,用例层用例采用继承unittest(单元测试)框架编写,可以用unittest框架自带的启动api启动所有用例的执行,其中,api(Application Programming Interface,应用程序接口)是一些预先定义的函数,或指软件系统不同组成部分衔接的约定,用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问源码,或理解内部工作机制的细节,用例层可以调用模板层已经封装的业务模块,或者直接调用接口层的单接口完成需要操作的步骤。

步骤S03,调用所述模板层的检测方法,模板层封装的都是较为复杂的业务逻辑,或者涉及流程较长的前置业务操作,模板层涉及业务的全部接口调用都是基于接口,所以调用模板层后,后续的继续会调用接口层的方法。

步骤S04,调用所述接口层的方法。由于用例层和模板层的所有业务的根本都是调用接口层的方法实现的,并且用例层和模板层中所有相同的业务都会调用同一个接口层的方法,而每个接口层的方法都只会对应一个接口,这就统一了接口的唯一入口,每个接口的任意变更都只需要在接口层的方法中做对应的变更,用例层和模板层无任何感知,也无需做任何调整,大大的减少了接口变更导致的用例维护的工作量。

步骤S05,调用所述基础层的请求方法和鉴权;所有的接口层的请求本质都是调用的基础层的请求方法和鉴权,基础层为鉴权和请求的唯一入口,保障了用例编写的过程无需关注底层鉴权,也保障了鉴权方法维护的便捷性,请求封装则可以封装各种类型的请求实现,让接口编写时,无需关注底层接口请求技术实现的方案。

步骤S06,遍历执行所述模板层的检测方法直至多个所述用例层的步骤全部执行完毕。参数的返回和校验是用例层和模板层调用接口层的方式时,通过参数传入,在接口层的方法中,根据传入的参数做对应的校验,比如传入的参数是200,则验证接口是否返回的成功回参,传入的参数是500,则校验接口是否返回的失败回参,亦可通过链接数据库,拼装sql语句进行数据库查询验证,当用例层的步骤全部执行完毕则结束用例,或者当步骤执行时,断言监测到错误,也会跳出用例,标记失败,并结束用例执行。

通过上述接口测试方法,将接口测试用例按基础层、多个接口层、多个模板层以及多个用例层呈树杈式封装,其中,所述基础层和多个所述接口层为继承关系,多个所述用例层相互独立;通过所述用例层执行用例启动;调用所述模板层的检测方法;调用所述接口层的方法;调用所述基础层的请求方法和鉴权;遍历执行所述模板层的检测方法直至多个所述用例层的步骤全部执行完毕,其中,鉴权的唯一入口在基础层,保障了用例编写的过程无需关注底层鉴权,也保障了鉴权方法维护的便捷性,一旦鉴权方法有变更,只需要变更基础层唯一的鉴权方法即可,同时,每个接口的任意变更都只需要在接口层的方法中做对应的变更,用例层无任何感知,也无需做任何调整,大大的减少了接口变更导致的用例维护的工作量,其中,模板层按功能模块划分,灵活变动的模块,把各个功能模块所有相关业务封装成一个类,可简化用例编写步骤。

本发明的另一个实施例中,步骤S01包括以下步骤:

步骤S011,将所有接口测试用例的共用方法封装成一个类,以形成基础层;具体的,将所有用例的共用方法封装成一个类的方法包括:将接口测试脚本的所有请求(get/post/delete)、鉴权以及数据库连接方法封装成一类,有且只有一个基础层文件,基础层存在的作用主要是统一鉴权入口,统一接口请求入口,对所有请求进行统一的逻辑处理。

步骤S012,将基础层中的所有的功能模块对应的所有接口分别封装成一个类,以形成多个接口层;具体的,将所述基础层中的所有的功能模块对应的所有接口分别封装成一个类的方法包括以下步骤:将基础层内所有的共用方法按功能划分为多个功能模块;将每一功能模块内的所述共用方法对应的所有接口的请求过程、处理请求参数、设置断言、回参结果解析和验证进行封装。其中,每个接口对应一个方法,方法里面将接口的请求过程,处理请求参数,设置断言以及回参结果解析和验证进行封装,接口层相互独立,也可以互相调用,接口层的文件按功能模块划分可以适当增减。

步骤S013,将各个功能模块所有相关业务封装成一个类,以形成多个模板层;

步骤S014,根据多个接口层生成对应的单元测试框架,以形成多个用例层。用例层是继承unittest框架,便于对用例进行统计执行和生产测试报告,封装专注于各种场景的测试以及复杂逻辑的测试,只需要引入接口层的文件,调用相关方法实现业务,无需关注底层接口调用。

在本发明的另一实施例中,所述调用所述基础层的鉴权的步骤(步骤S03)之前,方法还包括以下步骤:

步骤S07,初始化所有接口层内的类,以唤起基础层的鉴权。接口层初始化的方式主要是为了唤起基础层的鉴权,此处也可根据实际常用场景增加其他的功能,初始化只执行一次。

本发明另一实施例中,提供了一种接口测试装置,请参阅图3,所述装置包括:

接口测试工具10,所述接口测试工具将将接口测试用例按基础层、多个接口层、多个模板层以及多个用例层呈树杈式封装;

用例启动模块20,用于通过用例层执行用例启动;

检测方法调用模块30,用于调用所述模板层的检测方法;

接口层方法调用模块40,用于调用所述接口层的方法;

鉴权调用模块50,用于调用所述基础层的请求方法和鉴权;

测试模块60,用于遍历执行所述模板层的检测方法直至多个所述用例层的步骤全部执行完毕。

通过上述接口测试装置,通过接口测试工具10将接口测试用例按基础层、多个接口层、多个模板层以及多个用例层呈树杈式封装,其中,所述基础层和多个所述接口层为继承关系,多个所述用例层相互独立;通过用例启动模块20对所述用例层执行用例启动;通过检测方法调用模块30调用所述模板层的检测方法;通过接口层方法调用模块40调用所述接口层的方法;通过鉴权调用模块50调用所述基础层的请求方法和鉴权;通过测试模块60遍历执行所述模板层的检测方法直至多个所述用例层的步骤全部执行完毕,其中,鉴权的唯一入口在基础层,保障了用例编写的过程无需关注底层鉴权,也保障了鉴权方法维护的便捷性,一旦鉴权方法有变更,只需要变更基础层唯一的鉴权方法即可,同时,每个接口的任意变更都只需要在接口层的方法中做对应的变更,用例层无任何感知,也无需做任何调整,大大的减少了接口变更导致的用例维护的工作量,其中,模板层按功能模块划分,灵活变动的模块,把各个功能模块所有相关业务封装成一个类,可简化用例编写步骤。

本发明另一实施例中,请参阅图4,所述接口测试工具10包括:

第一封装模块11,用于将所有接口测试用例的共用方法封装成一个类,以形成基础层,以将接口测试脚本的所有请求(get/post/delete)、鉴权以及数据库连接方法封装成一类。

第二封装模块12,用于将基础层中的所有的功能模块对应的所有接口分别封装成一个类,以形成多个接口层。

第三封装模块13,用于将各个功能模块所有相关业务封装成一个类,以形成多个模板层;

第四封装模块14,用于根据多个接口层生成对应的单元测试框架,以形成多个用例层,以对用例进行统计执行和生产测试报告,封装专注于各种场景的测试以及复杂逻辑的测试,只需要引入接口层的文件,调用相关方法实现业务,无需关注底层接口调用。

本发明另一实施例中,所述装置还包括:

功能划分子模块121,用于将基础层内所有的共用方法按功能划分为多个功能模块;

封装子模块122,用于将每一功能模块内的共用方法对应的所有接口的请求过程、处理请求参数、设置断言、回参结果解析和验证进行封装。以将每一功能模块内的所述共用方法对应的所有接口的请求过程、处理请求参数、设置断言、回参结果解析和验证进行封装。其中,每个接口对应一个方法,方法里面将接口的请求过程,处理请求参数,设置断言以及回参结果解析和验证进行封装,接口层相互独立,也可以互相调用,接口层的文件按功能模块划分可以适当增减

为解决上述技术问题,本申请实施例还提供一种电子设备,用于接口测试方法的处理。具体请参阅图5,图5为本实施例电子设备基本结构框图,如图5所示。

电子设备14包括通过系统总线相互通信连接存储器1401、处理器1402、网络接口1403,以及存储在存储器1401上并可在所述处理器1402上运行的计算机程序。需要指出的是,图中仅示出了具有组件1401-1403的电子设备14,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的电子设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。

电子设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。电子设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。

存储器1401至少包括一种类型的可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器1401可以是电子设备14的内部存储单元,例如该电子设备14的硬盘或内存。在另一些实施例中,存储器1401也可以是电子设备14的外部存储设备,例如该电子设备14上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器1401还可以既包括电子设备14的内部存储单元也包括其外部存储设备。本实施例中,存储器1401通常用于存储安装于电子设备14的操作系统和各类应用软件,例如接口测试方法的程序代码等。此外,存储器1401还可以用于暂时地存储已经输出或者将要输出的各类数据。

处理器1402在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器1402通常用于控制电子设备14的总体操作。本实施例中,处理器1402用于运行存储器1401中存储的程序代码或者处理数据,例如运行上述接口测试方法的程序代码。

网络接口1403可包括无线网络接口或有线网络接口,该网络接口1403通常用于在电子设备14与其他电子设备之间建立通信连接。

本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,上述计算机可读存储介质存储有接口测试方法程序,上述接口测试方法程序可被至少一个处理器执行,以使至少一个处理器执行如上述的接口测试方法的步骤。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

相关技术
  • 接口测试方法、接口测试装置、电子设备及存储介质
  • 线上接口的测试方法、电子设备、存储介质及装置
技术分类

06120112345894