CN117076308A - 接口自动化测试方法、装置、可读存储介质及电子设备 - Google Patents

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

Info

Publication number
CN117076308A
CN117076308A CN202311049414.9A CN202311049414A CN117076308A CN 117076308 A CN117076308 A CN 117076308A CN 202311049414 A CN202311049414 A CN 202311049414A CN 117076308 A CN117076308 A CN 117076308A
Authority
CN
China
Prior art keywords
database
data
request
target
tracking identifier
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
CN202311049414.9A
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.)
You Can See Beijing Technology Co ltd AS
Original Assignee
You Can See Beijing Technology Co ltd AS
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 You Can See Beijing Technology Co ltd AS filed Critical You Can See Beijing Technology Co ltd AS
Priority to CN202311049414.9A priority Critical patent/CN117076308A/zh
Publication of CN117076308A publication Critical patent/CN117076308A/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/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开实施例公开了一种接口自动化测试方法、装置、计算机可读存储介质、电子设备及计算机程序产品,其中,该方法包括:利用数据库查询服务,接收用于接口测试的目标数据库请求,从第一数据库中提取与目标数据库请求对应的目标数据跟踪标识;基于目标数据库请求和目标数据跟踪标识,从第二数据库中查询与目标数据库请求对应的请求数据;对请求数据进行协议转换,生成符合第二数据库协议的请求结果数据并输出请求结果数据。本公开实施例能够自动在不同的数据库协议间转换,减少了人工干预测试过程的频次,大大提高了接口自动化测试的通用性、稳定性和效率,还可以根据数据跟踪标识准确且全面地查询到目标数据库请求相关的请求结果数据。

Description

