接口自动化测试方法、装置、存储介质及电子设备与流程

文档序号:20838472发布日期:2020-05-22 17:10阅读:158来源:国知局
接口自动化测试方法、装置、存储介质及电子设备与流程

本公开涉及计算机测试技术领域,具体地,涉及一种接口自动化测试方法、装置、存储介质及电子设备。



背景技术:

随着智能硬件的兴起与计算机技术的不断升级,现代系统面临的软硬件环境越来越复杂,系统之间互操作性的增强愈加重要,其中,web接口技术能够利用会话方式实现不同系统之间的相互调用,广泛应用于各个领域。由于项目开发的迭代周期越来越短,每一代软件产品在发布之前都要进行大量的测试工作,因而针对web接口提出可行性自动化测试方案可以有效减轻测试人员工作压力。在现有技术中,使用自动化测试工具对web接口进行自动化测试,往往需要人工主动进行接口数据的参数化,这样不但对测试人员的知识储备要求较高,而且参数配置过程复杂繁琐易造成配置错误,加之接口数据不可多次回放复用,导致web接口测试工作效率不高。



技术实现要素:

本公开的目的是提供一种接口自动化测试方法、装置、存储介质及电子设备,用于解决利用现有技术进行接口测试效率不高的技术问题。

为了实现上述目的,本公开第一方面提供一种接口自动化测试方法,所述方法包括:

在检测到电子设备发生预设操作事件时,获取至少一项接口数据;

根据所述接口数据录制生成自动化测试脚本;

若检测到模拟请求操作,则按照预设规则逐一回放所述自动化测试脚本中至少一项目标接口数据,以对目标接口进行自动化测试,其中,所述目标接口数据为当前模拟请求操作对应的接口数据。

可选地,所述方法还包括:

按照接口调用顺序将每一所述接口数据依次存储至非关系型数据库,其中,每一所述接口数据包括请求资源定位符、请求数据以及响应数据。

可选地,所述若检测到模拟请求操作,则按照预设规则逐一回放所述自动化测试脚本中至少一项目标接口数据,以对目标接口进行自动化测试,包括:

根据模拟请求操作与接口数据之间预设的对应关系,确定当前模拟请求操作对应的至少一项所述目标接口数据;

从所述非关系型数据库中读取所述目标接口数据;

按照接口调用顺序对所述目标接口数据逐一执行参数化处理并回放,以完成目标接口的自动化测试,其中,不同类型的目标接口数据的参数化处理规则不同。

可选地,所述方法还包括:

对自动化测试结果进行分析,并生成自动化测试报告。

本公开第二方面提供一种接口自动化测试装置,包括:

获取模块,用于在检测到电子设备发生预设操作事件时,获取至少一项接口数据;

录制模块,用于根据所述接口数据录制生成自动化测试脚本;

测试模块,用于在检测到模拟请求操作时,按照预设规则逐一回放所述自动化测试脚本中至少一项目标接口数据,以对目标接口进行自动化测试,其中,所述目标接口数据为当前模拟请求操作对应的接口数据。

可选地,所述装置还包括:

存储模块,用于按照接口调用顺序将每一所述接口数据依次存储至非关系型数据库,其中,每一所述接口数据包括请求资源定位符、请求数据以及响应数据。

可选地,所述测试模块包括:

确定子模块,用于根据模拟请求操作与接口数据之间预设的对应关系,确定当前模拟请求操作对应的至少一项所述目标接口数据;

读取子模块,用于从所述非关系型数据库中读取所述目标接口数据;

回放子模块,用于按照接口调用顺序对所述目标接口数据逐一执行参数化处理并回放,以完成目标接口的自动化测试,其中,不同类型的目标接口数据的参数化处理规则不同。

可选地,所述装置还包括:

分析模块,用于对自动化测试结果进行分析,并生成自动化测试报告。

本公开第三方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开第一方面提供的接口自动化测试方法的步骤。

本公开第四方面提供一种电子设备,包括:

存储器,其上存储有计算机程序;

处理器,用于执行所述存储器中的所述计算机程序,以实现本公开第一方面提供的接口自动化测试方法的步骤。

