接口自动测试方法及装置与流程

文档序号:27769740发布日期:2021-12-04 02:23阅读:98来源:国知局
接口自动测试方法及装置与流程

1.本发明涉及软件测试技术领域,特别是涉及一种接口自动测试方法及装置。


背景技术:

2.在软件测试领域中,接口测试是一个重要的可执行分支,用于验证系统组件间的接口耦合交互,检测外部系统与系统之间以及内部各个子系统之间的交互点。
3.在接口测试中,需要考虑接口的实际运行场景。而接口运行会遇到各种入参场景。为了确保接口的鲁棒性或健壮性,测试过程中会模拟各种入参场景的单元测试。入参场景的模拟会产生大量的代码开发需求,消耗开发的人力成本和时间成本。
4.同时,测试人员在执行接口测试的过程中,需录制接口数据并且做调试,参数数量多组合场景用例巨大,消耗测试人力和时间成本,还可能存在入参场景遗漏、测试覆盖不全等问题;另外接口测试使用的工具、方法参差不齐,缺乏接口入参测试的统一入口和规范,测试记录容易丢失等情况。
5.综上,可见传统的接口测试还存在以上不足。


技术实现要素:

6.基于此,有必要针对传统的接口测试还存在的不足,提供一种接口自动测试方法及装置。
7.一种接口自动测试方法,包括步骤:通过持续集成工具探测开发代码的提交与构建,以生成待测接口的框架交换数据;通知测试平台,以指示测试平台调用待测接口去获取开发代码中新增的框架交换数据,并抓取待测接口的具体数据;根据测试平台的混沌测试类型与接口参数关键信息组合成场景用例,并指示测试平台根据场景用例对待测接口发起接口测试,以获取测试结果;其中,接口参数关键信息包括框架交换数据和具体数据。
8.上述的接口自动测试方法,在通过持续集成工具探测开发代码的提交与构建,以生成待测接口的框架交换数据。进一步地,通知测试平台,以指示测试平台调用待测接口去获取开发代码中新增的框架交换数据,并抓取待测接口的具体数据。最后,根据测试平台的混沌测试类型与接口参数关键信息组合成场景用例,并指示测试平台根据场景用例对待测接口发起接口测试,以获取测试结果。接口参数关键信息包括框架交换数据和具体数据。基于此,实现对待测接口的自动测试,降低测试所需的时间成本和人力成本。
9.在其中一个实施例中,在根据测试平台的混沌测试类型与接口参数关键信息组合成场景用例的过程之前,还包括步骤:通过测试平台获取服务器录制的流量数据;在流量数据对应的接口与框架交换数据对应的接口为同一接口时,将框架交换数
据作为接口参数关键信息。
10.在其中一个实施例中,获取到流量数据后,还包括步骤:对流量数据进行数据预处理;其中,数据预处理包括数据去重、数据交换格式化或标记鉴权信息。
11.在其中一个实施例中,指示测试平台根据场景用例对待测接口发起接口测试,以获取测试结果的过程,包括步骤:根据测试平台对待测接口替换鉴权信息和登录权限,并为请求头添加设定标记;在获取到测试平台识别的回放流量并隔离后,获取测试平台的测试结果。
12.在其中一个实施例中,指示测试平台根据场景用例对待测接口发起接口测试,以获取测试结果的过程,还包括步骤:对请求返回内容进行匹配,并对匹配异常的请求返回内容进行提示报警。
13.在其中一个实施例中,持续集成工具包括jenkins;测试平台包括aps。
14.在其中一个实施例中,混沌测试类型包括:数值与字符互换;值超长;值为空;参数为空;非法字符串;非正常日期格式;非正常url;特殊字符串;边界值。
15.一种接口自动测试装置,包括:数据生成模块,用于通过持续集成工具探测开发代码的提交与构建,以生成待测接口的框架交换数据;数据获取模块,用于通知测试平台,以指示测试平台调用待测接口去获取开发代码中新增的框架交换数据,并抓取待测接口的具体数据;自动测试模块,用于根据测试平台的混沌测试类型与接口参数关键信息组合成场景用例,并指示测试平台根据场景用例对待测接口发起接口测试,以获取测试结果;其中,接口参数关键信息包括框架交换数据和具体数据。
16.上述的接口自动测试装置,在通过持续集成工具探测开发代码的提交与构建,以生成待测接口的框架交换数据。进一步地,通知测试平台,以指示测试平台调用待测接口去获取开发代码中新增的框架交换数据,并抓取待测接口的具体数据。最后,根据测试平台的混沌测试类型与接口参数关键信息组合成场景用例,并指示测试平台根据场景用例对待测接口发起接口测试,以获取测试结果。接口参数关键信息包括框架交换数据和具体数据。基于此,实现对待测接口的自动测试,降低测试所需的时间成本和人力成本。
17.一种计算机存储介质,其上存储有计算机指令,计算机指令被处理器执行时实现上述任一实施例的接口自动测试方法。
18.上述的计算机存储介质,在通过持续集成工具探测开发代码的提交与构建,以生成待测接口的框架交换数据。进一步地,通知测试平台,以指示测试平台调用待测接口去获取开发代码中新增的框架交换数据,并抓取待测接口的具体数据。最后,根据测试平台的混沌测试类型与接口参数关键信息组合成场景用例,并指示测试平台根据场景用例对待测接口发起接口测试,以获取测试结果。接口参数关键信息包括框架交换数据和具体数据。基于此,实现对待测接口的自动测试,降低测试所需的时间成本和人力成本。
19.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述任一实施例的接口自动测试方法。
20.上述的计算机设备,在通过持续集成工具探测开发代码的提交与构建,以生成待测接口的框架交换数据。进一步地,通知测试平台,以指示测试平台调用待测接口去获取开发代码中新增的框架交换数据,并抓取待测接口的具体数据。最后,根据测试平台的混沌测试类型与接口参数关键信息组合成场景用例,并指示测试平台根据场景用例对待测接口发起接口测试,以获取测试结果。接口参数关键信息包括框架交换数据和具体数据。基于此,实现对待测接口的自动测试,降低测试所需的时间成本和人力成本。
附图说明
21.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
22.图1为一实施方式的接口自动测试方法流程图;图2为另一实施方式的接口自动测试方法流程图;图3为又一实施方式的接口自动测试方法流程图;图4为一实施方式的接口自动测试装置模块结构图;图5为一实施方式的计算机内部构造示意图。
具体实施方式
23.为了更好地理解本发明的目的、技术方案以及技术效果,以下结合附图和实施例对本发明进行进一步的讲解说明。同时声明,以下所描述的实施例仅用于解释本发明,并不用于限定本发明。
24.本发明实施例提供了一种接口自动测试方法。
25.图1为一实施方式的接口自动测试方法流程图,如图1所示,一实施方式的接口自动测试方法包括步骤s100至步骤s102:s100,通过持续集成工具探测开发代码的提交与构建,以生成待测接口的框架交换数据;s101,通知测试平台,以指示测试平台调用待测接口去获取开发代码中新增的框架交换数据,并抓取待测接口的具体数据;s102,根据测试平台的混沌测试类型与接口参数关键信息组合成场景用例,并指示测试平台根据场景用例对待测接口发起接口测试,以获取测试结果;其中,接口参数关键
信息包括框架交换数据和具体数据。
26.其中,待测接口为软件类接口,包括应用程序接口、软件系统之间的接口或软件业务层之间的接口。例如,在网站的搭建过程中,为各网页间进行服务的接口。
27.作为一个较优的实施方式,也便于解释本发明实施例的技术方案,以网页领域中的接口为待测接口进行实施例中各具体特征的解释。
28.其中,待测接口根据开发代码执行业务和接口类型的定义等功能。在步骤s100中,通过持续集成工具探测开发代码的提交与构建,以此生成确定待测接口的框架交换数据。其中,框架交换数据包括待测接口对应的服务框架中的数据交换格式。
29.以待测接口为网站领域的为例,服务框架包括web服务框架。在其中一个实施例中,web服务框架包括swagger框架。基于此,框架交换数据包括swagger json数据。
30.其中,持续集成工具的应用,便于定时完成开发代码的提交和构建,以便于生成最新的框架交换数据,以保证后续测试结果获取的效率。
31.在其中一个实施例中,持续集成工具包括teamcity、hudson或jenkins等在内的集成工具。作为一个较优的实施方式,持续集成工具选用jenkins。利用jenkins的高拓展性,便于后续各步骤中数据调整,适应网站领域的待测接口的复杂,扩充自动测试的适用场景。
32.在框架交换数据生成后,根据测试平台待测接口去获取开发代码中新增的框架交换数据。其中,通过测试平台进行数据抓取,便于将数据存储至测试平台的对应的库中,进行后续的数据处理。
33.在数据抓取层面上,还通过完成待测接口的具体数据抓取。其中,待测接口的具体数据包括待测接口的请求参数、参数名、参数类型、参数格式或请求频道等。
34.在其中一个实施例中,测试平台包括soapu、jmeter等的接口测试工具。作为一个较优的实施方式,测试平台选用polyv自建的基于nginx流量录制与接口回放测试平台,即aps。选用aps,以便于为自动测试配置混沌测试类型,丰富场景用例的数量。
35.在其中一个实施例中,图2为另一实施方式的接口自动测试方法流程图,如图2所示,在步骤s102中根据测试平台的混沌测试类型与接口参数关键信息组合成场景用例的过程之前,还包括步骤s200和步骤s201:s200,通过测试平台获取服务器录制的流量数据;s201,在流量数据对应的接口与框架交换数据对应的接口为同一接口时,将框架交换数据作为接口参数关键信息。
36.其中,服务器与待测接口相关联。以待测接口为网站领域的接口为例,服务器包括nginx服务器,即提供了imap/pop3/smtp服务的http和反向代理web服务器。通过从服务器获取真实的流量数据,进行接口判断以筛选框架交换数据。在流量数据对应的接口与框架交换数据对应的接口为同一接口时,才将框架交换数据作为接口参数关键信息,否则步骤s101中获取的框架交换数据不予采用。基于此,根据nginx服务器收录到的待测接口真实数据自动匹配swagger接口信息,自动生成混沌测试用例,能大大降低开发写单元测试的时间。
37.在其中一个实施例中,通过比对流量数据对应的接口与框架交换数据对应的接口,在二者对应的接口为同一接口时,通过测试平台将框架交换数据入库,作为接口参数关键信息以供后续步骤使用。
38.在其中一个实施例中,如图2所示,在步骤s200中获取到流量数据后,还包括步骤s202:s202,对流量数据进行数据预处理;其中,数据预处理包括数据去重、数据交换格式化或标记鉴权信息。
39.对流程数据进行数据去重,提高流量数据的参考价值并降低干扰数据量。其中,数据交换格式化包括数据json格式化。对带有鉴权信息的待测接口进行标记,便于测试平台进行自动测试的鉴权信息替换。
40.在确定框架交换数据和具体数据后,即确定接口参数关键信息,通过测试平台的混沌测试类型与接口参数关键信息组合成场景用例,一场景用例对应一项测试。根据场景用例,测试平台对待测接口发起接口测试,获得测试结果。其中,测试结果的数据类型与测试平台相对应。
41.其中,混沌测试类型包括测试平台中用于对待测接口执行健壮性或鲁棒性测试的测试类型。在其中一个实施例中,混沌测试类型包括数值与字符互换、值超长、值为空、参数为空、非法字符串、非正常日期格式、非正常url、特殊字符串和边界值。
42.根据接口参数关键信息内的数据类型数量与混沌测试类型的数量比值,确定场景用例的数量。以下以一具体应用例进行解释:数值与字符互换:如参数类型是int类型,传入string类型;值超长:如参数param=123,传入超过256个字符;值为空:如正常传参是param=123,传入param=;参数为空:如正常传参param=123&test=456,传入param=123;非法字符串:如正常传参param=123,传入param=123。当前非法字符串匹配有:非正常日期格式:如正常传参param=20210

