一种接口的自动测试方法和装置与流程

文档序号:20163775发布日期:2020-03-24 21:16阅读:166来源:国知局
一种接口的自动测试方法和装置与流程

本发明涉及通信接口测试技术领域,具体而言,涉及一种自动提供接口文档的测试方法和装置。



背景技术:

软件系统的接口测试往往需要耗费软件开发人员的很多时间和精力,另外,现有的一些接口文档的自动生成工具,要求开发人员在代码的注释中加入大量注释文档,然后再将注释提取出来,这样不仅增加了开发人员在接口开发过程中的工作量,同时这样会导致代码中混入了大量的冗余的接口注释代码,影响代码的可读性。

另一方面,在软件开发过程中,开发人员不仅要写出接口代码,还要写出完善的接口文档,在原有的接口开发管理中,需要有大量的接口文件编辑工作,开发人员每个接口都要按照规范编写接口文档,花费了开发人员的很多宝贵开发时间。这种人工手动编写接口文档的方式存在很大的弊端,一旦后端接口修改,相关的接口定义文档忘记修改,则会误导前端开发人员无法实现正确的接口。尤其在是快速迭代、需求频繁修改的项目中,改了代码还要同步改文档,任何地方改错了或改漏了都可能产生前后端实现的不一致,会导致接口对接失败的问题,需要重新修改前端或后端代码。

第三,在软件开发过程中,开发人员还需要花很多时间来调试接口,由于接口数量多,涉及的参数也多,往往很容易出错。

综上所述,克服接口的快速、批量、自动测试问题亟待解决。



技术实现要素:

有鉴于此,本发明的目的在于提供一种通用的自动化的接口测试方法和装置,能够解决接口文档的编写和接口测试费时费力,工作效率低的问题。以实现软件系统与各厂家设备联调的高效对接,节省软件开发人员的时间,自动生成接口文档。

本发明针对的接口是软件api接口或者符合rest技术要求的接口,rest是一种组织web服务的架构,使用客户/服务器模型,客户和服务器之间通过一个统一的接口来互相通讯。

为解决上述问题,本发明设想基于统一接口服务数据格式,制定统一接口规范的要求,将规范的接口服务作为参照标准,转化生成接口文档,再对被测试系统的接口进行请求服务响应,对比响应结果是否符合参照标准,可以获得被测试系统的接口数据情况,出具测试报告。

第一方面,本发明实施例提供了一种接口的自动测试方法,所述方法包括:

s1)获取被测试系统的所有接口配置文件,对所述文件进行语法合规性检查,经检查合规后将所述合规的接口配置文件保存,所述的接口配置文件用于描述测试系统的接口描述信息,根据接口配置文件规范制作,包括接口标识、接口操作类型、接口参数以及返回响应结果数据的类型,所述的接口标识具有唯一性;所述的接口操作类型是对接口的操作类型;

s2)获取所述合规的接口配置文件,解析所述接口配置文件,获取其中的接口描述信息中的各项具体内容;根据所述的接口描述信息生成接口文档;

s3)根据接口描述信息中的接口标识、接口参数、接口操作类型,向被测试系统发送接口服务请求;

s4)被测试系统收到接口服务请求后响应,返回接口响应结果;

s5)对被测试系统接口响应结果数据进行解析,并验证数据解析结果的数据合法性;

s6)判断s5)接口响应结果数据是否符合s2)得到的接口描述信息中的返回响应结果数据的类型,标记不符合的数据项;生成接口测试报告。

结合第一方面,本发明实施例提供了第一方面第一种可能的实施方式,之后还包括,s7)根据用户需求以图表方式显示合规的接口描述信息、被测试系统接口响应结果以及接口测试报告。

结合第一方面,本发明实施例提供了第一方面第二种可能的实施方式,其中,所述的s1)中获取接口配置文件的过程,包括自动或手动两种方式;自动方式,从实际的已测试正确的系统的已有接口响应处理代码中提取接口描述信息,自动生成接口配置文件;手动方式,根据接口配置文件规范的数据格式要求,编写接口配置文件。

结合第一方面,本发明实施例提供了第一方面第三种可能的实施方式,其中,所述接口配置文件遵循yaml文件格式。

结合第一方面,本发明实施例提供了第一方面第四种可能的实施方式,其中,所述的接口响应结果数据遵循json文件格式。

第二方面,本发明实施例提供了一种自动提供接口服务的接口模拟装置,所述装置包括:

配置解析模块,用于获取所述合规的接口配置文件,解析所述接口配置文件,获取其中的接口描述信息中的各项具体内容;根据所述的接口描述信息生成接口文档;

测试模块,用于根据配置解析模块解析出来的接口描述信息中的接口标识、接口参数、接口操作类型,向被测试系统发送接口服务请求;接收接口响应结果;

