CN117251378A - 接口自动化测试方法、装置、存储介质和电子设备 - Google Patents

接口自动化测试方法、装置、存储介质和电子设备 Download PDF

Info

Publication number
CN117251378A
CN117251378A CN202311315008.2A CN202311315008A CN117251378A CN 117251378 A CN117251378 A CN 117251378A CN 202311315008 A CN202311315008 A CN 202311315008A CN 117251378 A CN117251378 A CN 117251378A
Authority
CN
China
Prior art keywords
interface
test
tested
diff
data
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
Application number
CN202311315008.2A
Other languages
English (en)
Inventor
宋杰菁
蒋日健
朱俊杰
苏广楠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Telecom Intelligent Network Technology Co ltd
Original Assignee
China Telecom Intelligent Network Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Telecom Intelligent Network Technology Co ltd filed Critical China Telecom Intelligent Network Technology Co ltd
Priority to CN202311315008.2A priority Critical patent/CN117251378A/zh
Publication of CN117251378A publication Critical patent/CN117251378A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/368Test management for test version control, e.g. updating test cases to a new software version
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test 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

本申请公开了一种接口自动化测试方法、装置、存储介质和电子设备。包括:获取待测试接口的测试数据,该测试数据中至少包括:接口请求数据;采用多个接口测试版本分别对待测试接口的接口请求数据进行测试,得到待测试接口对应的多个接口响应结果和多个接口测试结果,该接口测试版本包括以下至少之一:待测试接口版本、线上接口版本、线上接口对照版本;在待测试接口对应的多个接口响应结果和多个接口测试结果满足预设的diff测试条件时,对待测试接口进行diff测试,得到diff测试结果,该diff测试结果用于表征多个接口响应结果之间的差异性。本申请解决了相关技术采用人工手动维护测试数据效率较低的技术问题。

Description