根据上述技术方案,在检测到电子设备发生预设操作事件时,获取该预设操作造成的至少一项接口数据,并根据以上接口数据录制生成自动化测试脚本,当检测到模拟请求操作时,则按照预设规则逐一回放自动化测试脚本中与当前模拟请求操作对应的至少一项接口数据。这样,在完成录制接口数据的基础上,针对模拟请求操作逐一回放与其相关的接口数据可以实现接口的自动化测试。其中,上一接口的响应数据可以用于参数化下一接口,因此,该回放过程不仅无需人工重复进行复杂的参数配置工作,减少了配置错误的可能性,并且测试过程更接近真实的人工操作,提高了接口自动化测试的操作准确率与效率。

本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1是本公开实施例提供的一种接口自动化测试方法的流程图;

图2是本公开实施例提供的另一种接口自动化测试方法的流程图;

图3是本公开实施例提供的一种接口自动化测试装置的框图;

图4是本公开实施例提供的一种接口自动化测试装置的测试模块的框图;

图5本公开实施例提供的一种电子设备的框图。

具体实施方式

以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。

为了解决利用现有技术进行接口测试效率不高的技术问题,本公开实施例提供一种接口自动化测试方法、装置、存储介质及电子设备,下面结合具体实施例对本公开提供的技术方案进行详细说明。

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

s11、在检测到电子设备发生预设操作事件时,获取至少一项接口数据。

示例地,预设操作事件可以是检测到电子设备开始运行web(worldwideweb,万维网)接口的自动化测试工具,该自动化测试工具触发启动浏览器,并实时监控浏览器与服务器之间是否存在http/https(hypertexttransportprotocol,超文本传输协议)协议数据的会话内容。在本实施例中,会话内容是指浏览器与服务器之间连续发生的一系列请求与响应的过程,例如会话内容中可以包括http协议定义的基本类型:get、post、put、delete等,其中get类型用于获取或者查询资源信息,post一般用于更新资源信息。

当检测到用户对浏览器中web服务页面执行人工测试操作时,如执行打开新窗口的操作,浏览器与服务器之间产生会话内容。自动化测试工具在监测到浏览器与服务器之间的会话内容之后,通过对会话内容的标识信息进行解析整理,获取得到打开新窗口的操作所造成的至少一项接口数据。

s12、根据接口数据录制生成自动化测试脚本。

具体地,每一项接口数据包括请求资源定位符、请求数据以及响应数据,示例地,每一项接口数据包括请求url、请求header、请求body、请求method以及响应status、响应header、响应body等。接口数据中请求信息部分可以通过自动化测试工具录制用户在浏览器服务页面上的操作得到,与请求信息对应的响应信息部分可以通过自动化测试工具接收服务器针对请求信息返回的数据进行存储得到,以上数据可以以键值对key-value的数据形式进行保存为json字符串,自动化测试工具根据获取到的接口数据可以自动生成用于web接口测试的执行脚本。

值得说明的是,用户应尽可能操作需要进行接口测试的页面,自动化测试工具可以是独立应用,也可以是浏览器应用的一个功能或插件的实现,但不限于此。

s13、若检测到模拟请求操作,则按照预设规则逐一回放自动化测试脚本中至少一项目标接口数据,以对目标接口进行自动化测试。

在完成接口数据的录制过程之后,监测系统是否发生用于指示处理自动化测试脚本的模拟请求操作,例如该模拟请求操作可以是用户点击自动化测试工具的回放按钮,也可以是点击其他功能测试的启动按钮。若检测到模拟请求操作,则确定当前模拟请求操作对应的至少一项目标接口数据,然后按照接口调用顺序逐一参数化并回放这些目标接口数据,以完成对目标接口进行自动化测试。

在一种可能的实施方式中,接口自动化测试方法还包括将获取得到的至少一项接口数据按照接口调用顺序依次存储至非关系型数据库。其中,非关系型数据库便于数据扩展,在数据处理方面也更加灵活高效,有利于提高接口数据的读写效率。这样,在检测到模拟请求操作时,则根据模拟请求操作与接口数据之间预设的对应关系,确定当前模拟请求操作对应的至少一项目标接口数据,然后从非关系型数据库中读取目标接口数据,并按照接口调用顺序逐项参数化并回放。

值得说明的是,不同类型的目标接口数据的参数化处理规则不同。示例地,若目标接口数据包含固定数值或者逻辑值的a类接口数据,则需要进行参数化的字段参数可以直接从非关系型数据库中读取并回放,例如一种a类接口数据为userinfo.userid=“201317256”。