响应解析模块,对测试模块获得的被测试系统接口响应结果进行解析,并验证数据解析结果的数据合法性;

对比判断模块,判断经响应解析模块验证合法的响应结果数据是否符合配置解析模块得到的接口描述信息中的返回响应结果数据的类型,标记不符合的数据项;生成接口测试报告。

结合第二方面,本发明实施例提供了第二方面第一种可能的实施方式,还包括呈现模块,根据用户需求以图表方式显示合规的接口描述信息、被测试系统接口响应结果以及接口测试报告。

结合第二方面,本发明实施例提供了第二方面第二种可能的实施方式,其中,所述配置获取模块从实际的已测试正确的系统的已有接口响应处理代码中提取接口描述信息,自动生成接口配置文件;或者,根据接口配置文件规范的数据格式要求,编写接口配置文件。

结合第二方面,本发明实施例提供了第二方面第三种可能的实施方式,其中,所述接口配置文件遵循yaml文件格式。

结合第二方面,本发明实施例提供了第二方面第四种可能的实施方式,其中,所述的接口响应结果数据遵循json文件格式。

因此,本发明的优点在于,无需在代码中加入大量注释,实现接口描述和代码分离,能够从接口配置文件转化生成接口文档信息;从而维护更方便,同时具备自动化测试接口的能力,并自动显示接口情况;可以节省编写接口文档和进行接口测试所花费的代价,降低开发成本,节省开发人员的时间。

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

附图说明

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

图1示出了本发明第一实施例所提供的一种接口的自动测试方法的流程示意图。

图2示出了本发明第一实施例所提供的一种接口的自动测试方法的步骤s6一个生成的接口测试报告样例。

图3示出了本发明第二实施例所提供的一种接口的自动测试装置的模块组成示意图。

具体实施方式

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

实施例一

图1是本发明第一实施例所提供的一种接口的自动测试方法的流程示意图,该方法包括以下步骤:

步骤s1,获取被测试系统的所有接口配置文件,对所述文件进行语法合规性检查,经检查合规后将所述合规的接口配置文件保存,所述的接口配置文件用于描述测试系统的接口描述信息,根据接口配置文件规范制作,包括接口标识、接口操作类型、接口参数以及返回响应结果数据的类型,所述的接口标识具有唯一性;所述的接口操作类型是对接口的操作类型。