接口自动化测试方法、装置、可读存储介质及电子设备
技术领域
本公开涉及计算机技术领域,尤其是一种接口自动化测试方法、装置、计算机可读存储介质、计算机程序产品及电子设备。
背景技术
接口自动化测试是对系统或组件之间的接口进行测试,主要是校验数据的交换,传递和控制管理过程,以及相互逻辑依赖关系。
为了便于开发者进行接口测试,目前常用的方法是建立一个模拟真实场景的数据库。例如,Mock是用于被测系统的常见解决方案,可以解决类似HTTP(Hypertext TransferProtocol,超文本传输协议)协议的API(Application Programming Interface应用程序接口)依赖,对MySQL和Redis这类数据库协议的依赖非常少。
由于互联网服务业务在开发语言栈方面的多样性,以及业务迭代更新的频次越来越高,如何实现精准模拟实际场景的数据库,以及在使用模拟数据库时如何在不同的数据库协议间转换,是需要解决的问题。
发明内容
为了解决上述技术问题,提出了本公开。本公开的实施例提供了一种接口自动化测试方法、装置、计算机可读存储介质、电子设备及计算机程序产品。
本公开的实施例提供了一种接口自动化测试方法,该方法包括:利用数据库查询服务,接收用于接口测试的目标数据库请求,其中,数据库查询服务基于第一数据库协议建立;基于目标数据库请求,从第一数据库中提取与目标数据库请求对应的目标数据跟踪标识;基于目标数据库请求和目标数据跟踪标识,从第二数据库中查询与目标数据库请求对应的请求数据,其中,第二数据库用于存储预设的测试数据;对请求数据进行协议转换,生成符合第二数据库协议的请求结果数据并输出请求结果数据。
在一些实施例中,在用于利用数据库查询服务,接收用于接口测试的目标数据库请求之前,方法还包括:接收测试请求,并从测试请求中提取数据跟踪标识;根据数据跟踪标识,从第二数据库中查询数据跟踪标识对应的数据库请求集合;基于数据库请求集合和数据跟踪标识,生成待存储到第一数据库中的待存储数据,并将待存储数据存入第一数据库中;执行接口自动化测试操作,并发送目标数据库请求。
在一些实施例中,基于数据库请求集合和数据跟踪标识,生成待存储到第一数据库中的待存储数据,包括:按照预设的加密算法,对数据库请求集合包括的数据库请求分别进行加密计算,得到加密请求集合;基于加密请求集合和数据跟踪标识,生成待存储数据。
在一些实施例中,基于目标数据库请求,从第一数据库中提取与目标数据库请求对应的目标数据跟踪标识,包括:按照加密算法,对目标数据库请求进行加密,得到目标加密请求;从第一数据库中查询目标加密请求对应的数据跟踪标识作为目标数据跟踪标识。
在一些实施例中,在生成符合第二数据库协议的请求结果数据并输出请求结果数据之后,方法还包括:响应于本次测试结束,将第一数据库清空。
在一些实施例中,在用于利用数据库查询服务,接收用于接口测试的目标数据库请求之前,方法还包括:从预设日志存储区获取业务日志集合;从业务日志集合包括的业务日志中,提取包含预设字段的数据,其中,预设字段的数据包括数据跟踪标识;基于包含预设字段的数据,生成用于测试的结构化数据;将结构化数据存入预设的第二数据库中。
在一些实施例中,基于包含预设字段的数据,生成用于测试的结构化数据,包括:对包含预设字段的数据中不符合预设规则的待修正数据,按照预设规则进行修正,得到修正后数据;基于修正后数据和预设字段的数据中符合预设规则的数据,生成用于测试的结构化数据。
根据本公开实施例的另一个方面,提供了一种接口自动化测试装置,该装置包括:第一接收模块,用于利用数据库查询服务,接收用于接口测试的目标数据库请求,其中,数据库查询服务基于第一数据库协议建立;第一提取模块,用于基于目标数据库请求,从第一数据库中提取与目标数据库请求对应的目标数据跟踪标识;第一查询模块,用于基于目标数据库请求和目标数据跟踪标识,从第二数据库中查询与目标数据库请求对应的请求数据,其中,第二数据库用于存储预设的测试数据;转换模块,用于对请求数据进行协议转换,生成符合第二数据库协议的请求结果数据并输出请求结果数据。
根据本公开实施例的另一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时,实现上述接口自动化测试方法的步骤。
根据本公开实施例的另一个方面,提供了一种电子设备,电子设备包括:处理器;用于存储处理器可执行指令的存储器;处理器,用于从存储器中读取可执行指令,并执行指令以实现上述接口自动化测试方法。
根据本公开实施例的另一个方面,提供了一种计算机程序产品,包括计算机程序指令,计算机程序指令被处理器执行时实现上述接口自动化测试方法的步骤。
基于本公开上述实施例提供的接口自动化测试方法、装置、计算机可读存储介质、电子设备及计算机程序产品,通过设置第一数据库和第二数据库,使用第一数据库预先存储数据跟踪标识,使用模拟真实数据库的第二数据库预先存储用于测试的各种数据,在执行接口自动化测试的过程中,当接收到目标数据库请求时,从第一数据库提取对应的目标数据跟踪标识,然后根据目标数据跟踪标识,从第二数据库中查询目标数据库请求对应的上下文数据,最后对上下文数据进行协议转换,得到请求结果数据,从而实现了在接口测试时,能够自动在不同的数据库协议间转换,减少了人工干预测试过程的频次,大大提高了接口自动化测试的通用性、稳定性和效率。此外,由于在从第二数据库查询数据时需要使用数据库请求,而数据库请求不包含数据跟踪标识,因此,可以先从第一数据库查询预先存储的数据跟踪标识,从而可以根据数据跟踪标识准确且全面地查询到目标数据库请求相关的请求结果数据。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤;
图1是本公开所适用的系统图;
图2是本公开一示例性实施例提供的接口自动化测试方法的流程示意图;
图3是本公开另一示例性实施例提供的接口自动化测试方法的流程示意图;
图4是本公开另一示例性实施例提供的接口自动化测试方法的流程示意图;
图5是本公开另一示例性实施例提供的接口自动化测试方法的流程示意图;
图6是本公开另一示例性实施例提供的接口自动化测试方法的流程示意图;
图7是本公开另一示例性实施例提供的接口自动化测试方法的流程示意图;
图8是本公开一示例性实施例提供的接口自动化测试装置的结构示意图;
图9是本公开另一示例性实施例提供的接口自动化测试装置的结构示意图;
图10是本公开一示例性实施例提供的电子设备的结构图。
具体实施方式
下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本公开实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
申请概述
用于模拟真实场景的数据库(例如存储Mock数据的数据库)是接口自动化必备组成单元,现有测试接口的实现通常伴随数据库间(例如MySQL和Redis数据库)频繁的读写操作,如何在不同数据库协议间自动转换以提高接口测试的效率,是需要解决的问题。
本公开实施例旨在解决上述问题,通过设置第一数据库和第二数据库,自动从第二数据库中提取请求的数据,对提取的数据进行协议转换,从而减少了人工干预测试过程的频次,大大提高了接口自动化测试的通用性、稳定性和效率。
示例性系统
图1示出了可以应用本公开的实施例的接口自动化测试方法或接口自动化测试装置的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101,网络102和服务器103。网络102用于在终端设备101和服务器103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101通过网络102与服务器103交互,以接收或发送消息等。终端设备101上可以安装有各种通讯客户端应用,例如搜索类应用、网页浏览器应用、即时通信工具等。
终端设备101可以是各种电子设备,包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端等等的移动终端以及诸如数字电视、台式计算机等等的固定终端。
服务器103可以是提供各种服务的服务器,例如对终端设备101上传的数据库请求进行处理的后台数据库服务器。后台数据库服务器可以根据目标数据库请求,查询到请求结果数据并将请求结果数据反馈给终端设备101。
需要说明的是,本公开的实施例所提供的接口自动化测试方法可以由服务器103执行,也可以由终端设备101执行,相应地,接口自动化测试装置可以设置于服务器103中,也可以设置于终端设备101中。此外,本公开的实施例所提供的接口自动化测试方法可以由服务器103和终端设备101联合执行,例如生成目标数据库请求的操作在终端设备101执行,接收目标数据库请求并从数据库查询的操作在服务器103执行。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。在数据库请求、数据库中的数据不需要从远程获取的情况下,上述系统架构可以不包括网络,只包括服务器或终端设备。
示例性方法
图2是本公开一示例性实施例提供的接口自动化测试方法的流程示意图。本实施例可应用在电子设备(如图1所示的终端设备101或服务器103)上,如图2所示,该方法包括如下步骤:
步骤201,利用数据库查询服务,接收用于接口测试的目标数据库请求。
其中,数据库查询服务基于第一数据库协议建立。可选的,第一数据库协议可以是通用的HTTP协议,数据库查询服务即基于HTTP协议建立的服务。需要说明的是,本实施例包括的步骤201-步骤204,可以均由数据库查询服务执行。
目标数据库请求可以是自动化测试程序在运行时生成的。目标数据库请求可以用于从下述第二数据库中查询相应的数据。作为示例,目标数据库请求可以是SQL(Structured Query Language,结构化查询语言)请求,用于从MySQL数据库中查询相应的数据。
步骤202,基于目标数据库请求,从第一数据库中提取与目标数据库请求对应的目标数据跟踪标识。
其中,数据跟踪标识(又可以称为trace_id)可以是用于对业务日志进行链路跟踪的标识,业务日志中可以包括众多数据库请求,这些请求之间通过数据跟踪标识来进行链接,数据跟踪标识可以体现多个数据请求之间的关系。
第一数据库用于对应存储数据跟踪标识和数据库请求。例如,第一数据库可以是Redis数据库,其通过键值对的方式预先对应存储数据库请求和数据跟踪标识。
通常,在进行接口测试前,可以从一系列的测试请求中提取出数据跟踪标识,从下述第二数据库中提取出与每个数据跟踪标识对应的所有数据库请求(例如所有的SQL请求),并将各个数据库请求和对应的数据跟踪标识存储到第一数据库中。电子设备可以从第一数据库中查找出与上述目标数据库请求对应的数据跟踪标识作为目标数据跟踪标识。
由于在从数据库查询数据时需要使用数据库请求,而数据库请求不包含数据跟踪标识,因此,本实施例可以先从第一数据库查询预先存储的数据跟踪标识,根据数据跟踪标识查询到目标数据库请求相关的请求结果数据。
步骤203,基于目标数据库请求和目标数据跟踪标识,从第二数据库中查询与目标数据库请求对应的请求数据。
其中,第二数据库用于存储预设的测试数据。例如,测试数据可以是Mock数据,Mock数据可以是人工设置的,也可以是从业务日志中自动提取的。
通常,第二数据库中的数据包括多个字段,可以从第二数据库中的数据包括的数据跟踪标识字段,查询到与目标数据库请求相关联的上下文数据作为请求数据。
可选的,若目标数据跟踪标识对应第二数据库中的多个数据库请求语句,则可以查找到多个数据库请求语句,进一步,可以按照次序(例如数据库请求的编号),依次查找到的数据库请求,返回请求数据。作为示例,一个数据跟踪标识下存在多条SQL请求语句,按照先查后写再查的处理逻辑,存在如下三条SQL请求语句:
Select*from work,seq_id=1;
Update work set status=1,seq_id=2;
Select*from work,seq_id=3;
seq_id=1和seq_id=3的请求语句期望的返回是不一样的,因此会按seq_id的顺序返回查询到的语句。当目标数据库请求为select*from work时,根据数据跟踪标识查询到两条SQL请求语句,返回seq_id=1的那条语句对应的请求数据,并将该条语句标记为已使用,第二次接收到select*from work时,因为第一条已经标记为已使用,因此会按顺序返回seq_id=3的那条语句对应的请求数据。
步骤204,对请求数据进行协议转换,生成符合第二数据库协议的请求结果数据并输出请求结果数据。
通常,数据库查询服务可以包括协议转换器,该协议转换器可以将目标数据库请求转换为字符串,数据库查询服务根据字符串从第二数据库查询数据,在从第二数据库查询到对应的请求数据后,由协议转换器将请求数据转换为符合第二数据库协议的请求结果数据。例如,第二数据库协议可以是MySQL协议,请求结果数据的格式可以为JSON(JavaScript Object Notation,JS对象简谱)数据。
请求结果数据可以通过各种方式输出,例如可以反馈给接口自动化测试终端进行测试结果断言。
本公开的上述实施例提供的方法,通过设置第一数据库和第二数据库,使用第一数据库预先存储数据跟踪标识,使用模拟真实数据库的第二数据库预先存储用于测试的各种数据,在执行接口自动化测试的过程中,当接收到目标数据库请求时,从第一数据库提取对应的目标数据跟踪标识,然后根据目标数据跟踪标识,从第二数据库中查询目标数据库请求对应的上下文数据,最后对上下文数据进行协议转换,得到请求结果数据,从而实现了在接口测试时,能够自动在不同的数据库协议间转换,减少了人工干预测试过程的频次,大大提高了接口自动化测试的通用性、稳定性和效率。此外,由于在从第二数据库查询数据时需要使用数据库请求,而数据库请求不包含数据跟踪标识,因此,可以先从第一数据库查询预先存储的数据跟踪标识,从而可以根据数据跟踪标识准确且全面地查询到目标数据库请求相关的请求结果数据。
在一些可选的实现方式中,如图3所示,在步骤201之前,该方法还包括:
步骤301,接收测试请求,并从测试请求中提取数据跟踪标识。
其中,测试请求可以是对真实场景下的各种请求进行录制而得到的请求。测试请求可以是HTTP协议的请求,电子设备可以从测试请求的头部(header)提取数据跟踪标识。
步骤302,根据数据跟踪标识,从第二数据库中查询数据跟踪标识对应的数据库请求集合。
具体地,第二数据库中的数据包括数据跟踪标识字段,根据数据跟踪标识字段,可以查询到数据跟踪标识对应的数据库请求集合。
例如,同一数据跟踪标识对应的SQL请求语句包括以下三条:
Select*from work,seq_id=1;
Update work set status=1,seq_id=2;
Select*from work,seq_id=3;
因此,上述seq_id为1、2、3的三条SQL请求组成一个数据库请求集合。
步骤303,基于数据库请求集合和数据跟踪标识,生成待存储到第一数据库中的待存储数据,并将待存储数据存入第一数据库中。
可选的,可以将数据库请求集合和数据跟踪标识作为待存储数据直接存入第一数据库中;或者,第一数据库为Redis数据库,可以先对数据库请求集合进行加密计算,将加密计算结果和数据跟踪标识以键值对的形式存入第一数据库中。
可选的,步骤301-步骤303可以在接口自动化测试操作前,通过@before注解实现。
步骤304,执行接口自动化测试操作,并发送目标数据库请求。
其中,接口自动化测试操作是指自动发送数据库请求,并根据数据库请求从第二数据库中查询请求结果数据,将查询请求结果数据与录制的请求结果数据进行对比,从而完成对一条数据库请求的测试。本实施例的数据库请求是逐条发送的,目标数据库请求可以发送至数据库查询服务,由数据库查询服务利用接收的目标数据库请求执行步骤201-步骤204。
本实施例通过在执行自动化测试操作前,预先从测试请求中提取数据跟踪标识,根据数据跟踪标识,从第二数据库中查询相关的数据库请求,将数据跟踪标识和数据库请求关联存储到第一数据库中,从而实现了在从第二数据库查询数据时,可以首先从第一数据库准确查询到预先存储的数据跟踪标识,有助于提高数据查询的全面性、准确性和效率。
在一些可选的实现方式中,如图4所示,步骤303包括:
步骤3031,按照预设的加密算法,对数据库请求集合包括的数据库请求分别进行加密计算,得到加密请求集合。
其中,上述加密算法可以为任意加密算法,例如,MD5(Message-Digest Algorithm5,信息摘要算法第五版)算法。加密请求集合中的每个加密请求对应一条数据库请求。
作为示例,数据库请求的类型为SQL请求,可以对SQL请求语句进行加密,再对加密后的数据添加表示请求的类型的前缀,得到一条加密请求。例如,加密请求为SVC-MYSQL-GLOBAL-bd1b7c5d2e77ddf0afc68fe9a03736ac。
步骤3032,基于加密请求集合和数据跟踪标识,生成待存储数据。
待存储数据的类型可以基于第一数据库的类型确定。例如,当第一数据库为Redis数据库时,待存储数据为键值对数据,其中,加密请求为键(key),数据跟踪标识为(value)。
本实施例通过对数据库请求集合包括的数据库请求分别进行加密计算,从而得到第一数据库中存储的数据,可以降低第一数据库的空间占用量,提高从第一数据库查找数据跟踪标识的效率。
在一些可选的实现方式中,如图5所示,步骤202包括:
步骤2021,按照加密算法,对目标数据库请求进行加密,得到目标加密请求。
其中,生成目标加密请求的方法与上述步骤3031的方法相同。
步骤2022,从第一数据库中查询目标加密请求对应的数据跟踪标识作为目标数据跟踪标识。
本实施例根据目标加密请求从第一数据库中查询目标数据跟踪标识,可以实现快速、精准地查询到目标数据跟踪标识,有助于进一步接口自动化测试的准确性和效率。
在一些可选的实现方式中,在步骤204之后,该方法还包括:
响应于本次测试结束,将第一数据库清空。
其中,本次测试结束的标志可以是对发送的一条数据库请求响应后得到请求结果数据,也可以是对依次发送的多条数据库请求响应后得到多条请求结果数据。可选的,可以通过@after注解的方式,在测试结束后将第一数据库清空。
本实施例通过在测试结束后,将第一数据库清空,可以避免第一数据库中的数据过多导致的数据冲突问题,即避免第一数据库中存在脏数据,提高测试稳定性。
在一些可选的实现方式中,如图6所示,在步骤201之前,该方法还包括:
步骤601,从预设日志存储区获取业务日志集合。
其中,预设日志存储区可以设置在电子设备本地,也可以设置在远程。业务日志集合包括的业务日志用于记录用户访问各类网络地址所记录的信息。例如,业务日志中包括大量的数据跟踪标识、数据库请求、访问地址、请求返回值等等。
步骤602,从业务日志集合包括的业务日志中,提取包含预设字段的数据。
其中,预设字段的数据包括数据跟踪标识。此外,预设字段的数据还可以包括但不限于访问地址、数据库请求、请求返回值、数据库类型等。不包含预设字段的数据可以被过滤掉。
步骤603,基于包含预设字段的数据,生成用于测试的结构化数据。
具体地,可以将上述包含预设字段的数据,直接转换为预设结构的结构化数据;或者,可以检测包含预设字段的数据的格式是否符合格式条件,若不符合,对数据格式进行修正,再将修正后的数据转换为结构化数据。
步骤604,将结构化数据存入预设的第二数据库中。
第二数据库中的数据即Mock数据,用于接口测试时进行查询。
本实施例通过从业务日志中提取数据,得到用于接口测试的第二数据库,实现了自动化地生成第二数据库,相比目前的Mock数据生成方法,本实施例无需人工编写和维护Mock数据,大大提高了生成第二数据库的效率,自动生成的第二数据库可以精准还原实际场景下的各种请求数据,提高了接口测试的精度。
在一些可选的实现方式中,如图7所示,步骤603包括:
步骤6031,对包含预设字段的数据中不符合预设规则的待修正数据,按照预设规则进行修正,得到修正后数据。
预设规则可以根据实际需要任意设置,例如,若数据包含时间戳,将时间戳转换为标准格式的时间信息;若数据包含数组,则将数组按照预设顺序排序;若数据包含默认数据类型(例如字符型)的数值,则将该数值转换为预设数据类型(例如整型)。
步骤6032,基于修正后数据和预设字段的数据中符合预设规则的数据,生成用于测试的结构化数据。
即,将修正后数据和无需修正的数据,转换为预设结构的结构化数据。
本实施例通过对从业务日志中的提取的数据进行修正,实现了对第二数据库中的数据的格式进行统一,便于从第二数据库中准确插值数据,从而有助于提高接口测试时对数据进行请求的准确性。
示例性装置
图8是本公开一示例性实施例提供的接口自动化测试装置的结构示意图。本实施例可应用在电子设备上,如图8所示,接口自动化测试装置包括:第一接收模块801,用于利用数据库查询服务,接收用于接口测试的目标数据库请求,其中,数据库查询服务基于第一数据库协议建立;第一提取模块802,用于基于目标数据库请求,从第一数据库中提取与目标数据库请求对应的目标数据跟踪标识;第一查询模块803,用于基于目标数据库请求和目标数据跟踪标识,从第二数据库中查询与目标数据库请求对应的请求数据,其中,第二数据库用于存储预设的测试数据;转换模块804,用于对请求数据进行协议转换,生成符合第二数据库协议的请求结果数据并输出请求结果数据。
在本实施例中,第一接收模块801可以利用数据库查询服务,接收用于接口测试的目标数据库请求。
其中,数据库查询服务基于第一数据库协议建立。可选的,第一数据库协议可以是通用的HTTP协议,数据库查询服务即基于HTTP协议建立的服务。目标数据库请求可以是自动化测试程序在运行时生成的。目标数据库请求可以用于从下述第二数据库中查询相应的数据。作为示例,目标数据库请求可以是SQL请求,用于从MySQL数据库中查询相应的数据。
在本实施例中,第一提取模块802基于目标数据库请求,从第一数据库中提取与目标数据库请求对应的目标数据跟踪标识。
其中,数据跟踪标识(又可以称为trace_id)可以是用于对业务日志进行链路跟踪的标识,业务日志中可以包括众多数据库请求,这些请求之间通过数据跟踪标识来进行链接,数据跟踪标识可以体现多个数据请求之间的关系。
第一数据库用于对应存储数据跟踪标识和数据库请求。例如,第一数据库可以是Redis数据库,其通过键值对的方式预先对应存储数据库请求和数据跟踪标识。
通常,在进行接口测试前,可以从一系列的测试请求中提取出数据跟踪标识,从下述第二数据库中提取出与每个数据跟踪标识对应的所有数据库请求(例如所有的SQL请求),并将各个数据库请求和对应的数据跟踪标识存储到第一数据库中。第一提取模块802可以从第一数据库中查找出与上述目标数据库请求对应的数据跟踪标识作为目标数据跟踪标识。
由于在从数据库查询数据时需要使用数据库请求,而数据库请求不包含数据跟踪标识,因此,本实施例可以先从第一数据库查询预先存储的数据跟踪标识,根据数据跟踪标识查询到目标数据库请求相关的请求结果数据。
在本实施例中,第一查询模块803可以基于目标数据库请求和目标数据跟踪标识,从第二数据库中查询与目标数据库请求对应的请求数据。
其中,第二数据库用于存储预设的测试数据。例如,测试数据可以是Mock数据,Mock数据可以是人工设置的,也可以是从业务日志中自动提取的。
通常,第二数据库中的数据包括多个字段,可以从第二数据库中的数据包括的数据跟踪标识字段,查询到与目标数据库请求相关联的上下文数据作为请求数据。
在本实施例中,转换模块804可以对请求数据进行协议转换,生成符合第二数据库协议的请求结果数据并输出请求结果数据。
通常,数据库查询服务可以包括协议转换器,该协议转换器可以将目标数据库请求转换为字符串,数据库查询服务根据字符串从第二数据库查询数据,在从第二数据库查询到对应的请求数据后,由协议转换器将请求数据转换为符合第二数据库协议的请求结果数据。例如,第二数据库协议可以是MySQL协议。
请求结果数据可以通过各种方式输出,例如可以反馈给接口自动化测试终端进行测试结果断言。
参照图9,图9是本公开另一示例性实施例提供的接口自动化测试装置的结构示意图。
在一些可选的实现方式中,该装置还包括:第二接收模块805,用于接收测试请求,并从测试请求中提取数据跟踪标识;第二查询模块806,用于根据数据跟踪标识,从第二数据库中查询数据跟踪标识对应的数据库请求集合;第一生成模块807,用于基于数据库请求集合和数据跟踪标识,生成待存储到第一数据库中的待存储数据,并将待存储数据存入第一数据库中;发送模块808,用于执行接口自动化测试操作,并发送目标数据库请求。
在一些可选的实现方式中,第一生成模块807包括:第一加密单元8071,用于按照预设的加密算法,对数据库请求集合包括的数据库请求分别进行加密计算,得到加密请求集合;第一生成单元8072,用于基于加密请求集合和数据跟踪标识,生成待存储数据。
在一些可选的实现方式中,第一提取模块802包括:第二加密单元8021,用于按照加密算法,对目标数据库请求进行加密,得到目标加密请求;查询单元8022,用于从第一数据库中查询目标加密请求对应的数据跟踪标识作为目标数据跟踪标识。
在一些可选的实现方式中,该装置还包括:清空模块809,用于响应于本次测试结束,将第一数据库清空。
在一些可选的实现方式中,该装置还包括:获取模块810,用于从预设日志存储区获取业务日志集合;第二提取模块811,用于从业务日志集合包括的业务日志中,提取包含预设字段的数据,其中,预设字段的数据包括数据跟踪标识;第二生成模块812,用于基于包含预设字段的数据,生成用于测试的结构化数据;存储模块813,用于将结构化数据存入预设的第二数据库中。
在一些可选的实现方式中,第二生成模块812包括:修正单元8121,用于对包含预设字段的数据中不符合预设规则的待修正数据,按照预设规则进行修正,得到修正后数据;第二生成单元8122,用于基于修正后数据和预设字段的数据中符合预设规则的数据,生成用于测试的结构化数据。
本公开上述实施例提供的接口自动化测试装置,通过设置第一数据库和第二数据库,使用第一数据库预先存储数据跟踪标识,使用模拟真实数据库的第二数据库预先存储用于测试的各种数据,在执行接口自动化测试的过程中,当接收到目标数据库请求时,从第一数据库提取对应的目标数据跟踪标识,然后根据目标数据跟踪标识,从第二数据库中查询目标数据库请求对应的上下文数据,最后对上下文数据进行协议转换,得到请求结果数据,从而实现了在接口测试时,能够自动在不同的数据库协议间转换,减少了人工干预测试过程的频次,大大提高了接口自动化测试的通用性、稳定性和效率。此外,由于在从第二数据库查询数据时需要使用数据库请求,而数据库请求不包含数据跟踪标识,因此,可以先从第一数据库查询预先存储的数据跟踪标识,从而可以根据数据跟踪标识准确且全面地查询到目标数据库请求相关的请求结果数据。
示例性电子设备
下面,参考图10来描述根据本公开实施例的电子设备。该电子设备可以是如图1所示的终端设备101和服务器103中的任一个或两者、或与它们独立的单机设备,该单机设备可以与终端设备101和服务器103进行通信,以从它们接收所采集到的输入信号。
图10图示了根据本公开实施例的电子设备的框图。
如图10所示,电子设备1000包括一个或多个处理器1001和存储器1002。
处理器1001可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备1000中的其他组件以执行期望的功能。
存储器1002可以包括一个或多个计算机程序产品,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器1001可以运行程序指令,以实现上文的本公开的各个实施例的接口自动化测试方法以及/或者其他期望的功能。在计算机可读存储介质中还可以存储诸如数据库请求等各种内容。
在一个示例中,电子设备1000还可以包括:输入装置1003和输出装置1004,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
例如,在该电子设备是终端设备101或服务器103时,该输入装置1003可以是鼠标、键盘等设备,用于输入数据库请求、各种命令等。在该电子设备是单机设备时,该输入装置1003可以是通信网络连接器,用于从终端设备101和服务器103接收所输入的数据库请求、各种命令等。
该输出装置1004可以向外部输出各种信息,包括请求结果数据。该输出装置1004可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出装置等等。
当然,为了简化,图10中仅示出了该电子设备1000中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备1000还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述部分中描述的根据本公开各种实施例的接口自动化测试方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的接口自动化测试方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