若目标接口数据包含实时生成的b类接口数据,该b类接口数据可以是时间戳字段,那么接口数据录制过程得到的时间戳字段参数与模拟请求操作时刻生成的时间戳字段参数会不同,则将模拟请求操作时刻生成的时间戳字段进行回放,例如时间戳字段的值为“1577082700”。本公开实施例提供的回放配置文件中有关时间戳字段的回放规则部分代码如下:

'escape_key':[

'time',

'timestamp'

]

通过执行上述代码可以排除如时间戳字段等不需要参与回放比对的b类接口数据。

若目标接口数据为根据运行环境相应变化的c类接口数据,该c类接口数据可以是cguid(globallyuniqueidentifier,全局唯一标识符)字段或uuid(universallyuniqueidentifier,通用唯一识别码)字段,由于运行环境变化导致接口数据录制过程得到的响应信息中cguid字段参数与模拟请求操作时刻计算得到的响应信息中cguid字段参数不同,因而按照预先配置的数据替换逻辑,cguid字段参数应替换为模拟请求操作时刻计算得到的cguid字段参数,如此迭代进行各个接口数据的回放,即可完成目标接口的自动化测试。本公开实施例提供的cguid字段或uuid字段的回放规则的部分代码如下:

'replace_key':[

'cguid',

'cguid',

'uuid',

'uuid'

],

'replacekey_minlength':18

对于多次使用的某一字段,记录在录制过程得到的响应数据中cguid字段或uuid字段第一次出现、第二次出现等后续每次出现的位置,通过执行上述'replace_key'部分代码,可以推测在模拟请求过程得到的响应信息中cguid字段或uuid字段逐次出现的位置、相互引用关系以及每一位置的cguid字段或uuid字段之间参数的数学关系。同样地,以上规则适用于其它c类接口数据。

这样,只需利用人工简单配置并录制接口数据一次,后续接口的自动化测试可以通过实时参数化、多次迭代回放即可实现,整个过程无需人工多次重复修改参数配置,针对不同的功能测试可以重新生成脚本文件,整个测试过程简单高效,测试方案灵活度好、可移植性强,维护成本低。

可选地,图2是本公开实施例提供的一种接口自动化测试方法的流程图,如图2所示,接口自动化测试方法还包括步骤:

s14、对自动化测试结果进行分析,并生成自动化测试报告。

具体地,自动化测试结果包括服务器针对模拟请求返回的响应信息,通过分析该响应信息中是否包括预期内容,即该响应信息与非关系型数据库中录制存储的相应的响应数据的内容对比是否一致或匹配,可以确定本次接口测试是否成功。

对应于步骤s13,当目标接口数据为固定数值或者逻辑值的a类接口数据时,响应信息与非关系型数据库中录制存储的相应的响应数据的字段内容对比结果一致,则说明目标接口通过自动化测试。当目标接口数据为实时生成的b类接口数据时,例如b类接口数据可以是时间戳字段,则排除b类接口数据不参与回放比对。当目标接口数据为根据运行环境相应变化的c类接口数据时,例如c类接口数据可以是cguid字段或uuid字段,若cguid字段或uuid字段只出现一次,可以根据简单的对比规则与录制存储的相应的响应数据的字段进行对比,比如两者的数据类型或者数据长度符合则通过自动化测试;若cguid字段或uuid字段多次出现,根据'replace_key'部分代码的回放规则,可以确定cguid字段或uuid字段逐次出现的位置以及每一位置的cguid字段或uuid字段之间参数的数学关系,这样,记录cguid字段或uuid字段在响应信息中第一次出现的值,并将cguid字段或uuid字段后续出现位置的值按照位置相互引用关系及数值关系进行替换,因此,在对c类接口数据进行对比时,系统应在录制存储的响应数据对应的字段值的基础上将该字段的值自动修正替换为针对模拟请求计算得到的相应值,并将该相应值与当前模拟请求操作返回的响应信息进行对比,据此判断当前模拟请求操作返回的响应信息是否符合预期,符合预期的条件包括返回的响应信息的数据结构符合规定、目标接口数据的功能满足需求等。

这样,执行自动化测试脚本中的多条测试用例,并通过上述方法步骤对自动化测试结果进行分析,可以得出综合测试结果并生成自动化测试报告,例如测试报告显示如下内容:测试脚本的中包含20条测试用例,成功18条,失败2条,并显示错误原因。