接口自动化测试方法、装置、存储介质和电子设备
技术领域
本申请涉及接口测试技术领域,具体而言,涉及一种接口自动化测试方法、装置、存储介质和电子设备。
背景技术
在接口测试中,测试数据的维护是非常重要的一个环节,一旦接口发生变化,则测试数据的维护就会是一个相当庞大的工作。而目前接口自动化测试主要是依靠测试人员手工维护测试数据,但这种测试方法费时、费力,且带有一定的主观性,因此,如何高效地维护测试数据成为亟需解决的问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种接口自动化测试方法、装置、存储介质和电子设备,以至少解决相关技术采用人工手动维护测试数据效率较低的技术问题。
根据本申请实施例的一个方面,提供了一种接口自动化测试方法,包括:获取待测试接口的测试数据,其中,测试数据中至少包括:接口请求数据;采用多个接口测试版本分别对待测试接口的接口请求数据进行测试,得到待测试接口对应的多个接口响应结果和多个接口测试结果,其中,接口测试版本包括以下至少之一:待测试接口版本、线上接口版本、线上接口对照版本;在待测试接口对应的多个接口响应结果和多个接口测试结果满足预设的diff测试条件时,对待测试接口进行diff测试,得到diff测试结果,其中,diff测试结果用于表征多个接口响应结果之间的差异性。
可选地,获取待测试接口的测试数据,包括:获取待测试接口的目标运行数据,其中,目标运行数据中至少包括:线上接口版本在任意一次运行过程中的接口请求数据;对目标运行数据进行解析,得到待测试接口的测试数据。
可选地,采用多个接口测试版本分别对待测试接口的接口请求数据进行接口测试,得到待测试接口对应的多个接口响应结果和多个接口测试结果,包括:采用待测试接口版本对待测试接口的接口请求数据进行接口测试,得到待测试接口对应的第一接口响应结果和第一接口测试结果;采用线上接口版本对待测试接口的接口请求数据进行接口测试,得到待测试接口对应的第二接口响应结果和第二接口测试结果;采用线上接口对照版本对待测试接口的接口请求数据进行接口测试,得到待测试接口对应的第三接口响应结果和第三接口测试结果。
可选地,在得到待测试接口对应的多个接口响应结果和多个接口测试结果之后,方法还包括:基于待测试接口对应的多个接口响应结果确定待测试接口对应的多个测试用例,并将多个测试用例存储至数据库内,其中,测试用例中包括多个字段信息,字段信息中包括以下至少之一:接口名称、用户角色、请求URL、请求数据。
可选地,在待测试接口对应的多个接口响应结果和多个接口测试结果满足预设的diff测试条件时,对待测试接口进行diff测试,包括:判断待测试接口对应的多个接口响应结果的第一数量是否等于3;在第一数量等于3时,判断待测试接口在线上接口版本进行测试所得的第二接口测试结果和待测试接口在线上接口对照版本进行测试所得的第三接口测试结果是否为执行成功;在第二接口测试结果和第三接口测试结果均为执行成功时,对待测试接口进行diff测试。
可选地,对待测试接口进行diff测试,得到diff测试结果,包括:基于第一接口响应结果和第二接口响应结果确定第一差异,并基于第二接口响应数据和第三接口响应数据确定第二差异;对第二差异进行去噪处理,并由第一差异和去噪处理后的第二差异构成diff测试结果。
可选地,在得到diff测试结果之后,方法还包括:采用预设格式将diff测试结果进行输出,得到diff测试报告,其中,diff测试报告中通过不同颜色对待测试接口进行不同操作所得的diff测试结果进行标记。
根据本申请实施例的另一方面,还提供了一种接口自动化测试装置,包括:第一获取模块,用于获取待测试接口的测试数据,其中,测试数据中至少包括:接口请求数据;第二获取模块,用于采用多个接口测试版本分别对待测试接口的接口请求数据进行测试,得到待测试接口对应的多个接口响应结果和多个接口测试结果,其中,接口测试版本包括以下至少之一:待测试接口版本、线上接口版本、线上接口对照版本;测试模块,用于在待测试接口对应的多个接口响应结果和多个接口测试结果满足预设的diff测试条件时,对待测试接口进行diff测试,得到diff测试结果,其中,diff测试结果用于表征采用多个接口测试版本对待测试接口进行接口测试的多个接口响应结果之间的差异性。
根据本申请实施例的另一方面,还提供了一种非易失性存储介质,该非易失性存储介质包括存储的计算机程序,其中,非易失性存储介质所在设备通过运行该计算机程序执行上述的接口自动化测试方法。
根据本申请实施例的另一方面,还提供了一种电子设备,该电子设备包括:存储器和处理器,其中,存储器中存储有计算机程序,处理器被配置为通过计算机程序执行上述的接口自动化测试方法。
在本申请实施例中,获取待测试接口的测试数据,其中,测试数据中至少包括:接口请求数据;采用多个接口测试版本分别对待测试接口的接口请求数据进行测试,得到待测试接口对应的多个接口响应结果和多个接口测试结果,其中,接口测试版本包括以下至少之一:待测试接口版本、线上接口版本、线上接口对照版本;在待测试接口对应的多个接口响应结果和多个接口测试结果满足预设的diff测试条件时,对待测试接口进行diff测试,得到diff测试结果,其中,diff测试结果用于表征多个接口响应结果之间的差异性。
在上述技术方案中,通过采用diff测试的方式得到不同环境下响应相同的接口请求对应的响应结果,达到了快速查看发生变更的测试数据是否正确的目的,以降低添加接口用例、维护测试数据的时间成本,进而解决了相关技术采用人工手动维护测试数据效率较低技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种用于实现接口自动化测试方法的计算机终端(或移动设备)的硬件结构框图;
图2是根据本申请实施例的一种可选的接口自动化测试方法的流程示意图;
图3是根据本申请实施例的一种可选的接口自动化测试系统的框架示意图;
图4是根据本申请实施例的一种可选的接口自动化测试装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
另外,本申请所涉及的相关信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。
实施例1
根据本申请实施例,提供了一种接口自动化测试方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现接口自动化测试方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为BUS总线的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的接口自动化测试方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的接口自动化测试方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
在上述运行环境下,图2是根据本申请实施例的一种可选的接口自动化测试方法的流程示意图,如图2所示,该方法至少包括步骤S202-S206,其中:
步骤S202,获取待测试接口的测试数据,其中,测试数据中至少包括:接口请求数据。
在步骤S202提供的技术方案中,上述待测试接口可以为系统或者组件之间的接口、应用程序接口(API),其中API指一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力。另外,接口请求数据是指客户端向服务器发送的请求的数据,其格式通常是根据接口设计规范来定义的,常见的格式有以下几种:JSON、XML、Form Data、Query String、Multipart/form-data等。
步骤S204,采用多个接口测试版本分别对待测试接口的接口请求数据进行测试,得到待测试接口对应的多个接口响应结果和多个接口测试结果,其中,接口测试版本包括以下至少之一:待测试接口版本、线上接口版本、线上接口对照版本。
在步骤S204提供的技术方案中,使用测试数据分别在不同环境的接口代码中运行,捕获接口测试结果和接口响应结果。其中,上述待测试接口版本是指处于开发或测试阶段的接口,其可能会包含一些新的功能或者改动,而线上接口版本是指已经经过测试并在生产环境中运行的稳定版本;线上接口对照版本是在进行版本升级或者修复bug时,与线上接口版本进行对照的版本。通过在上述三个不同环境下进行运行,可以得到待测试接口的多个接口响应结果和多个接口测试结果以进行进一步的测试。
步骤S206,在待测试接口对应的多个接口响应结果和多个接口测试结果满足预设的diff测试条件时,对待测试接口进行diff测试,得到diff测试结果,其中,diff测试结果用于表征多个接口响应结果之间的差异性。
其中,上述diff顾名思义即为“找不同”,应用在测试领域主要是通过某种自动化手段验证预期相同的两个功能/文件/代码实际是否相同,接口DIFF的应用场景,则主要是验证相同接口在不同版本/不同环境下面的返回内容是否符合预期。
在步骤S206提供的技术方案中,首先可以判断步骤S204所得的多个接口响应结果和多个接口测试结果是否满足diff测试条件,也即判断待测试接口是否可以进行diff测试。若满足则对待测试接口进行diff测试,得到diff测试结果,其中,本申请实施例中可以将线上接口版本的第二响应结果作为预期接口响应结果,通过比对待测试接口版本的第一接口响应结果与第二接口响应结果,以及线上接口对照版本的第三接口响应结果与第二接口响应结果,从而得到用于表征多个接口响应结果之间的差异性的diff测试结果。
基于上述步骤S202至步骤S206所限定的方案,考虑到大部分代码的修改体现在接口返回的结果上,故在实施例中,通过使用接口的响应结果变化反向验证代码的修改影响,也即对接口进行diff测试,并通过diff测试结果可以快速发现相同接口下因内部代码逻辑变更对其输出的影响。使得测试人员仅需对比diff接口的差异之处即可快速发现接口修改前后的差异,从而减少人工验证接口变化的主观性和盲目性,进而解决了相关技术采用人工手动维护测试数据效率较低的技术问题。
下面对该实施例的上述方法进行进一步地介绍。
作为一种可选的实施方式,在上述步骤S202提供的技术方案中,该方法可以包括:获取待测试接口的目标运行数据,其中,目标运行数据中至少包括:线上接口版本在任意一次运行过程中的接口请求数据;对目标运行数据进行解析,得到待测试接口的测试数据。
在该实施例中,测试人员可以通过对线上版本在任意一次运行过程中的运行数据进行抽样,以获取待测试接口的目标运行数据,其中,目标运行数据包括但不仅限于:接口请求数据、接口响应数据、返回码、错误信息等;然后再对所获取的待测试接口的目标运行数据进行解析,可以得到待测试接口的测试数据。测试人员也可以通过手工构造测试数据。
需要说明的是,为了确保对接口进行更全面的diff回归测试,需要获取每次对接口进行修改/增加操作后的运行数据,并对运行数据进行解析,以获取用于diff测试的测试数据。
作为一种可选的实施方式,在上述步骤S204提供的技术方案中,该方法可以包括:采用待测试接口版本对待测试接口的接口请求数据进行接口测试,得到待测试接口对应的第一接口响应结果和第一接口测试结果;采用线上接口版本对待测试接口的接口请求数据进行接口测试,得到待测试接口对应的第二接口响应结果和第二接口测试结果;采用线上接口对照版本对待测试接口的接口请求数据进行接口测试,得到待测试接口对应的第三接口响应结果和第三接口测试结果。
在该实施例中,测试人员根据接口的不同版本,通过向不同版本的接口发送测试请求,传递测试数据,使得测试人员可以得到不同版本的接口返回的多个接口响应结果和多个接口测试结果,其中,接口测试结果是否通过或失败可以生成相应的接口测试报告,并可以通过接口响应结果的比对结果得到diff测试结果,以反映待测试接口的返回结果在变更环境后是否一致。
进一步地,在得到待测试接口对应的多个接口响应结果和多个接口测试结果之后,还可以对所得的响应结果进行聚合、入库处理。
可选地,基于待测试接口对应的多个接口响应结果确定待测试接口对应的多个测试用例,并将多个测试用例存储至数据库内,其中,测试用例中包括多个字段信息,字段信息中包括以下至少之一:接口名称、用户角色、请求URL、请求数据。
具体地,将上述三种不同版本的接口所返回的接口响应结果组织成测试用例,其格式可以为JSON格式,其中,该测试用例中包括但不仅限于以下字段:Name(名称)、File_path(文件路径)、URL、Request(请求)、Method(方法)、Status(状态)。另外,也可以将接口请求数据以及接口响应结果写入表格内,使得接口请求测试用例的格式规范,进而可以避免测试数据格式不正确时,自动化代码运行过程中出现异常。格式规范的接口请求测试用例,容易获取且方便新增测试接口。在得到测试用例后,还可以将所得的测试用例存储至数据库如MySQL中。
作为一种可选的实施方式,在上述步骤S206提供的技术方案中,该方法可以包括:判断待测试接口对应的多个接口响应结果的第一数量是否等于3;在第一数量等于3时,判断待测试接口在线上接口版本进行测试所得的第二接口测试结果和待测试接口在线上接口对照版本进行测试所得的第三接口测试结果是否为执行成功;在第二接口测试结果和第三接口测试结果均为执行成功时,对待测试接口进行diff测试。
在该实施例中,上述待测试接口对应的多个接口响应结果的第一数量是否等于3可以理解为,待测试接口在三个版本下均可以得到相应的返回结果。上述第二接口测试结果和第三接口测试结果是否为执行成功可以理解为,是否可以从线上接口版本和线上接口对照版本对应的测试用例中获取并判断返回码是否为零,如果返回码不为零,则接口用例执行失败;若如果响应码为零,则继续可以进行diff测试。
可选地,基于第一接口响应结果和第二接口响应结果确定第一差异,并基于第二接口响应数据和第三接口响应数据确定第二差异;对第二差异进行去噪处理,并由第一差异和去噪处理后的第二差异构成diff测试结果。
也就是说,可以将待测试接口版本、线上接口版本之间的输出差异作为原始差异(即第一差异),将线上接口版本、线上接口对照版本的输出差异作为非确定性噪声(即第二差异)。
进而再对所得的第二差异进行降噪处理,并由降噪处理后的第二差异和第一差异组成diff测试结果。也就是说,在非确定性噪声无差异(即无噪点)时,diff测试结果仅展示原始差异;而原始差异和非确定性噪声均有差异时,说明接口测试过程中可能受到了环境等其他因素的影响,此时可以将diff测试结果置为无差异,也即diff测试结果无法反映不同版本接口的反馈结果不同是仅受内部逻辑代码影响。
最后,在得到diff测试结果之后,还可以采用预设格式将diff测试结果进行输出,得到diff测试报告,其中,diff测试报告中通过不同颜色对待测试接口进行不同操作所得的diff测试结果进行标记。
具体地,在接口的diff测试报告中通过不同颜色对待测试接口进行不同操作所得的diff测试结果进行标记,其中,上述操作是指对接口进行修改、删除、增加等操作。例如绿色代表新增内容、黄色代表修改内容、红色代表删除内容。另外,还可以增加超链接,实现快速查看第一差异和第二差异。本申请实施例中通过diff测试报告,可以轻松查看发生变更的测试数据是否正确,降低添加接口用例、维护测试数据的时间成本。
具体地,图3是根据本申请实施例的一种可选的接口自动化测试系统的框架示意图,如图3所示,首先构建测试环境,包括待测版本(待测试接口版本)、线上版本(线上接口版本)、线上版本副本(线上接口对照版本);在三个测试环境下分别响应接口测试请求,执行自动化测试,得到接口响应结果,并由所得的接口响应结果组织成测试用例JSON1、JSON2、JSON3进行入库(MySQL)保存;将diff工具充当为一个代理,依据JSON1、JSON2、JSON3进行接口自动化diff测试,得到diff测试结果,并将diff测试结果以报告形式输出。
在上述步骤中,将diff工具作为代理,可以利用线上大量的请求数据在新旧两个版本(即待测试接口版本、线上接口版本、线上接口对照版本)中进行回放,相比于现有手工接口回归方式仅局限于少量的测试数据,很难覆盖到大量的、在生产环境真实会发生的异常请求数据,本申请实施例方法可以减少回归测试设计测试数据的工作量、降低接口自动化成本、有效节省人工验证的时间。同时,根据接口diff筛选出相关联自动化用例,与CI(Continuous Integration,持续集成)相结合达到精简用例减少不必要的用例执行,进而提升CI稳定性。
实施例2
基于本申请实施例1,还提供了一种接口自动化测试装置的实施例,该装置运行时执行上述实施例的上述接口自动化测试方法。其中,图4是根据本申请实施例的一种可选的接口自动化测试装置的结构示意图,如图4所示,该接口自动化测试装置中至少包括第一获取模块41,第二获取模块42和测试模块43,其中:
第一获取模块41,用于获取待测试接口的测试数据,其中,测试数据中至少包括:接口请求数据。
可选地,第一获取模块41还用于获取待测试接口的目标运行数据,其中,目标运行数据中至少包括:线上接口版本在任意一次运行过程中的接口请求数据;对目标运行数据进行解析,得到待测试接口的测试数据。
第二获取模块42,用于采用多个接口测试版本分别对待测试接口的接口请求数据进行测试,得到待测试接口对应的多个接口响应结果和多个接口测试结果,其中,接口测试版本包括以下至少之一:待测试接口版本、线上接口版本、线上接口对照版本。
可选地,第二获取模块42还用于采用待测试接口版本对待测试接口的接口请求数据进行响应测试,得到待测试接口对应的第一接口响应结果和第一接口测试结果;采用线上接口版本对待测试接口的接口请求数据进行响应测试,得到待测试接口对应的第二接口响应结果和第二接口测试结果;采用线上接口对照版本对待测试接口的接口请求数据进行响应测试,得到待测试接口对应的第三接口响应结果和第三接口测试结果。
进一步地,在得到待测试接口对应的多个接口响应结果和多个接口测试结果之后,第二获取模块42还用于基于待测试接口对应的多个接口响应结果确定待测试接口对应的多个测试用例,并将多个测试用例存储至数据库内,其中,测试用例中包括多个字段信息,字段信息包括以下至少之一:接口名称、用户角色、请求URL、请求数据。
测试模块43,用于在待测试接口对应的多个接口响应结果和多个接口测试结果满足预设的diff测试条件时,对待测试接口进行diff测试,得到diff测试结果,其中,diff测试结果用于表征采用多个接口响应结果之间的差异性。
可选地,测试模块43还用于判断待测试接口对应的多个接口响应结果的第一数量是否等于3;在第一数量等于3时,判断待测试接口在线上接口版本进行测试所得的第二接口测试结果和待测试接口在线上接口对照版本进行测试所得的第三接口测试结果是否为执行成功;在第二接口测试结果和第三接口测试结果均为执行成功时,对待测试接口进行diff测试。
具体地,测试模块43可以基于第一接口响应结果和第二接口响应结果确定第一差异,并基于第二接口响应数据和第三接口响应数据确定第二差异;对第二差异进行去噪处理,并由第一差异和去噪处理后的第二差异构成diff测试结果。
另外,该接口自动化测试装置中还包括输出装置,用于采用预设格式将diff测试结果进行输出,得到diff测试报告,其中,diff测试报告中通过不同颜色对待测试接口进行不同操作所得的diff测试结果进行标记。
其中,上述操作是指对接口进行修改、删除、增加等操作。
在上述实施例中,将diff工具作为代理,可以利用线上大量的请求数据在新旧两个版本(即待测试接口版本、线上接口版本、线上接口对照版本)中进行回放,相比于现有手工接口回归方式仅局限于少量的测试数据,很难覆盖到大量的、在生产环境真实会发生的异常请求数据,本申请实施例方法可以减少回归测试设计测试数据的工作量、降低接口自动化成本、有效节省人工验证的时间。同时,根据接口diff筛选出相关联自动化用例,与CI(Continuous Integration,持续集成)相结合达到精简用例减少不必要的用例执行,进而提升CI稳定性。
需要说明的是,上述接口自动化测试装置中的各个模块可以是程序模块(例如是实现某种特定功能的程序指令集合),也可以是硬件模块,对于后者,其可以表现为以下形式,但不限于此:上述各个模块的表现形式均为一个处理器,或者,上述各个模块的功能通过一个处理器实现。
实施例3
根据本申请实施例,还提供了一种非易失性存储介质,该非易失性存储介质中存储有程序,其中,在程序运行时控制非易失性存储介质所在设备执行实施例1中的接口自动化测试方法。
可选地,非易失性存储介质所在设备通过运行该程序执行实现以下步骤:
步骤S202,获取待测试接口的测试数据,其中,测试数据中至少包括:接口请求数据;
步骤S204,采用多个接口测试版本分别对待测试接口的接口请求数据进行测试,得到待测试接口对应的多个接口响应结果和多个接口测试结果,其中,接口测试版本包括以下至少之一:待测试接口版本、线上接口版本、线上接口对照版本;
步骤S206,在待测试接口对应的多个接口响应结果和多个接口测试结果满足预设的diff测试条件时,对待测试接口进行diff测试,得到diff测试结果,其中,diff测试结果用于表征采用多个接口响应结果之间的差异性。
根据本申请实施例,还提供了一种处理器,该处理器用于运行程序,其中,程序运行时执行实施例1中的接口自动化测试方法。
可选地,程序运行时执行实现以下步骤:
步骤S202,获取待测试接口的测试数据,其中,测试数据中至少包括:接口请求数据;
步骤S204,采用多个接口测试版本分别对待测试接口的接口请求数据进行测试,得到待测试接口对应的多个接口响应结果和多个接口测试结果,其中,接口测试版本包括以下至少之一:待测试接口版本、线上接口版本、线上接口对照版本;
步骤S206,在待测试接口对应的多个接口响应结果和多个接口测试结果满足预设的diff测试条件时,对待测试接口进行diff测试,得到diff测试结果,其中,diff测试结果用于表征采用多个接口响应结果之间的差异性。
根据本申请实施例,还提供了一种电子设备,该电子设备包括一个或多个处理器;存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现用于运行程序,其中,程序被设置为运行时执行上述实施例1中的接口自动化测试方法。
可选地,处理器被配置为通过计算机程序执行实现以下步骤:
步骤S202,获取待测试接口的测试数据,其中,测试数据中至少包括:接口请求数据;
步骤S204,采用多个接口测试版本分别对待测试接口的接口请求数据进行测试,得到待测试接口对应的多个接口响应结果和多个接口测试结果,其中,接口测试版本包括以下至少之一:待测试接口版本、线上接口版本、线上接口对照版本;
步骤S206,在待测试接口对应的多个接口响应结果和多个接口测试结果满足预设的diff测试条件时,对待测试接口进行diff测试,得到diff测试结果,其中,diff测试结果用于表征采用多个接口响应结果之间的差异性。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (10)