Claims (10)

1.一种接口自动化测试方法,包括:
利用数据库查询服务,接收用于接口测试的目标数据库请求,其中,所述数据库查询服务基于第一数据库协议建立;
基于所述目标数据库请求,从第一数据库中提取与所述目标数据库请求对应的目标数据跟踪标识;
基于所述目标数据库请求和所述目标数据跟踪标识,从第二数据库中查询与所述目标数据库请求对应的请求数据,其中,所述第二数据库用于存储预设的测试数据;
对所述请求数据进行协议转换,生成符合第二数据库协议的请求结果数据并输出所述请求结果数据。
2.根据权利要求1所述的方法,其中,在所述用于利用数据库查询服务,接收用于接口测试的目标数据库请求之前,所述方法还包括:
接收测试请求,并从所述测试请求中提取数据跟踪标识;
根据所述数据跟踪标识,从所述第二数据库中查询所述数据跟踪标识对应的数据库请求集合;
基于所述数据库请求集合和所述数据跟踪标识,生成待存储到所述第一数据库中的待存储数据,并将所述待存储数据存入所述第一数据库中;
执行接口自动化测试操作,并发送所述目标数据库请求。
3.根据权利要求2所述的方法,其中,所述基于所述数据库请求集合和所述数据跟踪标识,生成待存储到所述第一数据库中的待存储数据,包括:
按照预设的加密算法,对所述数据库请求集合包括的数据库请求分别进行加密计算,得到加密请求集合;
基于所述加密请求集合和所述数据跟踪标识,生成待存储数据。
4.根据权利要求3所述的方法,其中,所述基于所述目标数据库请求,从第一数据库中提取与所述目标数据库请求对应的目标数据跟踪标识,包括:
按照所述加密算法,对所述目标数据库请求进行加密,得到目标加密请求;
从所述第一数据库中查询所述目标加密请求对应的数据跟踪标识作为所述目标数据跟踪标识。
5.根据权利要求1所述的方法,其中,在所述生成符合第二数据库协议的请求结果数据并输出所述请求结果数据之后,所述方法还包括:
响应于本次测试结束,将所述第一数据库清空。
6.根据权利要求1-5任一项所述的方法,其中,在所述用于利用数据库查询服务,接收用于接口测试的目标数据库请求之前,所述方法还包括:
从预设日志存储区获取业务日志集合;
从所述业务日志集合包括的业务日志中,提取包含预设字段的数据,其中,所述预设字段的数据包括数据跟踪标识;
基于所述包含预设字段的数据,生成用于测试的结构化数据;
将所述结构化数据存入预设的第二数据库中。
7.根据权利要求6所述的方法,其中,所述基于所述包含预设字段的数据,生成用于测试的结构化数据,包括:
对所述包含预设字段的数据中不符合预设规则的待修正数据,按照预设规则进行修正,得到修正后数据;
基于所述修正后数据和所述预设字段的数据中符合所述预设规则的数据,生成用于测试的结构化数据。
8.一种接口自动化测试装置,包括:
第一接收模块,用于利用数据库查询服务,接收用于接口测试的目标数据库请求,其中,所述数据库查询服务基于第一数据库协议建立;
第一提取模块,用于基于所述目标数据库请求,从第一数据库中提取与所述目标数据库请求对应的目标数据跟踪标识;
第一查询模块,用于基于所述目标数据库请求和所述目标数据跟踪标识,从第二数据库中查询与所述目标数据库请求对应的请求数据,其中,所述第二数据库用于存储预设的测试数据;
转换模块,用于对所述请求数据进行协议转换,生成符合第二数据库协议的请求结果数据并输出所述请求结果数据。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序产品;
处理器,用于执行所述存储器中存储的计算机程序产品,且所述计算机程序产品被执行时,实现上述权利要求1-7任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,该计算机程序指令被处理器执行时,实现上述权利要求1-7任一所述的方法。
CN202311049414.9A 2023-08-18 2023-08-18 接口自动化测试方法、装置、可读存储介质及电子设备 Pending CN117076308A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311049414.9A CN117076308A (zh) 2023-08-18 2023-08-18 接口自动化测试方法、装置、可读存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311049414.9A CN117076308A (zh) 2023-08-18 2023-08-18 接口自动化测试方法、装置、可读存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN117076308A true CN117076308A (zh) 2023-11-17