此步骤可收集各种需要的常用的接口数据,统一用接口配置文件来表达接口数据以及响应接口请求的返回数据情况。文件的规范要能够表达数据结构,数据易于读取、分析和交互、传输。可以自定义,也可以采用行业通用的xml(可扩展标记语言)、yaml(yamlan'tamarkuplanague)、json(javascriptobjectnotation)等文件格式。

所述的接口操作类型可以是,查询操作、创建操作、删除操作和修改操作等。

步骤s2,获取所述合规的接口配置文件,解析所述接口配置文件,获取其中的接口描述信息中的各项具体内容;根据所述的接口描述信息生成接口文档。

步骤s1完成了接口数据收集以后,就为步骤s2做好了接口数据准备。步骤s2具体实现接口配置文件的解析,从中提取出接口描述信息的各项具体内容,自动生成接口文档。可以节省开发人员编写接口文档的时间。

接口描述文件,可以是xml格式、yaml文件格式等。

优选地,所述接口配置文件还可以是:接口标识、接口名称、接口操作类型、接口处理函数名称,以及接口参数和返回响应结果数据的类型,所述的接口标识具有唯一性,所述接口数据返回文件包括:接口返回的错误状态码和返回数据的内容。

步骤s3,根据接口描述信息中的接口标识、接口参数、接口操作类型,向被测试系统发送接口服务请求。

这里可以发送批量的接口服务请求,完成批量的接口测试。

步骤s4,被测试系统收到接口服务请求后响应,返回接口响应结果。

步骤s5,对被测试系统接口响应结果数据进行解析,并验证数据解析结果的数据合法性。

对接口响应结果数据是否合理进行检查。

步骤s6,判断步骤s5接口响应结果数据是否符合步骤s2得到的接口描述信息中的返回响应结果数据的类型,标记不符合的数据项;生成接口测试报告。

如图2所示,是一个生成的接口测试报告样例。该测试报告给出了被测系统各个接口的测试情况,上面的statistics表数据呈现了各个接口的响应时间等相关性能指标情况,下面的errors表主要呈现接口是否符合接口规范的情况,该测试报告中errors表为空,代表没有接口是否不符合接口规范的。

通过上述方法步骤,可以达到迅速测试接口的目标。

进一步地,基于实施例一,在生成接口测试报告以后,还可以,根据用户需求以图表方式显示合规的接口描述信息、被测试系统接口响应结果以及接口测试报告。

将上述步骤s2获得的接口描述信息、步骤s4获得的响应结果数据、s6得到的接口测试报告,以图表方式显示出来。

进一步地,基于上述实施例,所述的步骤s1中获取接口配置文件的过程,包括自动或手动两种方式;自动方式,从实际的已测试正确的系统的已有接口响应处理代码中提取接口描述信息,自动生成接口配置文件;手动方式,根据接口配置文件规范的数据格式要求,编写接口配置文件。

优选地,基于上述实施例,所述接口配置文件规范遵循yaml文件格式。

yaml文件格式是一种直观的能够被电脑识别的数据序列化格式,是一个可读性高并且容易被人类阅读,容易和脚本语言交互,用来表达资料序列的编程语言。它是类似于标准通用标记语言的子集xml的数据描述语言,语法比xml简单很多,已经成为当前主流的数据描述方式。

例如在步骤s2获取的合规的接口配置文件如下举例,查询jobs的接口配置文件定义,用yaml文件格式描述所示,如下表一:

表一:接口配置文件

上述样例中定义了一个查询jobs的接口,包括接口标识jobs、接口操作类型get以及2个接口请求参数和响应数据的类型jobstatus、错误码等接口描述信息。

优选地,基于上述实施例,所述的接口响应结果数据遵循json文件格式。

json文件格式是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。

例如在步骤s4返回接口响应结果,举例如下所示的json文件格式描述,如下表二所示:

表二:接口响应结果数据

那么在步骤s6所述的判断过程就是,判断接口响应结果数据jobstatus是否符合步骤s2得到的接口描述信息中的返回响应结果数据的类型jobstatus,是符合的,则生成的接口测试报告中,关于jobstatus的errors表为空。

需要说明的是,基于以上所有实施例,所述自动方式,建立在外部设备接口的已有的代码段基础上,编写直接分析代码段的程序,自动提取接口描述信息中的接口标识、接口操作类型、接口参数,返回数据文件名称,和返回数据的类型等信息,自动生成接口配置文件。

所述手动方式可以通过其他软件的文字编辑器完成,也可以在本系统中做一个文字编辑模块来完成。

实施例二

对应上述实施例一中的方法,本发明实施例还提供了一种接口的自动测试装置,用于执行上述实施例一中的方法。

图3示出了本发明第二实施例所提供的一种接口的自动测试装置的模块组成示意图。

如图3所示,本实施例中的接口的自动测试装置包括五个模块:

配置获取模块m100,用于获取被测试系统的所有接口配置文件yaml,对所述文件进行语法合规性检查,经检查合规后将所述合规的接口配置文件yaml保存,所述的接口配置文件用于描述测试系统的接口描述信息,根据接口配置文件规范制作,包括接口标识、接口操作类型、接口参数以及返回响应结果数据的类型,所述的接口标识具有唯一性;所述的接口操作类型是对接口的操作类型。

所述的接口操作类型可以是,查询操作、创建操作、删除操作和修改操作等。

配置解析模块m200,用于获取所述合规的接口配置文件yaml,解析所述接口配置文件,获取其中的接口描述信息中的各项具体内容;根据所述的接口描述信息生成接口文档a。

测试模块m300,用于根据配置解析模块m200解析出来的接口描述信息中的接口标识、接口参数、接口操作类型,向被测试系统发送接口服务请求;接收接口响应结果json。

响应解析模块m400,对测试模块m300获得的被测试系统接口响应结果数据进行解析,并验证数据解析结果的数据合法性。

对比判断模块m500,判断经响应解析模块m400验证合法的响应结果数据是否符合配置解析模块m200得到的接口描述信息中的返回响应结果数据的类型,标记不符合的数据项;生成接口测试报告b。

进一步地,基于实施例二,还可以包括呈现模块,根据用户需求以图表方式显示合规的接口描述信息、被测试系统接口响应结果以及接口测试报告。

将上述配置解析模块m200获得的接口描述信息、响应解析模块m400获得的响应结果数据、对比判断模块m500得到的接口测试报告,以图表方式显示出来。

进一步地,基于实施例二,所述配置获取模块从实际的已测试正确的系统的已有接口响应处理代码中提取接口描述信息,自动生成接口配置文件;或者,根据接口配置文件规范的数据格式要求,编写接口配置文件。

基于以上所有实施例,优选地,所述接口配置文件规范遵循yaml文件格式。

基于以上所有实施例,优选地,所述的接口数据返回文件规范遵循json文件格式。

在本发明所提供的实施例中,应该理解到,所揭示的方法和装置,可以通过其它的方式实现。以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

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

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

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

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

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

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