1.一种接口自动化测试方法,其特征在于,包括:
获取待测试接口的测试数据,其中,所述测试数据中至少包括:接口请求数据;
采用多个接口测试版本分别对所述待测试接口的接口请求数据进行测试,得到所述待测试接口对应的多个接口响应结果和多个接口测试结果,其中,所述接口测试版本包括以下至少之一:待测试接口版本、线上接口版本、线上接口对照版本;
在所述待测试接口对应的多个所述接口响应结果和多个所述接口测试结果满足预设的diff测试条件时,对所述待测试接口进行diff测试,得到diff测试结果,其中,所述diff测试结果用于表征多个所述接口响应结果之间的差异性。
2.根据权利要求1所述的方法,其特征在于,获取待测试接口的测试数据,包括:
获取所述待测试接口的目标运行数据,其中,所述目标运行数据中至少包括:所述线上接口版本在任意一次运行过程中的接口请求数据;
对所述目标运行数据进行解析,得到所述待测试接口的测试数据。
3.根据权利要求1所述的方法,其特征在于,采用多个接口测试版本分别对所述待测试接口的接口请求数据进行接口测试,得到所述待测试接口对应的多个接口响应结果和多个接口测试结果,包括:
采用所述待测试接口版本对所述待测试接口的接口请求数据进行接口测试,得到所述待测试接口对应的第一接口响应结果和第一接口测试结果;
采用所述线上接口版本对所述待测试接口的接口请求数据进行接口测试,得到所述待测试接口对应的第二接口响应结果和第二接口测试结果;
采用所述线上接口对照版本对所述待测试接口的接口请求数据进行接口测试,得到所述待测试接口对应的第三接口响应结果和第三接口测试结果。
4.根据权利要求1所述的方法,其特征在于,在得到所述待测试接口对应的多个接口响应结果和多个接口测试结果之后,所述方法还包括:
基于所述待测试接口对应的多个所述接口响应结果确定所述待测试接口对应的多个测试用例,并将多个所述测试用例存储至数据库内,其中,所述测试用例中包括多个字段信息,所述字段信息中包括以下至少之一:接口名称、用户角色、请求URL、请求数据。
5.根据权利要求3所述的方法,其特征在于,在所述待测试接口对应的多个所述接口响应结果和多个所述接口测试结果满足预设的diff测试条件时,对所述待测试接口进行diff测试,包括:
判断所述待测试接口对应的多个所述接口响应结果的第一数量是否等于3;
在所述第一数量等于3时,判断所述待测试接口在所述线上接口版本进行测试所得的所述第二接口测试结果和所述待测试接口在所述线上接口对照版本进行测试所得的所述第三接口测试结果是否为执行成功;
在所述第二接口测试结果和所述第三接口测试结果均为所述执行成功时,对所述待测试接口进行diff测试。
6.根据权利要求5所述的方法,其特征在于,对所述待测试接口进行diff测试,得到diff测试结果,包括:
基于所述第一接口响应结果和所述第二接口响应结果确定第一差异,并基于所述第二接口响应数据和所述第三接口响应数据确定第二差异;
对所述第二差异进行去噪处理,并由所述第一差异和去噪处理后的所述第二差异构成所述diff测试结果。
7.根据权利要求2所述的方法,其特征在于,在得到diff测试结果之后,所述方法还包括:
采用预设格式将所述diff测试结果进行输出,得到diff测试报告,其中,所述diff测试报告中通过不同颜色对所述待测试接口进行不同操作所得的所述diff测试结果进行标记。
8.一种接口自动化测试装置,其特征在于,包括:
第一获取模块,用于获取待测试接口的测试数据,其中,所述测试数据中至少包括:接口请求数据;
第二获取模块,用于采用多个接口测试版本分别对所述待测试接口的接口请求数据进行测试,得到所述待测试接口对应的多个接口响应结果和多个接口测试结果,其中,所述接口测试版本包括以下至少之一:待测试接口版本、线上接口版本、线上接口对照版本;
测试模块,用于在所述待测试接口对应的多个所述接口响应结果和多个所述接口测试结果满足预设的diff测试条件时,对所述待测试接口进行diff测试,得到diff测试结果,其中,所述diff测试结果用于表征采用多个所述接口测试版本对所述待测试接口进行接口测试的多个所述接口响应结果之间的差异性。
9.一种非易失性存储介质,其特征在于,所述非易失性存储介质中存储有计算机程序,其中,所述非易失性存储介质所在设备通过运行所述计算机程序执行权利要求1至7中任意一项所述接口自动化测试方法。
10.一种电子设备,其特征在于,包括:存储器和处理器,所述处理器用于运行存储在所述存储器中的程序,其中,所述程序运行时执行权利要求1至7中任意一项所述的接口自动化测试方法。
CN202311315008.2A 2023-10-10 2023-10-10 接口自动化测试方法、装置、存储介质和电子设备 Pending CN117251378A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311315008.2A CN117251378A (zh) 2023-10-10 2023-10-10 接口自动化测试方法、装置、存储介质和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311315008.2A CN117251378A (zh) 2023-10-10 2023-10-10 接口自动化测试方法、装置、存储介质和电子设备