Family

ID=88703729

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311049414.9A Pending CN117076308A (zh) 2023-08-18 2023-08-18 接口自动化测试方法、装置、可读存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN117076308A (zh)

Similar Documents

Publication Publication Date Title
US9639444B2 (en) Architecture for end-to-end testing of long-running, multi-stage asynchronous data processing services
CN109614327B (zh) 用于输出信息的方法和装置
CN112214505B (zh) 数据同步方法、装置、计算机可读存储介质及电子设备
CN111881183B (zh) 企业名称匹配方法和装置、以及存储介质和电子设备
CN110688096B (zh) 包含插件的应用程序的构建方法、装置、介质及电子设备
CN111683066A (zh) 异构系统集成方法、装置、计算机设备和存储介质
CN113076729B (zh) 用于报表导入的方法及系统、可读存储介质及电子设备
CN113760948A (zh) 一种数据查询的方法及装置
CN111814449B (zh) 表单解析方法、装置、设备及存储介质
US11997216B2 (en) Systems and methods for maintaining secure, encrypted communications across distributed computer networks by linking cryptography-based digital repositories in order to perform blockchain operations in decentralized applications
US20230306128A1 (en) Systems and methods for using secure, encrypted communications across distributed computer networks to provide variable resiliency when indexing blockchain states for performing blockchain operations in decentralized applications using cryptography-based digital repositories
CN115016784A (zh) 低代码应用复用方法、应用解析系统、设备及存储介质
CN111078764B (zh) 数据处理方法、装置、计算机可读存储介质及电子设备
CN112579428B (zh) 接口测试的方法、装置、电子设备和存储介质
CN117076308A (zh) 接口自动化测试方法、装置、可读存储介质及电子设备
CN116069725A (zh) 文件迁移方法、装置、设备、介质和程序产品
CN112486566B (zh) 代码文件处理方法、装置、设备及存储介质
US20230269085A1 (en) Systems and methods for using secure, encrypted communications across distributed computer networks to efficiently update cryptography-based digital repositories for performing blockchain operations in decentralized applications
US20230269084A1 (en) Systems and methods for selecting secure, encrypted communications across distributed computer networks for cryptography-based digital repositories in order to perform blockchain operations in decentralized applications
CN116562954A (zh) 用户渠道归属认定方法、装置、存储介质及程序产品
CN113779018A (zh) 一种数据处理方法和装置
CN118069539B (zh) 数据处理的方法、装置、电子设备和存储介质
CN111400623A (zh) 用于搜索信息的方法和装置
CN112905164A (zh) 一种项目代码处理方法和装置
CN115150349B (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