Nothing Special   »   [go: up one dir, main page]

CN112965901B - Api的测试方法、服务器、系统以及电子设备 - Google Patents

Api的测试方法、服务器、系统以及电子设备 Download PDF

Info

Publication number
CN112965901B
CN112965901B CN202110247200.7A CN202110247200A CN112965901B CN 112965901 B CN112965901 B CN 112965901B CN 202110247200 A CN202110247200 A CN 202110247200A CN 112965901 B CN112965901 B CN 112965901B
Authority
CN
China
Prior art keywords
request information
api
detected
request
playback
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.)
Active
Application number
CN202110247200.7A
Other languages
English (en)
Other versions
CN112965901A (zh
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202110247200.7A priority Critical patent/CN112965901B/zh
Publication of CN112965901A publication Critical patent/CN112965901A/zh
Application granted granted Critical
Publication of CN112965901B publication Critical patent/CN112965901B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • 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/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • G06F11/3696Methods or tools to render software testable

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

本申请公开了一种API的测试方法、服务器、系统以及电子设备,涉及云计算技术领域。在对API进行测试时,云服务器在获取到业务服务器录制的待检测API对应的第一请求信息后,不是直接向云服务器发送回放指示,而是先根据第一请求信息所属的请求类型,在确定对第一请求信息中目标参数的取值进行替换时,生成该目标参数的替换方式;并将该替换方式携带在回放指示中发送给业务服务器,以使业务服务器根据该替换方式对待检测API进行测试,这样可以有效地避免因写请求中参数的取值发生变化而导致业务服务器侧回放失败,使得在根据回放操作结果对待检测API进行测试时,提高了待检测API自动化测试的测试结果的准确度。

Description

API的测试方法、服务器、系统以及电子设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种API的测试方法、服务器、系统以及电子设备,具体可用于云计算技术领域。
背景技术
一个产品从初始到最终完善,需要经历许多版本的迭代。在迭代过程中,每增加一个应用程序接口(Application Programming Interface,API),都需要构造大量的测试场景对该API进行测试,以保障该API的稳定性,同时为了保障该API的可用性,每次迭代都需要进行大量的回归,人工操作比较繁琐。
为了避免人工操作繁琐,可以考虑基于录制回放的方式对待检测API进行自动化测试。但是,在执行回放操作时,若该待检测API对应的请求信息为写请求,则在回放时会出现回放失败的问题,从而导致API自动化测试的测试结果的准确度较低。
发明内容
本申请提供了一种API的测试方法、服务器、系统以及电子设备,在对待检测API进行自动化测试时,避免因请求中参数的取值发生变化而导致回放失败,提高了API自动化测试的测试结果的准确度。
根据本申请的第一方面,提供了一种应用程序接口API的测试方法,该应用程序接口API的测试方法可以包括:
获取业务服务器录制的待检测API对应的第一请求信息。
根据所述第一请求信息所属的请求类型,在确定对所述第一请求信息中目标参数的取值进行替换时,生成所述目标参数的替换方式。
向所述业务服务器发送回放指示,其中,所述回放指示包括所述第一请求信息的标识和所述替换方式,所述回放指示用于指示所述业务服务器根据所述第一请求信息的标识和所述替换方式对所述待检测API进行测试。
根据本申请的第二方面,提供了一种应用程序接口API的测试方法,该应用程序接口API的测试方法可以包括:
向云服务器发送录制的待检测API对应的第一请求信息。
接收所述云服务器发送的回放指示,其中,所述回放指示包括所述第一请求信息的标识和所述第一请求信息中目标参数的替换方式。
根据所述替换方式对所述目标参数进行替换,并对替换后的第一请求信息执行回放操作。
根据回放操作结果对所述待检测API进行测试。
根据本申请的第三方面,提供了一种云服务器,包括:
获取单元,用于获取业务服务器录制的待检测API对应的第一请求信息。
处理单元,用于根据所述第一请求信息所属的请求类型,在确定对所述第一请求信息中目标参数的取值进行替换时,生成所述目标参数的替换方式;
发送单元,用于向所述业务服务器发送回放指示,其中,所述回放指示包括所述第一请求信息的标识和所述替换方式,所述回放指示用于指示所述业务服务器根据所述第一请求信息的标识和所述替换方式对所述待检测API进行测试。
根据本申请的第四方面,提供了一种业务服务器,包括:
发送单元,用于向云服务器发送录制的待检测API对应的第一请求信息。
接收单元,用于接收所述云服务器发送的回放指示,其中,所述回放指示包括所述第一请求信息的标识和所述第一请求信息中目标参数的替换方式。
处理单元,用于根据所述替换方式对所述目标参数进行替换,并对替换后的第一请求信息执行回放操作。
测试单元,用于根据回放操作结果对所述待检测API进行测试。
根据本申请的第五方面,提供了一种应用程序接口API的测试系统,包括上述第三方面所述的云服务器,和上述第四方面所述的业务服务器。
根据本申请的第六方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述第一方面所述的应用程序接口API的测试;或者,以使所述至少一个处理器能够执行上述第二方面所述的应用程序接口API的测试。
根据本申请的第七方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行上述第一方面所述的应用程序接口API的测试;或者,执行上述第二方面所述的应用程序接口API的测试。
根据本申请的第八方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序,所述计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从所述可读存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得电子设备执行第一方面所述的方法。
根据本申请的技术方案,在对API进行测试时,云服务器在获取到业务服务器录制的待检测API对应的第一请求信息后,不是直接向云服务器发送回放指示,而是先根据第一请求信息所属的请求类型,在确定对第一请求信息中目标参数的取值进行替换时,生成该目标参数的替换方式;并将该替换方式携带在回放指示中发送给业务服务器,以使业务服务器根据该替换方式对待检测API进行测试,这样可以有效地避免因写请求中参数的取值发生变化而导致业务服务器侧回放失败,使得在根据回放操作结果对待检测API进行测试时,提高了待检测API自动化测试的测试结果的准确度。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本申请实施例提供的一种系统架构示意图;
图2是根据本申请第一实施例提供的应用程序接口API的测试方法的流程示意图;
图3是本申请实施例提供的一种现有技术中基于录制回放的示意图;
图4是本申请实施例提供的又一种现有技术中基于录制回放的示意图;
图5是根据本申请第二实施例提供的获取业务服务器录制的待检测API对应的第一请求信息的流程示意图;
图6是本申请实施例提供的一种任务创建的示意图;
图7是本申请实施例提供的另一种任务创建的示意图,可以看出;
图8是根据本申请第三实施例提供的应用程序接口API的测试方法的流程示意图;
图9是本申请实施例提供的一种AI清洗交互流程示意图;
图10是本申请实施例提供的一种鉴权处理示意图;
图11是根据本申请第四实施例提供的根据比较结果对待检测API进行测试的流程示意图;
图12是根据本申请第五实施例提供的云服务器的结构示意图;
图13是根据本申请第六实施例提供的业务服务器的结构示意图;
图14是本申请实施例提供的一种电子设备的示意性框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在本申请的实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。在本申请的文字描述中,字符“/”一般表示前后关联对象是一种“或”的关系。
本申请实施例提供的技术方案可以应用于API测试的场景中。一个产品从初始到最终完善,需要经历许多版本的迭代。在迭代过程中,每增加一个应用程序接口(Application Programming Interface,API),都需要构造大量的测试场景对该API进行测试,以保障该API的稳定性,同时为了保障该API的可用性,每次迭代都需要进行大量的回归,人工操作比较繁琐。
为了避免人工操作繁琐,可以考虑基于录制回放的方式,对待检测API进行自动化测试。其实现原理为:在执行录制操作时,录制待检测API对应的请求信息,以及该待检测API在录制环境下的API响应信息;在执行回放操作时,获取该待检测API在回放环境下的API响应信息,并将待检测API在录制环境下的API响应信息,和该待检测API在回放环境下的API响应信息进行比较,并根据比较结果对待检测API进行自动化测试。
但是,现有技术中,在执行回放操作时,若该待检测API对应的请求信息为写请求,则在回放时会出现回放失败的问题,从而导致API自动化测试的测试结果的准确度较低。
为了解决回放失败的问题,从而提高API自动化测试的测试结果的准确度,可以基于OpenResty实现API自动化测试。其中,OpenResty基于Nginx开发,由于Nginx的mirror功能无法用来实现录制回放,原因在于:(1)Nginx无法以开关的方式开启或者关闭引流功能;(2)Nginx只能支持实时回放,且mirror功能无法获取到API请求对应的响应信息;(3)Nginx无法方便的对引流请求类型以及回放环境进行个性化设置。
而基于Nginx开发的OpenResty却同时具备:(1)托管前端及后端全部数据、通过reqesutid作为分流标记,其中,后16位作为灰度标识,利用nginx的upstream功能转发到不同的后端环境中;(2)托管后端订单回调、资源回调回调请求,实现了订单、资源的灰度功能;(3)整体性能与nginx转发性能相差无几。因此,通过OpenResty可以方便地获取到业务的所有API数据,且对业务代码没有任何的侵入。
基于上述构思,在本申请实施例中,基于OpenResty开发了数据抓取模块和回放模块,以通过数据抓取模块和回放模块实现API的自动化测试。本方案采取master模块/agent模块的结构实现,master模块即为控制模块,主要用于管理控制层,负责录制任务和回放任务的下发,同时负责抓取策略、鉴权信息的管理等,其中,抓取策略用于描述需要录制的API;agent模块主要即为执行模型,主要用于根据下发的控制信息执行具体的动作,例如录制或者回放,示例的,可参见图1所示,图1是本申请实施例提供的一种系统架构示意图,该系统架构中可以包括终端、部署有master模块的云服务器以及部署有agent模块的业务服务器。可以理解的是,部署在云服务器中的master模块和部署在业务服务器中的agent模块可以构成录制回放系统。参见图1所示,master模块除了包括录制管理子模块和回放管理子模块之外,还可以包括鉴权管理子模块和数据清洗子模块;agent模块除了包括录制子模块和回放子模块之外,还可以包括结果验证子模块。
其中,录制管理子模块主要支持录制任务的创建、下发、停止、恢复、完成等操作;支持录制数据编辑、查看、排序;支持生成回放数据集;并支持项目自定义抓取策略,可自定义请求抓取条件,如uri符合指定正则、post请求、指定requestid格式等,目前策略代码只支持lua实现;以及创建录制任务时提供抓取策略信息。
回放管理子模块主要用于负责对指定数据集请求进行回放,并管理控制回放的整个流程,以及回放结果展示,提供回放报告。
鉴权管理子模块主要用于支持项目级别增加、删除、修改项目自身鉴权方式,目前支持云鉴权、cookie鉴权、jwt鉴权;以及创建回放任务时提供测试鉴权信息用于重新鉴权。
数据清洗子模块主要用于支持录制数据手动清洗、以及支持录制数据AI清洗。可以理解的是,在本申请实施例中,数据清洗是指为了避免因API请求信息中的信息,例如资源ID信息发生变化,导致回放失败,对API对应的请求信息中参数的取值进行替换更新。
基于上述架构,本申请实施例提供了一种应用程序接口API的测试方法,可以应用于云计算技术领域。具体方案包括:在对API进行自动化测试时,先获取业务服务器录制的待检测API对应的第一请求信息;根据第一请求信息所属的请求类型,在确定对第一请求信息中目标参数的取值进行替换时,生成目标参数的替换方式;向业务服务器发送回放指示,其中,回放指示包括第一请求信息的标识和替换方式,回放指示用于指示业务服务器根据第一请求信息的标识和替换方式对待检测API进行测试。
示例的,API对应的请求信息所属的请求类型可以为读请求或者写请求。其中,当待检测API对应的第一请求信息所属的请求类型为读请求时,则确定无需对该第一请求信息中参数的取值进行替换;当待检测API对应的第一请求信息所属的请求类型为写请求时,则需要进一步判断是否对该第一请求信息中参数的取值进行替换,这样可以避免因写请求中参数的取值发生变化而导致回放失败。
可以看出,在整个API接口自动化测试的方案中,可以包括三个重要阶段,该三个重要阶段分别为(1)请求录制;(2)数据清洗;(3)请求回放。其中,请求录制是API自动化测试的基础,数据清洗是API自动化测试的核心,而请求回放则是API自动化测试实现的最终途径。正是因为在现有的录制回放过程中,增加了数据清洗的操作,使得在执行回放操作之前,先对写请求对应的请求信息中参数的取值进行更新,这样可以避免因写请求中参数的取值发生变化而导致回放失败,从而提高了API自动化测试的测试结果的准确度。
本申请实施例提供的应用程序接口API的测试方法,在对API进行测试时,云服务器在获取到业务服务器录制的待检测API对应的第一请求信息后,不是直接向云服务器发送回放指示,而是先根据第一请求信息所属的请求类型,在确定对第一请求信息中目标参数的取值进行替换时,生成该目标参数的替换方式;并将该替换方式携带在回放指示中发送给业务服务器,以使业务服务器根据该替换方式对待检测API进行测试,这样可以有效地避免因写请求中参数的取值发生变化而导致业务服务器侧回放失败,使得在根据回放操作结果对待检测API进行测试时,提高了待检测API自动化测试的测试结果的准确度。
下面,将通过具体的实施例对本申请提供的应用程序接口API的测试方法进行详细地说明。可以理解的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
实施例一
图2是根据本申请第一实施例提供的应用程序接口API的测试方法的流程示意图,该应用程序接口API的测试方法可以由软件和/或硬件装置执行,该硬件装置可以为云服务器。示例的,请参见图2所示,该应用程序接口API的测试方法可以包括:
S201、云服务器获取业务服务器录制的待检测API对应的第一请求信息。
可以理解的是,在本申请实施例中,当待检测API的个数为多个时,该多个API可以属于同一个业务,也可以属于不同的业务,具体可以根据实际需要进行设置,在此,本申请实施例不做具体限制。
示例的,云服务器在获取业务服务器录制的待检测API对应的第一请求信息时,在一种可能的实现方式中,云服务器可以先向业务服务器发送该待检测API对应的第一请求信息的录制指示,以使业务服务器根据录制指示,对该待检测API对应的第一请求信息进行录制,并在录制完成后,将录制的该待检测API对应的第一请求信息发送给云服务器,以使云服务器获取到业务服务器录制的待检测API对应的第一请求信息。在另一种可能的实现方式中,云服务器之前已经获取到并存储有业务服务器录制的待检测API对应的第一请求信息,这样可以直接从内存中读取该待检测API对应的第一请求信息,以获取到该待检测API对应的第一请求信息。可以理解的是,本申请实施例只是以这两种可能的实现方式获取业务服务器录制的待检测API对应的第一请求信息为例进行说明,但并不代表本申请实施例仅局限于此。
云服务器获取到业务服务器录制的待检测API对应的第一请求信息后,与现有技术不同的是,在控制业务服务器执行回放操作时,不是直接向业务服务器发送待检测API对应的第一请求信息的回放指示,而是根据第一请求信息所属的请求类型,判断是否对第一请求信息中目标参数的取值进行替换,在确定对第一请求信息中目标参数的取值进行替换时,生成目标参数的替换方式,可参见下述S202:
S202、云服务器根据第一请求信息所属的请求类型,在确定对第一请求信息中目标参数的取值进行替换时,生成目标参数的替换方式。
示例的,第一请求信息所属的请求类型可以为读请求或者写请求,具体可以根据实际需要进行设置,在此,对于第一请求信息所属的请求类型,本申请实施例不做具体限制。
当第一请求信息所属的请求类型为读请求时,说明无需对第一的请求信息中目标参数的取值进行替换,云服务器可以直接向业务服务器发送回放指示,以使业务服务器根据回放指示对该第一请求信息执行回放操作。
当第一请求信息所属的请求类型为写请求时,说明可能需要对第一请求信息中目标参数的取值进行替换,因此,需要进一步判断该第一请求信息与业务服务器录制的API对应的请求信息中其他请求信息之间是否存在依赖关系,并根据判断结果确定是否需要对第一请求信息中目标参数的取值进行替换,若不存在依赖关系,则确定无需对第一请求信息中目标参数的取值进行替换,可直接向业务服务器发送回放指示,以使业务服务器根据回放指示对该第一请求信息执行回放操作。相反的,若存在依赖关系,其他请求信息的变化,会影响该第一请求信息的回放,因此,则需要对第一请求信息中目标参数的取值进行替换。这样可以同时支持读写请求的录制回放,提供通用AB Test测试能力。其中,依赖关系可以为同一个业务内的依赖关系,也可以为不同业务间的依赖关系。
S203、云服务器向业务服务器发送回放指示。其中,回放指示包括待检测API对应的第一响应信息的标识和替换方式,回放指示用于指示业务服务器根据第一请求信息的标识和替换方式对待检测API进行测试。
示例的,回放指示除了包括第一请求信息的标识和替换方式之外,还可以包括回放环境的标识和鉴权信息等。其中,回放环境和录制环境可以为同一个测试环境,也可以为不同的测试环境。
需要说明的是,在本申请实施例中,因为第一请求信息的录制是业务服务器中部署的agent模块完成的,因此,云服务器在向业务服务器中部署的agent模块发送回放指示时,无需将该第一请求信息发送给业务服务器中部署的agent模块,只需要将该第一请求信息的标识发送给业务服务器中部署的agent模块即可,对应的,业务服务器中部署的agent模块可以根据该第一请求信息的标识从本地sqlite数据库,即关系型数据库读取对应该第一请求信息,从而获取到需要执行回放操作的第一请求信息。
可以看出,本申请实施例中,在对API进行测试时,云服务器在获取到业务服务器录制的待检测API对应的第一请求信息后,不是直接向云服务器发送回放指示,而是先根据第一请求信息所属的请求类型,在确定对第一请求信息中目标参数的取值进行替换时,生成该目标参数的替换方式;并将该替换方式携带在回放指示中发送给业务服务器,以使业务服务器根据该替换方式对待检测API进行测试,这样可以有效地避免因写请求中参数的取值发生变化而导致业务服务器侧回放失败,使得在根据回放操作结果对待检测API进行测试时,提高了待检测API自动化测试的测试结果的准确度。
基于上述图2所示的实施例,可以看出,在确定第一请求信息与其他请求信息之间存在依赖关系,则其他API对应的请求信息的变化,会影响该待检测API对应的第一请求信息的回放。
示例的,可参见图3所示,图3是本申请实施例提供的一种现有技术中基于录制回放的示意图,假设录制的多个API对应的请求信息包括创建实例请求、操作实例请求以及删除实例请求,且该三个请求信息为同一个业务内存在依赖关系的请求信息,操作实例请求和删除实例请求都依赖于创建实例请求返回的资源ID信息,由于每一次创建实例请求,都会随机生成新的资源ID信息,因此,若继续使用旧的资源ID信息进行回放,必然会导致操作实例请求和删除实例请求回放失败。
又示例的,可参见图4所示,图4是本申请实施例提供的又一种现有技术中基于录制回放的示意图,假设录制的多个API对应的请求信息包括创建实例请求、操作实例请求以及删除实例请求,创建实例请求时,该创建实例请求中参数关联有其他产品资源,创建实例请求、操作实例请求、删除实例请求都依赖于其他产品资源,若其他产品资源中的相关参数取值发生变化,若继续基于旧的创建实例请求中参数的取值进行回放,必然会导致操作实例请求和删除实例请求回放失败。
因此,结合上述图3和图4可以看出,若第一请求信息与其他API对应的请求信息之间存在依赖关系,为了避免第一请求信息回放失败,需要对第一请求信息中目标参数的取值进行替换,则生成待检测API对应的第一请求信息中目标参数的替换方式。
示例的,在生成第一请求信息中目标参数的替换方式时,可以在业务服务器录制的API对应的请求信息中,确定与第一请求信息存在依赖关系的第二请求信息;该第二请求信息中同样包括目标参数;并根据第二请求信息中目标参数的取值,生成第一请求信息中目标参数的替换方式。
示例的,若依赖关系为同一个业务内的依赖关系,则对应的替换方式可由一个三元组构成:<target,location,value>;若依赖关系为不同业务间的依赖关系,则对应的替换规则由一个四元组构成:<target,location,value,description>。其中,“target”表示待检测API对应的第一请求信息中目标参数的待替换值,与第二请求信息中目标参数的取值相关;“location”表示替换位置,支持选择响应body或者响应header;“value”表示待替换值在location json中的层级结构,“description”表示关联的其他产品资源进行管理。
可以看出,云服务器通过确定与第一请求信息存在依赖关系的第二请求信息;并根据第二请求信息中目标参数的取值,生成第一请求信息中目标参数的替换方式,使得在向业务服务器发送回放指示时,可以将该替换方式携带在回放指示中一并发送给业务服务器,以使业务服务器根据该替换方式对待检测API进行测试,这样可以有效地避免因写请求中参数的取值发生变化而导致业务服务器侧回放失败,使得在根据回放操作结果对待检测API进行测试时,提高了待检测API自动化测试的测试结果的准确度。
基于上述图2所示的实施例,为了便于理解在上述S201中,云服务器如何获取业务服务器录制的待检测API对应的第一请求信息,下面,将通过下述图5所示的实施例二进行详细描述。
实施例二
图5是根据本申请第二实施例提供的获取业务服务器录制的待检测API对应的第一请求信息的流程示意图,该获取待检测API对应的第一请求信息的方法同样可以由软件和/或硬件装置执行。示例的,请参见图5所示,该待检测API对应的第一请求信息的方法可以包括:
S501、云服务器接收用户触发的任务创建指示;其中,任务创建指示中包括待检测API的标识以及所属业务的业务标识。
其中,任务创建指示包括待检测API的标识以及所属业务的业务标识。此外,录制任务指示还可以包括抓取任务名、录制时间范围(包括起始时间和终止时间)、抓取最大数量、以及抓取类型等信息。可以理解的是,在终止时间和抓取最大数量中任一个条件满足时,则可停止录制API对应的请求信息。
示例的,在本申请实施例中,用户向云服务器下发任务创建指示时,可以采用三种方式下发,该三种方式分别为:console页面、chrome插件或者API接口,在此,本申请实施例只是以该三种方式为例进行说明,但并不代表本申请实施例仅局限于此。
以用户采用console页面的方式向云服务器下发任务创建指示为例,可参见图6所示,图6是本申请实施例提供的一种任务创建的示意图,可以看出,在采用console页面的方式向云服务器下发任务创建指示时,需要配置项目名称、地域、抓取任务名、任务开始时间、任务结束时间、抓取模块、抓取最大数量、抓取类型以及自定义抓取策略等信息。任务创建成功后,点击任务下发,云服务器接收到该任务创建指示后进行录制。
以用户采用chrome插件的方式向云服务器下发任务创建指示为例,可参见图7所示,图7是本申请实施例提供的另一种任务创建的示意图,可以看出,在采用chrome插件的方式向云服务器下发任务创建指示时,需要配置项目名称、地域、抓取请求类型以及抓取任务名等信息。任务创建成功后,点击开始流量抓取,任务创建指示下发,云服务器接收到该任务创建指示后进行录制。通过chrome插件进行创建,其好处在于:可以方便用户进行前端页面接口的录制任务,避免录制时用户在录制回放系统和自身业务系统页面之间进行反复跳转。
在接收用户触发的任务创建指示后,云服务器就可以根据任务创建指示,向业务服务器发送录制指示,即执行下述S502:
S502、云服务器根据任务创建指示,向业务服务器发送录制指示;其中,录制指示包括待检测API的标识以及所属业务的业务标识;录制指示用于指示业务服务器录制待检测API对应的第一请求信息。
云服务器根据任务创建指示信息,向业务服务器发送录制指示后,使得业务服务器可以根据该录制指示,录制待检测API对应的第一请求信息,并在录制到第一请求信息后,将该录制的第一请求信息发送给云服务器,以使云服务器接收业务服务器发送的第一请求信息。
S503、云服务器接收业务服务器发送的第一请求信息。
可以看出,云服务器在获取待检测API对应的第一请求信息时,先接收用户触发的任务创建指示,根据任务创建指示,向业务服务器发送录制指示,并接收业务服务器发送的第一请求信息,从而获取到待检测API对应的第一请求信息。这样云服务器在控制业务服务器执行回放操作之前,就可以先根据第一请求信息所属的请求类型,判断是否对第一请求信息中目标参数的取值进行替换,这样可以有效地避免因写请求中参数的取值发生变化而导致业务服务器侧回放失败,使得在根据回放操作结果对待检测API进行测试时,提高了待检测API自动化测试的测试结果的准确度。
基于上述任一实施例,云服务器在接收到用户下发的回放任务指示时,向业务服务器发送回放指示。示例的,用户在向云服务器下发回放任务指示时,同样可以采用三种方式下发,该三种方式分别为:console页面、chrome插件或者API接口,在此,本申请实施例只是以该三种方式为例进行说明,但并不代表本申请实施例仅局限于此。
云服务器接收到用户下发的回放任务指示后,可以控制回放的进度,并支持用户随时暂停、恢复执行,每次回放开始系统会自动加载回放数据集、关联方式以及延时规则,其中,回放数据集是一个url格式的list,url格式如:
http://agent的ip:端口号/system/replay?jobId=1&requestId=2&orderId=1
云服务器中部署的master模块负责请求每个url,其中,url的endpoint信息对应一个部署在业务服务器中的agen模块,最终由agen模块执行实际的回放操作,并将回放成功与否反馈给master模块,在回放成功且存在关联规则时,master模块会对其中替换信息进行提取,并维护一个全局的替换字典,用于后续请求的回放,同时每个请求信息回放成功后,系统会按照AI清洗系统返回的相对延时规则计算出一个等待时间,当等待时间大于0时,系统将执行对应的延时操作。
其具体实现为:云服务器在向业务服务器发送第一请求信息的回放指示时,需要先判断该第一请求信息是否为业务服务器录制的多个请求信息中的首个请求信息;若该第一请求消息为业务服务器录制的多个请求信息中的首个请求信息,则在接收到用户触发的回放任务指示后,直接向业务服务器发送该首个请求信息的回放指示;相反的,若该第一请求消息为业务服务器录制的多个请求信息中的非首个请求信息,则在接收到用户触发的回放任务指示后,不是直接向业务服务器发送该非首个请求信息的回放指示,而是先计算该非首个请求信息对应的等待时间,并在该非首个请求信息对应的等待时间满足时,向业务服务器发送回放指示。
示例的,在计算非首个请求消息对应的等待时间时,可以先获取所述第一请求信息的录制起始时间相对于所述多个请求信息中首个请求信息的录制起始时间之间的第一相对时延、第三请求信息的录制起始时间相对于所述首个请求信息的录制起始时间之间的第二相对时延、以及所述第三请求信息的回放耗时;其中,所述第三请求信息为所述第一请求信息在执行回放操作时的前一个请求信息,且第三请求信息属于业务服务器录制的多个请求信息;并确定第一相对时延与第二相对时延和回放耗时之间的差值;将差值确定为等待时间。
可以看出,本申请实施例中,通过计算该非首个请求信息对应的等待时间,并在该非首个请求信息对应的等待时间满足时,向业务服务器发送回放指示,这样处理的好处在于:可以在一定程度上使得回放请求信息时的时间间隔和录制请求信息时的时间间隔保持一致,从而提高请求回放成功率。
实施例三
图8是根据本申请第三实施例提供的应用程序接口API的测试方法的流程示意图,该应用程序接口API的测试方法可以由软件和/或硬件装置执行,该硬件装置可以为业务服务器。示例的,请参见图8所示,该应用程序接口API的测试方法可以包括:
S801、业务服务器向云服务器发送录制的待检测API对应的第一请求信息。
示例的,在向云服务器发送录制的待检测API对应的第一请求信息时,在一种可能的实现方式中,云服务器可以向业务服务器发送待检测API对应的第一请求信息的录制指示,以使业务服务器在接收到录制指示后,根据录制指示录制待检测API对应的第一请求信息,并在录制到待检测API对应的第一请求信息后,将其录制的第一请求信息发送给云服务器,以使云服务器获取到录制的待检测API对应的第一请求信息。在一种可能的实现方式中,业务服务器可以主动录制待检测API对应的第一请求信息,并在录制到待检测API对应的第一请求信息后,将其录制的第一请求信息发送给云服务器,以使云服务器获取到录制的待检测API对应的第一请求信息。可以理解的是,本申请实施例只是以这两种可能的实现方式向云服务器发送录制的待检测API对应的第一请求信息为例进行说明,但并不代表本申请实施例仅局限于此。
基于OpenResty进行请求处理时,通常包括如下几个比较重要的阶段:
set_by_lua*:流程分支处理判断变量初始化;
rewrite_by_lua*:转发、重定向、缓存等功能(例如特定请求代理到外网);
access_by_lua*:IP准入、接口权限等情况集中处理;
content_by_lua*:内容生成;
header_filter_by_lua*:响应头部过滤处理,例如添加头部信息;
body_filter_by_lua*:响应体过滤处理,例如,完成应答内容统一成大写;
上述每个阶段相当于一个拦截器,录制的请求信息包括:请求信息(uri、params、body、header)、响应信息(status、header、body)以及请求起止时间。上述阶段中,比较重要的三个阶段分别为:rewrite_by_lua、header_filter_by_lua以及body_filter_by_lua。在rewrite_by_lua阶段中仅记录请求开始时间,虽然body_filter_by_lua处于Openresty对请求信息处理的最后阶段,但由于一次请求信息可能存在多次响应从而会被调用多次,因此,在header_filter_by_lua阶段对请求信息(body除外)进行记录,在body_filter_by_lua阶段利用缓存完成了全部body内容的读取。
因此,业务服务器在录制待检测API对应的第一请求信息时,为了更好地减少录制对业务实际性能的影响,本申请采用协程+缓存+守护进程的方式对录制过程进行优化,以使业务服务器更好地减少录制对业务实际性能的影响。具体为:在录制待检测API对应的请求信息时,针对该待检测API,在body_filter_by_lua阶段中程序一旦检测响应数据全部返回,便会启动一个协程开始执行流量录制该第一请求信息和第一响应信息,并将第一请求信息和第一响应信息转换为一条insert的sqlite命令保存到Openresty共享内存中,同时启动守护进程不断轮询获取共享内存新增sqlite语句,最终将其持久化到sqlite数据库中。
需要说明的是,业务服务器接收到录制指示后,可以将录制指示在agent共享缓存和redis,即非关系型数据库中进行双写,之所以采取缓存和redis双写的模式主要有两个原因:(1)共享缓存相对于从redis读取速度更快、性能更好;(2)缓存易丢失,因此,在本申请实施例中,通过redis进行备份,一旦agent缓存丢失,则会从redis重新获取。
在录制得到待检测API对应的第一请求信息和待检测API对应的第二响应信息后,会存储该第二响应信息,以便后续基于该录制操作时获取到的第二响应信息和回放操作时获取到的待检测API对应的第一响应信息对待检测API进行测试。
在录制得到第一请求后,通过向云服务器发送录制的第一请求信息,使得云服务器接收到录制的第一请求信息后,可以根据第一请求信息所属的请求类型,在确定对第一请求信息中目标参数的取值进行替换时,生成目标参数的替换方式,并将生成的替换方式携带在回放指示中,一并发送给业务服务器,以使业务服务器接收云服务器发送的回放指示,即执行下述S802:
S802、业务服务器接收云服务器发送的回放指示,其中,回放指示包括第一请求信息的标识和第一请求信息中目标参数的替换方式。
S803、业务服务器根据替换方式对目标参数进行替换,并对替换后的第一请求信息执行回放操作。
示例的,业务服务器在根据替换方式,对第一请求信息中目标参数进行替换时,可以先根据替换方式,在录制的多个请求信息中,确定与第一请求信息存在依赖关系的第二请求信息;该第二请求信息中包括目标参数;并根据第二请求信息中目标参数的取值,对第一请求信息中目标参数的当前值进行替换,以完成对第一求信息的清洗,这样可以有效地避免因第一请求信息中参数的取值发生变化而导致回放失败。
示例的,在基于上述三元组或者四元组对第一请求信息进行替换时,可以采用手动清洗的方式对第一请求信息进行替换,也可以采用人工智能(ArtificialIntelligence,简称AI)自动清洗的方式对第一请求信息进行替换,具体可以根据实际需要进行设置。
采用手动清洗的方式对第一请求信息进行替换时,若依赖关系为同一个业务内的依赖关系,则替换方式由一个三元组构成:<target,location,value>,可描述为:
通常情况下,替换方式与一个创建请求或者更新请求绑定,以资源创建请求为例:在录制的创建实例请求中,响应body里对应的资源ID信息123,该资源ID信息的取值通过body[“data”][“resourceID”]获取到,在执行回放操作时,需要为该创建实例请求绑定一个替换方式,其中target为123,location为respBody,value为data.resourceID,回放时检测到该创建实例请求绑定了替换方式,则通过respBody[“data”][“resourceID”]获取新的资源ID信息234,并维护一个替换map,后续请求中一旦出现参数为资源ID信息123的,都将使用234对资源ID信息的取值123进行替换。
若依赖关系为不同业务间的依赖关系,则替换方式由一个四元组组成:<target,location,value,description>,可描述为:
通常情况下,替换方式与存在其他产品资源的请求信息进行绑定,创建请求中依赖的其他产品资源一般是一个已有的资源,在执行回放操作时无法确定回放环中该其他产品资源是否存在,因此,需要业务指定,同样以创建资源为例:业务A创建依赖于kafka的topicA,创建时通过params[“kafak”]指定,若回放时不存在topicA,而是存在topicB,则需要为该业务A绑定一个业务间的替换方式,其中,target为topicA,location为params.kafka,value为topicB,后续回放过程中,在该业务A回放前将通过location,用topicB替换为topicA。
结合上述描述可以看出,采用手动清洗的方式可以实现对第一请求信息进行数据清洗,避免了因请求中参数的取值发生变化而导致回放失败。但采用人工请求的方式,需要业务员对业务API接口具有足够的了解,因此,为了对降低对业务员的要求,可以采用AI自动清洗的方式对第一请求信息进行替换。
采用AI自动清洗的方式对第一请求信息进行替换时,对于接口逻辑和依赖关系复杂的业务,请求之间的依赖关系可以通过参数体现。例如,当前第一请求信息中用到的参数,很可能是上一个请求的返回结果中的某个字段,一旦上一个请求的参数或者返回结果,在后续请求信息中出现时,则可以认为该两个请求信息之间存在依赖关系,因此,AI自动清洗系统可以在录制的多个请求信息基础上,通过倒排索引以及知识图谱可实现对第一请求信息的自动清洗。此外,鉴于AI清洗系统并不属于本申请中涉及的录制回放系统,因此,暂不涉及AI自动清洗相关内容介绍,着重说明如何与AI清洗系统完成对接。
示例的,参见图9所示,图9是本申请实施例提供的一种AI清洗交互流程示意图,用户触发自动清洗后,录制回放系统将其录制任务的所有API对应的请求信息进行搜集并持久化到存储系统中,发起接口调用通知AI清洗系统进行数据清洗,清洗任务开始后,AI清洗系统会返回一个清洗任务ID,录制回放系统更新抓取任务状态,AI清洗系统清洗完成后回调录制回放接口,通知录制回放系统清洗任务清洗完成,并返回所有API对应的请求信息生成的全部替换方式。录制回放系统将替换方式进行持久化存储,同时更新录制任务状态为清洗成功。AI清洗系统返回替换方式数据格式如下所示:
通过上述对请求信息进行数据清洗,不仅可以支持读接口的AB Test测试、同时可以极大程度上丰富了API接口自动化测试覆盖场景。
在根据替换方式,对第一请求信息中目标参数进行替换后,就可以对替换后的第一请求信息执行回放操作,得到回放操作结果,该回放操作结果即为回放的第一响应信息。在得到回放操作结果后,就可以根据回放操作结果对待检测API进行测试。
S804、业务服务器根据回放操作结果对待检测API进行测试。
可以看出,本申请实施例中,在基于录制回放的方式对API进行自动化测试时,业务服务器通过向云服务器发送录制的待检测API对应的第一请求消息,并接收云服务器发送的回放指示,其中,回放指示包括第一请求信息的标识和第一请求信息中目标参数的替换方式;使得业务服务器在执行回放操作之前,先根据该替换方式,对第一请求信息中目标参数进行替换,再对替换后的第一请求信息执行回放操作,这样可以有效地避免因写请求中参数的取值发生变化而导致回放失败,这样在根据回放操作结果对待检测API进行测试时,提高了API自动化测试的测试结果的准确度。
此外,在回放结束后,用户可以通过页面查看录制请求和回放请求的diff对比信息,包括回放uri、header、params、body、响应status、响应body、响应header等信息。在回放成功且存在替换方式时,云服务器会对其中的替换方式进行提取,并维护一个全局的替换字典,用于后续请求信息的回放,且每个请求信息回放成功后,可以按照AI清洗系统返回的相对延时规则计算出一个等待时间,当等待时间大于0时,执行对应的延时操作。
基于上述图8所示的实施例,可以理解的是,在本申请实施例中,由于所有的请求信息都通过特定方式进行鉴权,鉴权信息本身具有实效性,且用户鉴权token在不同环境中是相互隔离的,因此,在本申请实施例中,可以在回放模块中集成proxy模块,示例的,请参见图10所示,图10是本申请实施例提供的一种鉴权处理示意图,使得在执行回放操作时,不再将请求信息直接发送到回放环境,而是先转发到proxy模块,proxy模块清洗原先请求信息中的鉴权信息以及过滤一些特殊字段,例如Content-Length等,再通过用户创建任务时提供的鉴权token重新发起鉴权,最后再转发到回放环境中,这样不仅可以有效地解决请求鉴权过期的问题,而且还可以解决鉴权信息存在环境隔离的问题。
其具体实现为:用户在创建回放任务时需要确定回放使用的目标鉴权信息,云服务器在向业务服务器下发回放指示时,该回放指示中还需要包括目标鉴权信息,对应的,业务服务器先根据目标鉴权信息,对替换后的第一请求信息进行鉴权;若鉴权成功,在回放环境下执行调用替换后的待检测API接口的回放操作,对替换后的第一请求信息执行回放操作,这样可以在任意时刻,任意环境中执行回放操作,不仅可以有效地解决请求鉴权过期的问题,而且还可以解决鉴权信息存在环境隔离的问题。
在对第一请求信息执行回放操作得到回放操作结果,该回放操作结果即为回放的第一响应信息。在得到回放操作结果后,就可以执行上述S804,根据回放操作结果对待检测API进行测试。在根据回放操作结果对待检测API进行测试时,是将回放的待检测API对应的第一响应信息和录制的待检测API对应的第二响应信息进行比较,响应信息中包括响应结果和状态码,在本申请实施例中,是将回放的第一响应信息中第一状态码和录制的第二响应信息中的第二状态码进行比较,并根据比较结果对待检测API进行测试。为了便于理解在上述S804中,业务服务器如何根据比较结果对待检测API进行测试,下面,将通过下述图11所示的实施例四进行详细描述。
实施例四
图11是根据本申请第四实施例提供的根据比较结果对待检测API进行测试的流程示意图,该根据比较结果对待检测API进行测试的方法同样可以由软件和/或硬件装置执行。示例的,请参见图11所示,该根据比较结果对待检测API进行测试的方法可以包括:
S1101、判断第一状态码和第二状态码是否相等。
若第一状态码和第二状态码不相等,则执行下述S1102,输出提示信息;相反的,若第一状态码和第二状态码相等,则执行下述S1103。
S1102、输出提示信息。
若第一状态码和第二状态码不相等,说明回放失败,在该种情况下,可以向用户输出提示信息,用于提示用户手动对该待检测API进行检测。
S1103、判断录制的第一请求信息中所有请求参数的取值,和回放的待检测API对应的第一响应信息中所有请求参数的取值是否相等。
若所有请求参数的取值相等,则执行下述S1104;若所有请求参数的取值中存在部分请求参数的取值不相等,则执行下述S1105-S1107。
S1104、比较回放的第一响应信息和录制的第二响应信息的数据结构,并根据数据结构的比较结果对待检测API进行测试。
S1105、判断录制的待检测API对应的第二响应信息中不相等的部分请求参数与录制的第一请求信息中部分请求参数是否相等。
S1106、若相等,则输出错误提示信息。
若不相等的部分请求参数的取值应该相等,则输出错误提示信息,以提示该待检测API可能存在错误,以便用户执行进一步地确认,从而完成对该待检测API的测试。
S1107、若不相等,则比较回放的第一响应信息和录制的第二响应信息的数据结构,并根据数据结构的比较结果对待检测API进行测试。
可以看出,本申请实施例中,在对API进行自动化测试时,通过将回放的第一响应信息和录制的第二响应信息进行比较,并根据比较结果对待检测API进行测试,由于在执行回放操作时,避免了回放失败,提高了回放的准确度,这样在基于准确度较高的回放的第一响应信息和录制的第二响应信息对待检测API进行测试时,提高了待检测API测试结果的准确度。
实施例五
图12是根据本申请第五实施例提供的云服务器120的结构示意图,示例的,请参见图12所示,该云服务器120可以包括:
获取单元1201,用于获取业务服务器录制的待检测API对应的第一请求信息。
处理单元1202,用于根据第一请求信息所属的请求类型,在确定对第一请求信息中目标参数的取值进行替换时,生成目标参数的替换方式。
发送单元1203,用于向业务服务器发送回放指示,其中,回放指示包括第一请求信息的标识和替换方式,回放指示用于指示业务服务器根据第一请求信息的标识和替换方式对待检测API进行测试。
可选的,处理单元1202包括第一处理模块和第二处理模块。
第一处理模块,用于获取与第一请求信息存在依赖关系的第二请求信息。其中,第二请求信息中包括目标参数,且第二请求信息为业务服务器录制的API对应的请求信息。
第二处理模块,用于根据第二请求信息中目标参数的取值,生成目标参数的替换方式。
可选的,若第一请求信息为业务服务器录制的多个请求信息中的非首个请求信息;其中,获取单元1201包括第一获取模块,处理单元1202还包括第三处理模块,发送单元1203包括第一发送模块。
第一获取模块,用于获取第一请求信息的录制起始时间相对于多个请求信息中首个请求信息的录制起始时间之间的第一相对时延、第三请求信息的录制起始时间相对于首个请求信息的录制起始时间之间的第二相对时延、以及第三请求信息的回放耗时;其中,第三请求信息为第一请求信息在执行回放操作时的前一个请求信息。
第三处理模块,用于根据第一相对时延、第二相对时延、以及第三请求信息的回放耗时,确定等待时间。
第一发送模块,用于在等待时间满足时,向业务服务器发送回放指示。
可选的,第三处理模块包括第一处理子模块和第二处理子模块。
第一处理子模块,用于确定第一相对时延与第二相对时延和回放耗时之间的差值。
第二处理子模块,用于将差值确定为等待时间。
可选的,获取单元1201包括第二获取模块和第三获取模块,发送单元1203包括第二发送模块。
第二获取模块,用于接收用户触发的任务创建指示;其中,任务创建指示中包括待检测API的标识以及所属业务的业务标识。
第二发送模块,用于根据任务创建指示,向业务服务器发送录制指示。其中,录制指示包括待检测API的标识以及所属业务的业务标识;录制指示用于指示业务服务器录制待检测API对应的第一请求信息。
第三获取模块,用于接收业务服务器发送的第一请求信息。
本申请实施例提供的云服务器,可以执行上述任一实施例中所示的云服务器侧应用程序接口API的测试方法的技术方案,其实现原理以及有益效果与云服务器侧应用程序接口API的测试方法的实现原理及有益效果类似,可参见云服务器侧应用程序接口API的测试方法的实现原理及有益效果,此处不再进行赘述。
实施例六
图13是根据本申请第六实施例提供的业务服务器130的结构示意图,示例的,请参见图13所示,该业务服务器130可以包括:
发送单元1301,用于向云服务器发送录制的待检测API对应的第一请求信息。
接收单元1302,用于接收云服务器发送的回放指示,其中,回放指示包括第一请求信息的标识和第一请求信息中目标参数的替换方式。
处理单元1303,用于根据替换方式对目标参数进行替换,并对替换后的第一请求信息执行回放操作。
测试单元1304,用于根据回放操作结果对待检测API进行测试。
可选的,处理单元1303包括第一处理模块和第二处理模块。
第一处理模块,用于根据替换方式,获取与第一请求信息存在依赖关系的第二请求信息;其中,第二请求信息中包括目标参数,且第二请求信息为业务服务器录制的API对应的请求信息。
第二处理模块,用于根据第二请求信息中目标参数的取值,对第一请求信息中目标参数的当前值进行替换。
可选的,回放指示中还包括目标鉴权信息,其中,处理单元1303还包括第三处理模块和第四处理模块。
第三处理模块,用于根据目标鉴权信息,对替换后的第一请求信息进行鉴权。
第四处理模块,用于若鉴权成功,则对替换后的第一请求信息执行回放操作。
可选的,回放操作结果为回放的待检测API对应的第一响应信息;其中,测试单元1304包括第一测试模块和第二测试模块。
第一测试模块,用于将回放的待检测API对应的第一响应信息和录制的待检测API对应的第二响应信息进行比较。
第二测试模块,用于根据比较结果对待检测API进行测试。
可选的,响应信息包括状态码,其中,第二测试模块包括第一测试子模块和第二测试子模块。
第一测试子模块,用于若第一响应信息中第一状态码和第二响应信息中第二状态码相等,则判断第一请求信息中所有请求参数的取值,和第一响应信息中所有请求参数的取值是否相等。
第二测试子模块,用于根据判断结果对待检测API进行测试。
可选的,第二测试子模块,具体用于若所有请求参数的取值均相等,则比较第一响应信息和第二响应信息的数据结构,并根据数据结构的比较结果对待检测API进行测试;若所有请求参数的取值中存在部分请求参数的取值不相等,则判断第二响应信息中不相等的部分请求参数与第一请求信息中部分请求参数是否相等;若相等,则输出错误提示信息;若不相等,则比较第一响应信息和第二响应信息的数据结构,并根据数据结构的比较结果对待检测API进行测试。
可选的,接收单元1302包括第一接收模块,处理单元1303还包括第五处理模块,发送单元1301包括第一发送模块。
第一接收模块,用于接收云服务器发送的录制指示;其中,录制指示包括待检测API的标识以及所属业务的业务标识。
第五处理模块,用于录制待检测API对应的第一请求信息。
本申请实施例提供的业务服务器,可以执行上述任一实施例中所示的业务服务器侧应用程序接口API的测试方法的技术方案,其实现原理以及有益效果与业务服务器侧应用程序接口API的测试方法的实现原理及有益效果类似,可参见业务服务器侧应用程序接口API的测试方法的实现原理及有益效果,此处不再进行赘述。
本申请实施例还提供了一种应用程序接口API的测试系统,包括上述任一实施例所述的云服务器,和上述任一实施例所述的业务服务器,执行上述任一实施例中所示的应用程序接口API的测试方法的技术方案,其实现原理以及有益效果与应用程序接口API的测试方法的实现原理及有益效果类似,可参见应用程序接口API的测试方法的实现原理及有益效果,此处不再进行赘述。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时,执行上述任一实施例中所示的应用程序接口API的测试方法的技术方案,其实现原理以及有益效果与应用程序接口API的测试方法的实现原理及有益效果类似,可参见应用程序接口API的测试方法的实现原理及有益效果,此处不再进行赘述。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
根据本申请的实施例,本申请还提供了一种计算机程序产品,计算机程序产品包括:计算机程序,计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行上述任一实施例提供的方案。
图14是本申请实施例提供的一种电子设备140的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图14所示,电子设备140包括计算单元1401,其可以根据存储在只读存储器(ROM)1402中的计算机程序或者从存储单元1408加载到随机访问存储器(RAM)1403中的计算机程序,来执行各种适当的动作和处理。在RAM 1403中,还可存储设备140操作所需的各种程序和数据。计算单元1401、ROM 1402以及RAM 1403通过总线1404彼此相连。输入/输出(I/O)接口1405也连接至总线1404。
设备140中的多个部件连接至I/O接口1405,包括:输入单元1406,例如键盘、鼠标等;输出单元1407,例如各种类型的显示器、扬声器等;存储单元1408,例如磁盘、光盘等;以及通信单元1409,例如网卡、调制解调器、无线通信收发机等。通信单元1409允许设备140通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1401可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1401的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1401执行上文所描述的各个方法和处理,例如应用程序接口API的测试方法。例如,在一些实施例中,应用程序接口API的测试方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1408。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1402和/或通信单元1409而被载入和/或安装到设备140上。当计算机程序加载到RAM 1403并由计算单元1401执行时,可以执行上文描述的应用程序接口API的测试方法的一个或多个步骤。备选地,在其他实施例中,计算单元1401可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行应用程序接口API的测试方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (23)

1.一种应用程序接口API的测试方法,包括:
获取业务服务器录制的待检测API对应的第一请求信息;
根据所述第一请求信息所属的请求类型,在确定对所述第一请求信息中目标参数的取值进行替换时,生成所述目标参数的替换方式;
向所述业务服务器发送回放指示,其中,所述回放指示包括所述第一请求信息的标识和所述替换方式,所述回放指示用于指示所述业务服务器根据所述第一请求信息的标识和所述替换方式对所述待检测API进行测试;
所述生成所述目标参数的替换方式,包括:
获取与所述第一请求信息存在依赖关系的第二请求信息;其中,所述第二请求信息中包括所述目标参数,且所述第二请求信息为所述业务服务器录制的API对应的请求信息;
根据所述第二请求信息中所述目标参数的取值,生成所述目标参数的替换方式。
2.根据权利要求1所述的方法,若所述第一请求信息为所述业务服务器录制的多个请求信息中的非首个请求信息;
其中,所述向所述业务服务器发送回放指示,包括:
获取所述第一请求信息的录制起始时间相对于所述多个请求信息中首个请求信息的录制起始时间之间的第一相对时延、第三请求信息的录制起始时间相对于所述首个请求信息的录制起始时间之间的第二相对时延、以及所述第三请求信息的回放耗时;其中,所述第三请求信息为所述第一请求信息在执行回放操作时的前一个请求信息;
根据所述第一相对时延、所述第二相对时延、以及所述第三请求信息的回放耗时,确定等待时间;
在所述等待时间满足时,向所述业务服务器发送所述回放指示。
3.根据权利要求2所述的方法,其中,所述根据所述第一相对时延、所述第二相对时延、以及所述第三请求信息的回放耗时,确定等待时间,包括:
确定所述第一相对时延与所述第二相对时延和所述回放耗时之间的差值;
将所述差值确定为所述等待时间。
4.根据权利要求1-3任一项所述的方法,其中,所述获取业务服务器录制的待检测API对应的第一请求信息,包括:
接收用户触发的任务创建指示;其中,所述任务创建指示中包括所述待检测API的标识以及所属业务的业务标识;
根据所述任务创建指示,向所述业务服务器发送录制指示;其中,所述录制指示包括所述待检测API的标识以及所属业务的业务标识;所述录制指示用于指示所述业务服务器录制所述待检测API对应的第一请求信息;
接收所述业务服务器发送的所述第一请求信息。
5.一种应用程序接口API的测试方法,包括:
向云服务器发送录制的待检测API对应的第一请求信息;
接收所述云服务器发送的回放指示,其中,所述回放指示包括所述第一请求信息的标识和所述第一请求信息中目标参数的替换方式;
根据所述替换方式对所述目标参数进行替换,并对替换后的第一请求信息执行回放操作;
根据回放操作结果对所述待检测API进行测试;
其中,所述根据所述替换方式对所述目标参数进行替换,包括:
根据所述替换方式,获取与所述第一请求信息存在依赖关系的第二请求信息;其中,所述第二请求信息中包括所述目标参数,且所述第二请求信息为业务服务器录制的API对应的请求信息;
根据所述第二请求信息中所述目标参数的取值,对所述第一请求信息中所述目标参数的当前值进行替换。
6.根据权利要求5所述的方法,所述回放指示中还包括目标鉴权信息,其中,所述对替换后的第一请求信息执行回放操作,包括:
根据所述目标鉴权信息,对所述替换后的第一请求信息进行鉴权;
若鉴权成功,则对所述替换后的第一请求信息执行回放操作。
7.根据权利要求5-6任一项所述的方法,所述回放操作结果为回放的所述待检测API对应的第一响应信息;
其中,所述根据回放操作结果对所述待检测API进行测试,包括:
将所述回放的所述待检测API对应的第一响应信息和录制的所述待检测API对应的第二响应信息进行比较;
根据比较结果对所述待检测API进行测试。
8.根据权利要求7所述的方法,所述响应信息包括状态码,其中,所述根据比较结果对所述待检测API进行测试,包括:
若所述第一响应信息中第一状态码和所述第二响应信息中第二状态码相等,则判断所述第一请求信息中所有请求参数的取值,和所述第一响应信息中所述所有请求参数的取值是否相等;
根据判断结果对所述待检测API进行测试。
9.根据权利要求8所述的方法,其中,所述根据判断结果对所述待检测进行测试,包括:
若所述所有请求参数的取值均相等,则比较所述第一响应信息和所述第二响应信息的数据结构,并根据数据结构的比较结果对所述待检测API进行测试;
若所述所有请求参数的取值中存在部分请求参数的取值不相等,则判断第二响应信息中不相等的部分请求参数与所述第一请求信息中所述部分请求参数是否相等;若相等,则输出错误提示信息;若不相等,则比较所述第一响应信息和所述第二响应信息的数据结构,并根据数据结构的比较结果对所述待检测API进行测试。
10.根据权利要求5-6任一项所述的方法,其中,所述向云服务器发送录制的待检测API对应的请求信息,包括:
接收所述云服务器发送的录制指示;其中,所述录制指示包括所述待检测API的标识以及所属业务的业务标识;
录制所述待检测API对应的第一请求信息;
向所述业务服务器发送所述第一请求信息。
11.一种云服务器,包括:
获取单元,用于获取业务服务器录制的待检测API对应的第一请求信息;
处理单元,用于根据所述第一请求信息所属的请求类型,在确定对所述第一请求信息中目标参数的取值进行替换时,生成所述目标参数的替换方式;
发送单元,用于向所述业务服务器发送回放指示,其中,所述回放指示包括所述第一请求信息的标识和所述替换方式,所述回放指示用于指示所述业务服务器根据所述第一请求信息的标识和所述替换方式对所述待检测API进行测试;
所述处理单元包括第一处理模块和第二处理模块;
所述第一处理模块,用于获取与所述第一请求信息存在依赖关系的第二请求信息;其中,所述第二请求信息中包括所述目标参数,且所述第二请求信息为所述业务服务器录制的API对应的请求信息;
所述第二处理模块,用于根据所述第二请求信息中所述目标参数的取值,生成所述目标参数的替换方式。
12.根据权利要求11所述的服务器,若所述第一请求信息为所述业务服务器录制的多个请求信息中的非首个请求信息;其中,所述获取单元包括第一获取模块,所述处理单元还包括第三处理模块,所述发送单元包括第一发送模块;
所述第一获取模块,用于获取所述第一请求信息的录制起始时间相对于所述多个请求信息中首个请求信息的录制起始时间之间的第一相对时延、第三请求信息的录制起始时间相对于所述首个请求信息的录制起始时间之间的第二相对时延、以及所述第三请求信息的回放耗时;其中,所述第三请求信息为所述第一请求信息在执行回放操作时的前一个请求信息;
所述第三处理模块,用于根据所述第一相对时延、所述第二相对时延、以及所述第三请求信息的回放耗时,确定等待时间;
所述第一发送模块,用于在所述等待时间满足时,向所述业务服务器发送所述回放指示。
13.根据权利要求12所述的服务器,其中,所述第三处理模块包括第一处理子模块和第二处理子模块;
所述第一处理子模块,用于确定所述第一相对时延与所述第二相对时延和所述回放耗时之间的差值;
所述第二处理子模块,用于将所述差值确定为所述等待时间。
14.根据权利要求11-13任一项所述的服务器,其中,所述获取单元包括第二获取模块和第三获取模块,所述发送单元包括第二发送模块;
所述第二获取模块,用于接收用户触发的任务创建指示;其中,所述任务创建指示中包括所述待检测API的标识以及所属业务的业务标识;
所述第二发送模块,用于根据所述任务创建指示,向所述业务服务器发送录制指示;其中,所述录制指示包括所述待检测API的标识以及所属业务的业务标识;所述录制指示用于指示所述业务服务器录制所述待检测API对应的第一请求信息;
所述第三获取模块,用于接收所述业务服务器发送的所述第一请求信息。
15.一种业务服务器,包括:
发送单元,用于向云服务器发送录制的待检测API对应的第一请求信息;
接收单元,用于接收所述云服务器发送的回放指示,其中,所述回放指示包括所述第一请求信息的标识和所述第一请求信息中目标参数的替换方式;
处理单元,用于根据所述替换方式对所述目标参数进行替换,并对替换后的第一请求信息执行回放操作;
测试单元,用于根据回放操作结果对所述待检测API进行测试;
其中,所述处理单元包括第一处理模块和第二处理模块;
所述第一处理模块,用于根据所述替换方式,获取与所述第一请求信息存在依赖关系的第二请求信息;其中,所述第二请求信息中包括所述目标参数,且所述第二请求信息为业务服务器录制的API对应的请求信息;
所述第二处理模块,用于根据所述第二请求信息中所述目标参数的取值,对所述第一请求信息中所述目标参数的当前值进行替换。
16.根据权利要求15所述的服务器,所述回放指示中还包括目标鉴权信息,其中,所述处理单元还包括第三处理模块和第四处理模块;
所述第三处理模块,用于根据所述目标鉴权信息,对所述替换后的第一请求信息进行鉴权;
所述第四处理模块,用于若鉴权成功,则对所述替换后的第一请求信息执行回放操作。
17.根据权利要求15-16任一项所述的服务器,所述回放操作结果为回放的所述待检测API对应的第一响应信息;其中,所述测试单元包括第一测试模块和第二测试模块;
所述第一测试模块,用于将所述回放的所述待检测API对应的第一响应信息和录制的所述待检测API对应的第二响应信息进行比较;
所述第二测试模块,用于根据比较结果对所述待检测API进行测试。
18.根据权利要求17所述的服务器,所述响应信息包括状态码,其中,所述第二测试模块包括第一测试子模块和第二测试子模块;
所述第一测试子模块,用于若所述第一响应信息中第一状态码和所述第二响应信息中第二状态码相等,则判断所述第一请求信息中所有请求参数的取值,和所述第一响应信息中所述所有请求参数的取值是否相等;
所述第二测试子模块,用于根据判断结果对所述待检测API进行测试。
19.根据权利要求18所述的服务器,
所述第二测试子模块,具体用于若所述所有请求参数的取值均相等,则比较所述第一响应信息和所述第二响应信息的数据结构,并根据数据结构的比较结果对所述待检测API进行测试;若所述所有请求参数的取值中存在部分请求参数的取值不相等,则判断第二响应信息中不相等的部分请求参数与所述第一请求信息中所述部分请求参数是否相等;若相等,则输出错误提示信息;若不相等,则比较所述第一响应信息和所述第二响应信息的数据结构,并根据数据结构的比较结果对所述待检测API进行测试。
20.根据权利要求15-16任一项所述的服务器,其中,所述接收单元包括第一接收模块,所述处理单元还包括第五处理模块,所述发送单元包括第一发送模块;
所述第一接收模块,用于接收所述云服务器发送的录制指示;其中,所述录制指示包括所述待检测API的标识以及所属业务的业务标识;
所述第五处理模块,用于录制所述待检测API对应的第一请求信息。
21.一种应用程序接口API的测试系统,包括上述权利要求11-14任一项所述的云服务器,和上述权利要求15-20任一项所述的业务服务器。
22. 一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-4中任一项所述的应用程序接口API的测试;或者,以使所述至少一个处理器能够执行权利要求5-10中任一项所述的应用程序接口API的测试。
23.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1-4中任一项所述的应用程序接口API的测试;或者,执行权利要求5-10中任一项所述的应用程序接口API的测试。
CN202110247200.7A 2021-03-05 2021-03-05 Api的测试方法、服务器、系统以及电子设备 Active CN112965901B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110247200.7A CN112965901B (zh) 2021-03-05 2021-03-05 Api的测试方法、服务器、系统以及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110247200.7A CN112965901B (zh) 2021-03-05 2021-03-05 Api的测试方法、服务器、系统以及电子设备

Publications (2)

Publication Number Publication Date
CN112965901A CN112965901A (zh) 2021-06-15
CN112965901B true CN112965901B (zh) 2023-08-01

Family

ID=76276809

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110247200.7A Active CN112965901B (zh) 2021-03-05 2021-03-05 Api的测试方法、服务器、系统以及电子设备

Country Status (1)

Country Link
CN (1) CN112965901B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113868144A (zh) * 2021-10-11 2021-12-31 京东科技信息技术有限公司 测试用例的数据处理方法及其装置
CN115185639B (zh) * 2022-07-12 2023-06-23 安超云软件有限公司 一种虚拟化api的实现方法及系统
CN115292200A (zh) * 2022-09-28 2022-11-04 北京六方云信息技术有限公司 接口测试方法、装置、设备与介质
WO2024078472A1 (zh) * 2022-10-11 2024-04-18 华为云计算技术有限公司 一种调试云服务应用程序接口api的方法、装置以及相关设备
CN115774990A (zh) * 2023-02-10 2023-03-10 成都萌想科技有限责任公司 基于配置文件的RESTfulAPI对比方法、系统、设备及存储介质
CN117076544B (zh) * 2023-10-13 2024-01-26 腾讯科技(深圳)有限公司 数据转换服务请求处理方法、系统、装置和计算机设备
CN117596187B (zh) * 2024-01-19 2024-04-30 融科联创(天津)信息技术有限公司 一种基于多云平台的服务器运维方法、装置、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107122289A (zh) * 2016-02-25 2017-09-01 阿里巴巴集团控股有限公司 系统回归测试的方法、装置及系统
CN107277038A (zh) * 2017-07-18 2017-10-20 北京微影时代科技有限公司 访问控制方法、装置以及系统
WO2019052526A1 (zh) * 2017-09-14 2019-03-21 北京金山云网络技术有限公司 Api调用系统、方法、装置、电子设备及存储介质
CN110069375A (zh) * 2019-05-07 2019-07-30 北京天际启游科技有限公司 一种压力测试的方法以及相关装置
WO2019205280A1 (zh) * 2018-04-24 2019-10-31 平安科技(深圳)有限公司 服务器的测试方法、装置、设备及计算机可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107122289A (zh) * 2016-02-25 2017-09-01 阿里巴巴集团控股有限公司 系统回归测试的方法、装置及系统
CN107277038A (zh) * 2017-07-18 2017-10-20 北京微影时代科技有限公司 访问控制方法、装置以及系统
WO2019052526A1 (zh) * 2017-09-14 2019-03-21 北京金山云网络技术有限公司 Api调用系统、方法、装置、电子设备及存储介质
WO2019205280A1 (zh) * 2018-04-24 2019-10-31 平安科技(深圳)有限公司 服务器的测试方法、装置、设备及计算机可读存储介质
CN110069375A (zh) * 2019-05-07 2019-07-30 北京天际启游科技有限公司 一种压力测试的方法以及相关装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种基于Android平台GUI录制回放工具的设计与实现;张灿;薛云志;陈军成;;计算机应用与软件(第12期);全文 *

Also Published As

Publication number Publication date
CN112965901A (zh) 2021-06-15

Similar Documents

Publication Publication Date Title
CN112965901B (zh) Api的测试方法、服务器、系统以及电子设备
CN109395400B (zh) 跨游戏的聊天信息处理方法及装置、电子设备、存储介质
US9804994B2 (en) Application architecture supporting multiple services and caching
WO2015008377A1 (ja) 状態復元プログラム、装置、及び支援方法
KR20110063313A (ko) 메시지 큐 내에서 논리적으로 연관된 메시지들의 자동화된 병합 방법
US11188560B2 (en) Synchronizing object in local object storage node
CN108287708B (zh) 一种数据处理方法、装置、服务器及计算机可读存储介质
US10789111B2 (en) Message oriented middleware with integrated rules engine
CN102082800A (zh) 一种用户请求处理的方法和服务器
US20200104404A1 (en) Seamless migration of distributed systems
CN113641591B (zh) 测试用例生成方法及装置、测试方法及装置
US20130117768A1 (en) Web service api for unified contact store
CN111259066A (zh) 服务器集群数据同步方法及装置
CN112015468A (zh) 一种接口文档处理方法、装置、电子设备以及存储介质
CN111143383A (zh) 一种数据更新方法、装置、电子设备及存储介质
CN108369503A (zh) 对外部场可更换单元(fru)过程的自动系统响应
CN112368682A (zh) 使用高速缓存用于内容验证和错误补救
CN108459910A (zh) 一种删除资源的方法及设备
CN114238055B (zh) 任务数据处理方法、装置、电子设备及存储介质
CN116360735A (zh) 一种表单生成方法、装置、设备和介质
US11330053B1 (en) Making eventual consistency cache updates deterministic
WO2021147773A1 (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
CN117435569A (zh) 缓存系统动态扩容方法、装置、设备、介质和程序产品
US20190273805A1 (en) Mobile device cache updating
CN115827265A (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
GR01 Patent grant
GR01 Patent grant