Publications (1)

Publication Number Publication Date
CN117251378A true CN117251378A (zh) 2023-12-19

Family

ID=89126173

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311315008.2A Pending CN117251378A (zh) 2023-10-10 2023-10-10 接口自动化测试方法、装置、存储介质和电子设备

Country Status (1)

Country Link
CN (1) CN117251378A (zh)

Similar Documents

Publication Publication Date Title
CN113760704A (zh) Web UI的测试方法、装置、设备以及存储介质
US7757121B1 (en) Requirement driven interoperability/compliance testing systems and methods
CN110659202A (zh) 客户端自动化测试方法及装置
CN110188036A (zh) 一种软件测试方法及装置
CN107908550A (zh) 一种软件缺陷统计处理方法及装置
CN111221727B (zh) 测试方法、装置、电子设备和计算机可读介质
US10558557B2 (en) Computer system testing
CN112559525A (zh) 数据检查系统、方法、装置和服务器
CN111444199B (zh) 数据处理方法及装置、存储介质和处理器
CN113434405B (zh) 测试文件的确定方法及装置、存储介质及电子装置
CN115774707B (zh) 基于对象属性数据处理方法和装置、电子设备和存储介质
CN117493188A (zh) 接口测试方法及装置、电子设备及存储介质
CN111159003B (zh) 一种批处理测试方法及装置
CN117251378A (zh) 接口自动化测试方法、装置、存储介质和电子设备
CN115794197A (zh) 版本信息生成方法、装置、电子设备及非易失性存储介质
CN114328181A (zh) 测试用例的生成和执行方法、装置以及存储介质
CN106547686A (zh) 产品测试方法及装置
CN113238940A (zh) 一种接口测试结果的比对方法、装置、设备和存储介质
CN112650815A (zh) 环境数据的同步方法及装置、存储介质及电子装置
CN111679983A (zh) Java接口静态测试方法及装置
CN110688302B (zh) 一种字段库自动化测试方法及装置
CN112231218B (zh) 自动更新测试诊断脚本的方法、系统、终端及存储介质
CN118502818A (zh) 一种风险策略的配置方法及装置
CN115543807A (zh) 一种自动化回归测试方法、装置、计算机设备及存储介质
CN117743148A (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