05

20,传入param=2021/05/21;非正常url:如请求url为 访问url为特殊字符串:
边界值:如参数类型是int32,传入>2147483647;例如一个接口根据9种健壮性混沌测试类型,一共组合成18个入参场景用例。
43.在其中一个实施例中,图3为又一实施方式的接口自动测试方法流程图,如图3所示,步骤s102中指示测试平台根据场景用例对待测接口发起接口测试,以获取测试结果的过程,包括步骤s300和步骤s301:s300,根据测试平台对待测接口替换鉴权信息和登录权限,并为请求头添加设定标记;s301,在获取到测试平台识别的回放流量并隔离后,获取测试平台的测试结果。
44.测试平台根据场景用例对待测接口的各个入参场景发起接口测试,根据预设的业务特性,对待测接口替换鉴权信息和登录权限,请求头统一添加设定标记。通过后台识别的回放流量,对数据进行隔离。在其中一个实施例中,可将回放流量转发至测试数据库,以起到数据隔离作用。基于此,使测试结果与真实数据隔离,避免接口测试对待测接口的正常使用产生干扰或影响。
45.在其中一个实施例中,如图3所示,步骤s102中指示测试平台根据场景用例对待测接口发起接口测试,以获取测试结果的过程,还包括步骤:s302,对请求返回内容进行匹配,并对匹配异常的请求返回内容进行提示报警。
46.其中,请求返回内容为测试结果的类型之一。测试结果统一汇总展示在混沌测试页面中,对请求返回内容,按照设定请求返回内容做匹配,匹配异常则进行提示报警,例如高亮展示、故障代码提示或声光告警等。
47.为了更好地解释步骤s302的技术方案,以下以一具体应用例进行解释:1.各种入参场景用例,接口请求code码基本为200,出现非200则该条接口测试记录高亮展示;2.参数是必传的,请求时该参数为空,请求返回数据中data为统一字符响应码,非json类型数据;否则该条测试记录高亮展示;3.参数是非必传的,请求是该参数为空,请求返回数据中data不为统一字符响应码,应为json类型数据;否则该条测试记录高亮展示;4.非正常url,统一返回404。
48.在其中一个实施例中,还包括步骤:汇总各测试结果,并将测试结果发送至第三方平台。
49.基于此,以便于第三方平台及时了解测试结果,获知待测接口的健壮性或鲁棒性。测试人员无需人工去录制接口,调试接口和准备各种入参数据,只需要不断把混沌测试类
型与业务特性匹配和补充即可做到全面覆盖业务特性的接口测试,大大降低测试的时间。
50.上述任一实施例的接口自动测试方法,在通过持续集成工具探测开发代码的提交与构建,以生成待测接口的框架交换数据。进一步地,通知测试平台,以指示测试平台调用待测接口去获取开发代码中新增的框架交换数据,并抓取待测接口的具体数据。最后,根据测试平台的混沌测试类型与接口参数关键信息组合成场景用例,并指示测试平台根据场景用例对待测接口发起接口测试,以获取测试结果。接口参数关键信息包括框架交换数据和具体数据。基于此,实现对待测接口的自动测试,降低测试所需的时间成本和人力成本。
51.本发明实施例还提供了一种接口自动测试装置。
52.图4为一实施方式的接口自动测试装置模块结构图,如图4所示,一实施方式的接口自动测试装置包括数据生成模块100、数据获取模块101和自动测试模块102:数据生成模块100,用于通过持续集成工具探测开发代码的提交与构建,以生成待测接口的框架交换数据;数据获取模块101,用于通知测试平台,以指示测试平台调用待测接口去获取开发代码中新增的框架交换数据,并抓取待测接口的具体数据;自动测试模块102,用于根据测试平台的混沌测试类型与接口参数关键信息组合成场景用例,并指示测试平台根据场景用例对待测接口发起接口测试,以获取测试结果;其中,接口参数关键信息包括框架交换数据和具体数据。
53.上述的接口自动测试装置,在通过持续集成工具探测开发代码的提交与构建,以生成待测接口的框架交换数据。进一步地,通知测试平台,以指示测试平台调用待测接口去获取开发代码中新增的框架交换数据,并抓取待测接口的具体数据。最后,根据测试平台的混沌测试类型与接口参数关键信息组合成场景用例,并指示测试平台根据场景用例对待测接口发起接口测试,以获取测试结果。接口参数关键信息包括框架交换数据和具体数据。基于此,实现对待测接口的自动测试,降低测试所需的时间成本和人力成本。
54.本发明实施例还提供了一种计算机存储介质,其上存储有计算机指令,该指令被处理器执行时实现上述任一实施例的接口自动测试方法。
55.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。
56.或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以
是个人计算机、终端、或者网络设备等)执行本发明各个实施例方法的全部或部分。而前述的存储介质包括:移动存储设备、ram、rom、磁碟或者光盘等各种可以存储程序代码的介质。
57.与上述的计算机存储介质对应的是,在一个实施例中还提供一种计算机设备,该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行程序时实现如上述各实施例中的任意一种接口自动测试方法。
58.该计算机设备可以是终端,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种接口自动测试方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
59.上述计算机设备,在通过持续集成工具探测开发代码的提交与构建,以生成待测接口的框架交换数据。进一步地,通知测试平台,以指示测试平台调用待测接口去获取开发代码中新增的框架交换数据,并抓取待测接口的具体数据。最后,根据测试平台的混沌测试类型与接口参数关键信息组合成场景用例,并指示测试平台根据场景用例对待测接口发起接口测试,以获取测试结果。接口参数关键信息包括框架交换数据和具体数据。基于此,实现对待测接口的自动测试,降低测试所需的时间成本和人力成本。
60.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
61.以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1