采用上述方法,在检测到电子设备发生预设操作事件时,获取该预设操作造成的至少一项接口数据,并根据以上接口数据录制生成自动化测试脚本,当检测到模拟请求操作时,则按照预设规则逐一回放自动化测试脚本中与当前模拟请求操作对应的至少一项接口数据。这样,在完成录制接口数据的基础上,针对模拟请求操作逐一回放与其相关的接口数据可以实现接口的自动化测试。其中,上一接口的响应数据可以用于参数化下一接口,因此,该回放过程不仅无需人工重复进行复杂的参数配置工作,减少了配置错误的可能性,并且测试过程更接近真实的人工操作,提高了接口自动化测试的操作准确率与效率。

图3是本公开实施例提供的一种接口自动化测试装置的框图,该装置300可以通过软件、硬件或者两者结合实现成为电子设备的部分或者全部。参照图3,该装置300包括:

获取模块31,用于在检测到电子设备发生预设操作事件时,获取至少一项接口数据;

录制模块32,用于根据接口数据录制生成自动化测试脚本;

测试模块33,用于在检测到模拟请求操作时,按照预设规则逐一回放自动化测试脚本中至少一项目标接口数据,以对目标接口进行自动化测试,其中,目标接口数据为当前模拟请求操作对应的接口数据。

在一种可能的实施方式中,接口自动化测试装置300的测试模块33的框图如图4所示,包括:

确定子模块331,用于根据模拟请求操作与接口数据之间预设的对应关系,确定当前模拟请求操作对应的至少一项目标接口数据;

读取子模块332,用于从非关系型数据库中读取目标接口数据;

回放子模块333,用于按照接口调用顺序对目标接口数据逐一执行参数化处理并回放,以完成目标接口的自动化测试,其中,不同类型的目标接口数据的参数化处理规则不同。

可选地,装置300还可以包括存储模块,用于按照接口调用顺序将每一接口数据依次存储至非关系型数据库,其中,每一接口数据包括请求资源定位符、请求数据以及响应数据。

可选地,装置300还可以包括分析模块,用于对自动化测试结果进行分析,并生成自动化测试报告。

采用上述装置,获取模块在检测到电子设备发生预设操作事件时,获取该预设操作造成的至少一项接口数据,录制模块根据以上接口数据录制生成自动化测试脚本,当检测到模拟请求操作时,测试模块则按照预设规则逐一回放自动化测试脚本中与当前模拟请求操作对应的至少一项接口数据。这样,在完成录制接口数据的基础上,针对模拟请求操作逐一回放与其相关的接口数据可以实现接口的自动化测试。其中,上一接口的响应数据可以用于参数化下一接口,因此,该回放过程不仅无需人工重复进行复杂的参数配置工作,减少了配置错误的可能性,并且测试过程更接近真实的人工操作,提高了接口自动化测试的操作准确率与效率。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本公开还提供一种电子设备,该电子设备包括存储器和处理器,其中存储器上存储有计算机程序,处理器用于执行存储器中的计算机程序,以实现接口自动化测试方法的步骤。

示例地,图5是根据一示例性实施例示出的一种电子设备的框图。如图5所示,该电子设备为测试客户端500,测试客户端500包括:处理器501,存储器502。该测试客户端500还可以包括多媒体组件503,输入/输出(i/o)接口504,以及通信组件505中的一者或多者。

其中,处理器501用于控制该测试客户端500的整体操作,以完成上述接口自动化测试方法中的全部或部分步骤。存储器502用于存储各种类型的数据以支持在该测试客户端500的操作,这些数据例如可以包括用于在该测试客户端500上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器502可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(staticrandomaccessmemory,简称sram),电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,简称eeprom),可擦除可编程只读存储器(erasableprogrammableread-onlymemory,简称eprom),可编程只读存储器(programmableread-onlymemory,简称prom),只读存储器(read-onlymemory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件503可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器502或通过通信组件505发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口504为处理器501和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件505用于该测试客户端500与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(nearfieldcommunication,简称nfc),2g、3g或4g,或它们中的一种或几种的组合,因此相应的该通信组件505可以包括:wi-fi模块,蓝牙模块,nfc模块。

在一示例性实施例中,测试客户端500可以被一个或多个应用专用集成电路(applicationspecificintegratedcircuit,简称asic)、数字信号处理器(digitalsignalprocessor,简称dsp)、数字信号处理设备(digitalsignalprocessingdevice,简称dspd)、可编程逻辑器件(programmablelogicdevice,简称pld)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述接口自动化测试方法。

在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述接口自动化测试方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器502,上述程序指令可由测试客户端500的处理器501执行以完成上述接口自动化测试方法。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

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