CN114238129A - 生成接口数据的方法、装置、设备及存储介质 - Google Patents
生成接口数据的方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114238129A CN114238129A CN202111573958.6A CN202111573958A CN114238129A CN 114238129 A CN114238129 A CN 114238129A CN 202111573958 A CN202111573958 A CN 202111573958A CN 114238129 A CN114238129 A CN 114238129A
- Authority
- CN
- China
- Prior art keywords
- interface
- simulation
- interface data
- plug
- systems
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
Abstract
本申请适用于研发管理技术领域,提供了生成接口数据的方法、装置、设备及存储介质。包括:在开发系统中配置模拟插件;当监测到其他系统发送的接口调用请求时,通过模拟插件拦截接口调用请求;基于模拟插件和接口调用请求,确定与接口调用请求匹配的模拟接口数据;将模拟接口数据返回至其他系统,其他系统基于模拟接口数据进行接口测试。上述方案中,将自主研发的模拟插件直接配置到开发系统中,适配性强,可根据不同的开发需求及时调整,便于管理,提升模拟接口数据的速率,提升多个系统之间的联调效率,进而提升开发效率。且无需第三方工具就能实现开发进度不一致时系统之间的联调,降低了开发成本。
Description
技术领域
本申请属于运维技术领域,尤其涉及生成接口数据的方法、装置、设备及存储介质。
背景技术
当前在开发系统时,为了提升开发速率,通常每个开发人员负责不同的版块。例如,有的开发人员负责上游系统的开发,有的开发人员负责下游系统的开发。上游系统的开发依赖于下游系统,下游系统的开发也依赖于上游系统的开发。即上游系统通过调用下游系统的接口数据,测试上游系统是否开发成功,下游系统通过调用上游系统的接口数据,测试下游系统是否开发成功。
在实际开发过程中,上游系统与下游系统的开发进度不一致。例如,下游系统还没开发完成,上游系统就需要调用下游系统的接口数据进行测试,这样严重影响了上游系统的开发进度,导致联调效率低下。
现有技术中为了解决上述问题,通常引入第三方测试工具模拟下游系统的接口数据,以实现上游系统的接口测试。然而,第三方测试工具不仅费用高,其源码也不能修改,无法直接嵌入到开发系统中,适配性差,导致很多开发系统不能使用,影响了系统研发进度,降低了联调效率。
发明内容
有鉴于此,本申请实施例提供了生成接口数据的方法、装置、设备及存储介质,以解决现有技术中通过第三方测试工具模拟接口数据,由于第三方测试工具不仅费用高,其源码也不能修改,无法直接嵌入到开发系统中,适配性差,导致很多开发系统不能使用,影响了系统研发进度,降低了联调效率的问题。
本申请实施例的第一方面提供了一种生成接口数据的方法,包括:
在开发系统中配置模拟插件,所述模拟插件用于模拟所述开发系统的接口数据;
当监测到其他系统发送的接口调用请求时,通过所述模拟插件拦截所述接口调用请求;
基于所述模拟插件和所述接口调用请求,确定与所述接口调用请求匹配的模拟接口数据;
将所述模拟接口数据返回至所述其他系统,所述模拟接口数据用于触发所述其他系统基于所述模拟接口数据进行接口测试。
可选地,所述基于所述模拟插件和所述接口调用请求,确定与所述接口调用请求匹配的模拟接口数据,包括:
利用所述模拟插件确定所述接口调用请求对应的路径;
在预设的存储器中查找与所述路径对应的所述模拟接口数据,所述存储器中存储有预先基于所述模拟插件模拟的多个模拟接口数据,以及与每个模拟接口数据对应的路径。
可选地,所述利用所述模拟插件确定所述接口调用请求对应的路径之后,所述方法还包括:
当在所述存储器中未查找到与所述路径对应的所述模拟接口数据时,对所述模拟插件进行升级处理,得到升级模拟插件;
将所述升级模拟插件配置到所述开发系统中,并基于所述升级模拟插件模拟与所述接口调用请求匹配的模拟接口数据。
可选地,所述基于所述模拟插件和所述接口调用请求,确定与所述接口调用请求匹配的模拟接口数据,包括:
确定所述接口调用请求的请求类型;
根据所述请求类型,利用所述模拟插件模拟所述模拟接口数据。
可选地,所述当监测到其他系统发送的接口调用请求时,通过所述模拟插件拦截所述接口调用请求,包括:
当监测到其他系统发送的接口调用请求时,确定所述其他系统请求调用的接口;
在所述开发系统中检测所述接口是否开发完成;
当检测到所述接口未开发完成时,通过所述模拟插件拦截所述接口调用请求。
可选地,所述在所述开发系统中检测所述接口是否开发完成之后,所述方法还包括:
当检测到所述接口开发完成时,利用所述接口生成与所述接口调用请求对应的接口数据;
将所述接口数据返回至所述其他系统。
可选地,所述模拟插件基于Java开发得到,所述模拟插件包括jar包,所述在开发系统中配置模拟插件,包括:
获取所述开发系统对应的项目代码;
在所述项目代码中引入所述jar包。
本申请实施例的第二方面提供了一种生成接口数据的装置,其特征在于,包括:
配置单元,用于在开发系统中配置模拟插件,所述模拟插件用于模拟所述开发系统的接口数据;
拦截单元,用于当监测到其他系统发送的接口调用请求时,通过所述模拟插件拦截所述接口调用请求;
确定单元,用于基于所述模拟插件和所述接口调用请求,确定与所述接口调用请求匹配的模拟接口数据;
返回单元,用于将所述模拟接口数据返回至所述其他系统,所述模拟接口数据用于触发所述其他系统基于所述模拟接口数据进行接口测试。
本申请实施例的第三方面提供了一种生成接口数据的设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上述第一方面所述的生成接口数据的方法的步骤。
本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的生成接口数据的方法的步骤。
本申请实施例的第五方面提供了一种计算机程序产品,当计算机程序产品在设备上运行时,使得该设备执行上述第一方面所述的生成接口数据的方法的步骤。
本申请实施例提供的生成接口数据的方法、装置、设备及存储介质,具有以下有益效果:
在开发系统中配置模拟插件,模拟插件用于模拟开发系统的接口数据;当监测到其他系统发送的接口调用请求时,通过模拟插件拦截接口调用请求;基于模拟插件和接口调用请求,确定与接口调用请求匹配的模拟接口数据;将模拟接口数据返回至其他系统,其他系统基于模拟接口数据进行接口测试。上述方案中,将自主研发的模拟插件直接配置到开发系统中,适配性强,可根据不同的开发需求及时调整,便于管理,实现了即使开发系统和其他系统的开发进度不一致,也可以进行联调。提升了模拟接口数据的速率,提升了多个系统之间的联调效率,进而提升了开发效率。且无需第三方工具就能实现开发进度不一致时系统之间的联调,降低了开发成本。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一示例性实施例提供的生成接口数据的方法的示意性流程图;
图2是本申请另一示例性实施例示出的生成接口数据的方法的步骤S102的具体流程图;
图3是本申请另一示例性实施例示出的生成接口数据的方法的步骤S103的具体流程图;
图4是本申请再一示例性实施例示出的生成接口数据的方法的步骤S103的具体流程图;
图5是本申请一实施例提供的一种生成接口数据的装置的示意图;
图6是本申请一实施例提供的一种生成接口数据的设备的示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习/监督学习等几大方向。
请参见图1,图1是本申请一示例性实施例提供的生成接口数据的方法的示意性流程图。本申请提供的生成接口数据的方法的执行主体为生成接口数据的设备,其中,该设备包括但不限于智能手机、平板电脑、计算机、个人数字助理(Personal Digital Assistant,PDA)、台式电脑等移动终端,还可以包括各种类型的服务器。
例如,服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务。
本申请实施例中以执行主体为终端为例进行说明。
如图1所示的生成接口数据的方法可包括:S101~S104,具体如下:
S101:在开发系统中配置模拟插件。
示例性地,该模拟插件基于计算机编程语言(Java)开发得到,该模拟插件用于模拟开发系统的接口数据。
其中,开发系统可以为终端中正在开发的系统,对开发系统的类型不做限定。例如,开发系统可以为上游系统,也可以为下游系统。上游系统与下游系统之间相互依赖,即上游系统的开发依赖于下游系统,下游系统的开发也依赖于上游系统的开发。
相应地,可利用模拟插件模拟下游系统的接口数据,或者模拟上游系统的接口数据。
例如,上游系统通过调用下游系统的接口数据,根据该接口数据测试上游系统是否开发完成,下游系统通过调用上游系统的接口数据,根据该接口数据测试下游系统是否开发完成。
根据实际需求,可以将模拟插件配置到上游系统中,也可以配置到下游系统中。例如,需要验证当前的上游系统是否开发完成,上游系统需要调用下游系统的接口数据,但是下游系统还未开发完成。此时,可将模拟插件配置到下游系统中。当上游系统调用下游系统的接口数据时,可通过在下游系统中配置的该模拟插件模拟相关接口数据。
又例如,需要验证当前的下游系统是否开发成功,下游系统需要调用上游系统的接口数据,但是上游系统还未开发完全。此时,可将模拟插件配置到上游系统中,当下游系统调用上游系统的接口数据时,可通过在上游系统中配置的该模拟插件模拟相关接口数据。此处仅为示例性说明,对此不做限定。
可选地,在本申请一些可能的实现方式中,上述S101可包括S1011~S1012,具体如下:
S1011:获取开发系统对应的项目代码。
S1012:在项目代码中引入jar包。
模拟插件基于计算机编程语言(Java)开发得到,该模拟插件通常为软件包文件格式(Java Archive,JAR)的文件,也称为文件包(jar包)。
例如,模拟插件包括jar包,具体可以为dynamic-gen-data.jar。此处仅为示例性说明,对此不做限定。
将模拟插件配置到开发系统中,可以理解为在开发系统的代码中引入该模拟插件。
示例性地,获取开发系统对应的项目代码。例如,通过编译工具获取开发系统对应的项目代码。又例如,在开发该开发系统的工具中获取该开发系统对应的项目代码。此处仅为示例性说明,对此不做限定。
在项目代码中引入jar包是指,将jar包部署到开发系统对应的项目代码中。例如,将dynamic-gen-data.jar部署至开发系统对应的项目代码中。此处仅为示例性说明,对此不做限定。
本实施方式中的模拟插件基于Java开发得到,其包括jar包,适用性极强,可快速配置到各种类型的开发系统中,配置方式简单,还节省了开发成本低。
S102:当监测到其他系统发送的接口调用请求时,通过模拟插件拦截接口调用请求。
示例性地,其他系统是与开发系统相互依赖的系统。即其他系统的开发依赖于开发系统,开发系统的开发也依赖于其他系统的开发。
接口调用请求可以包括请求头、接口标识、属性参数等。
其他系统向开发系统发起接口调用请求,该接口调用请求用于请求调用开发系统的某个接口,以使得开发系统基于该接口向其他系统返回接口数据。
示例性地,可预先在开发系统中配置监测代码,用于监测接口调用请求。例如,由开发人员编写监测代码,并将编写好的监测代码配置到开发系统中。其中,监测代码中可以设置监听字段,该监听字段用于监听接口标识、请求类型、请求地址等信息。
在一种可能的实现方式中,当监测到其他系统发送的接口调用请求时,便通过模拟插件拦截该接口调用请求。
在另一种可能的实现方式中,当其他系统发送接口调用请求时,监测该接口调用请求,同时根据监听到的接口调用请求中的接口标识,确定该接口标识对应的接口,进而判断该接口标识对应的接口在当前开发系统中是否已经开发完成。
如果该接口标识对应的接口在当前开发系统中未开发完成,则证明此时该开发系统不能基于该接口向其他系统返回其想要的接口数据,可通过模拟插件拦截接口调用请求。
例如,在编写模拟插件时,在模拟插件对应的代码中编写拦截器对应的代码,将编写好的模拟插件配置到开发系统中,当开发系统在监测到其他系统发送的接口调用请求时,就可通过模拟插件中的拦截器拦截该接口调用请求。
示例性地,开发系统与其他系统相对应。当开发系统为上游系统时,其他系统为下游系统;当开发系统为下游系统时,其他系统为上游系统。
例如,开发系统为上游系统,其他系统为下游系统。下游系统需要调用上游系统的接口数据,下游系统向上游系统发起接口调用请求,上游系统监测下游系统想要调用的接口,当前上游系统是否已经开发完成。
当判断结果为下游系统想要调用的接口,当前上游系统未开发完成时,会提示接口调用异常,此时通过上游系统中配置的模拟插件拦截该接口调用请求。
又例如,开发系统为下游系统,其他系统为上游系统。上游系统需要调用下游系统的接口数据,上游系统向下游系统发起接口调用请求,下游系统监测上游系统想要调用的接口,当前下游系统是否已经开发完成。
当判断结果为上游系统想要调用的接口,当前下游系统未开发完成时,会提示接口调用异常,此时通过下游系统中配置的模拟插件拦截该接口调用请求。此处仅为示例性说明,对此不做限定。
S103:基于模拟插件和接口调用请求,确定与接口调用请求匹配的模拟接口数据。
示例性地,模拟接口数据为模拟插件根据开发系统的接口模拟的接口数据,模拟接口数据可用于其他系统进行接口测试。
一种可能的实现方式中,可以获取开发系统的每个接口和每个接口对应的接口标识,通过模拟插件模拟每个接口对应的模拟接口数据,并将每个接口标识与对应的模拟接口数据关联并存储在预设的存储器中。
当拦截到接口调用请求时,获取接口调用请求中的接口标识,在预设的存储器中根据该接口标识查找对应的的模拟接口数据,即得到与该接口调用请求匹配的模拟接口数据。
在另一种可能的实现方式中,当拦截到接口调用请求时,获取接口调用请求中的接口标识和属性参数,利用模拟插件根据接口标识和属性参数,在线模拟与该接口调用请求匹配的模拟接口数据。
S104:将模拟接口数据返回至其他系统,模拟接口数据用于触发其他系统基于该模拟接口数据进行接口测试。
示例性地,开发系统根据接口调用请求获取其的请求地址,将获取到的模拟接口数据基于该请求地址返回给其他系统。
其他系统接收到模拟接口数据后,可以根据该模拟接口数据对其他系统进行测试,实现其他系统与开发系统之间的联调。其他系统可以根据测试结果调整其他系统中的接口。具体的测试方法和调整方法,可以参考现有技术,此处不再赘述。
例如,开发系统为上游系统,其他系统为下游系统。下游系统需要调用上游系统的接口数据,下游系统向上游系统发起接口调用请求,上游系统利用模拟插件获取到模拟接口数据,分析接口调用请求的请求地址,利用模拟插件将获取到的模拟接口数据基于该请求地址返回给下游系统。
下游系统接收该模拟接口数据,并根据该模拟接口数据进行接口测试。具体的测试方式可参考现有技术,此处不再赘述。
又例如,开发系统为下游系统,其他系统为上游系统。上游系统需要调用下游系统的接口数据,上游系统向下游系统发起接口调用请求,下游系统利用模拟插件获取到模拟接口数据,分析接口调用请求的请求地址,利用模拟插件将获取到的模拟接口数据基于该请求地址返回给上游系统。
上游系统接收该模拟接口数据,并根据该模拟接口数据进行接口测试。具体的测试方式可参考现有技术,此处不再赘述。此处仅为示例性说明,对此不做限定。
在开发系统中配置模拟插件,模拟插件用于模拟开发系统的接口数据;当监测到其他系统发送的接口调用请求时,通过模拟插件拦截接口调用请求;基于模拟插件和接口调用请求,确定与接口调用请求匹配的模拟接口数据;将模拟接口数据返回至其他系统,其他系统基于模拟接口数据进行接口测试。上述方案中,将自主研发的模拟插件直接配置到开发系统中,适配性强,可根据不同的开发需求及时调整,便于管理,实现了即使开发系统和其他系统的开发进度不一致,也可以进行联调。提升了模拟接口数据的速率,提升了多个系统之间的联调效率,进而提升了开发效率。且无需第三方工具就能实现开发进度不一致时系统之间的联调,降低了开发成本。
请参见图2,图2是本申请另一示例性实施例示出的生成接口数据的方法的步骤S102的具体流程图;可选地,在本申请一些可能的实现方式中,上述S102可包括S1021~S1023,具体如下:
S1021:当监测到其他系统发送的接口调用请求时,确定其他系统请求调用的接口。
示例性地,接口调用请求中有包含接口标识,该接口标识用于标识其他系统请求调用的接口。开发系统监测到其他系统发送的接口调用请求时,可以进一步通过监听代码中的监听字段监听接口调用请求中的接口标识,根据该接口标识确定其他系统请求调用的接口。
例如,开发系统为支付系统,支付系统中有支付接口,其他系统中某个功能需要生成付款成功后的购物界面,生成付款成功后的购物界面依赖于支付系统基于支付接口返回的支付成功的参数。
在其他系统中点击提交订单后,触发生成接口调用请求,此时该接口调用请求用于请求调用支付系统的支付接口,该接口调用请求中包含支付接口的标识信息。
值得说明的是,每个接口的标识信息是由开发人员在开发之前统一设定好的。
S1022:在开发系统中检测接口是否开发完成。
接口开发完成是指开发系统可以基于该接口生成准确的接口数据,接口未开发完成是指开发系统不可以基于该接口生成接口数据,或者基于该接口生成的接口数据不准确。
示例性地,在支付系统中检测支付接口是否开发完成。
S1023:当检测到接口未开发完成时,通过模拟插件拦截接口调用请求。
示例性地,预先设定基于该接口应该生成的接口数据,若该接口当前可以生成接口数据,则判断生成的接口数据与预先设定的接口数据是否相同。如果相同,则判定该接口开发完成;如果不相同,则判定该接口未开发完成。
或者,检测到该接口当前不能生成接口数据,也判定该接口未开发完成。
当检测到接口未开发完成时,通过模拟插件拦截接口调用请求。具体的拦截方式可参考S103中的拦截方式,此处不再赘述。
若接口开发完成,监测到接口调用请求后,通过请求调用的接口直接返回接口数据会更快,而如若不拦截,当接口未开发完成时,开发系统根据接口调用请求走生成接口数据的流程,但是第一次又不能成功生成接口数据,同样会耗费时间,影响研发进度,降低联调效率。而上述实施方式中,先检测接口是否开发完成,当检测到接口未开发完成时,再通过模拟插件拦截接口调用请求,避免误拦截,从侧面提升了研发进度和联调效率。
可选地,在本申请一些可能的实现方式中,在S1022之后还可包括:
当检测到接口开发完成时,利用接口生成与接口调用请求对应的接口数据;将接口数据返回至其他系统。
示例性地,预先设定基于该接口应该生成的接口数据,若该接口当前可以生成接口数据,则判断生成的接口数据与预先设定的接口数据是否相同。如果相同,则判定该接口开发完成。此时,可直接利用开发完成的接口生成与接口调用请求对应的接口数据。
开发系统根据接口调用请求获取其的请求地址,将生成的接口数据基于该请求地址返回给其他系统。其他系统获取到该接口数据后,可以根据该接口数据对其他系统进行测试,实现其他系统与开发系统之间的联调。
例如,沿用S1021中的例子,预先设定支付接口应该生成的接口数据,若支付系统的支付接口当前可以生成接口数据,则判断生成的接口数据与预先设定的接口数据是否相同。如果相同,则判定支付接口开发完成。此时,可直接利用该支付接口生成与接口调用请求对应的支付成功的参数。将该支付成功的参数返回至其他系统。
其他系统根据支付成功的参数,测试能否成功地生成付款成功后的购物界面。具体的测试方式可参考现有技术,此处不再赘述。
若接口开发完成,监测到接口调用请求后,通过请求调用的接口直接返回接口数据会更快,上述实施方式中,先检测接口是否开发完成,当检测到接口开发完成时,利用接口直接生成与接口调用请求对应的接口数据并返回至其他系统,从侧面提升了研发进度和联调效率。
请参见图3,图3是本申请另一示例性实施例示出的生成接口数据的方法的步骤S103的具体流程图;可选地,在本申请一些可能的实现方式中,上述S103可包括S1031~S1032,具体如下:
S1031:利用模拟插件确定接口调用请求对应的路径。
路径可以包括统一资源定位系统(Uniform Resource Locator,URL),或者全路径。
示例性地,利用该模拟插件对其他系统发送的接口调用请求进行分析,以识别该接口调用请求的URL,或者识别该接口调用请求中的方法对应的全路径。
S1032:在预设的存储器中查找与路径对应的模拟接口数据,存储器中存储有预先基于模拟插件模拟的多个模拟接口数据,以及与每个模拟接口数据对应的路径。
预设的存储器包括各种数据库,例如,预设的存储器可以为关系数据库、非关系型数据库以及键值数据库。
其中,关系数据库可以包括关系型数据库管理系统(MySQL)、MariaDB数据库管理系统(MySQL的代替品)、Percona Server数据库管理系统(MySQL的代替品)、PostgreSQL数据库、Microsoft Access数据库、Microsoft SQL Server数据库、Google Fusion Tables数据库、FileMaker数据库、Oracle数据库、Sybase数据库、dBASE数据库、Clipper数据库、FoxPro数据库、foshub数据库等。
非关系型数据库可以包括分布式数据存储系统(BigTable)、基于分布式文件存储的数据库(MongoDB)、开源的面向文档的数据库管理系统(CouchDB)等。
键值数据库可以包括开源分布式数据库管理系统(Apache Cassandra)、亚马逊的键值(key-value)模式的存储平台(Dynamo)、高效的键值数据库(LevelDB)。此处仅为示例性说明,对此不做限定。
预设的存储器中预先存储有不同的路径,以及每个路径对应的模拟接口数据。其中,模拟接口数据是通过模拟插件对开发系统的不同接口进行模拟得到的。
例如,路径为"interfaceName":"com.xxx.QueryFacade",与其对应的模拟接口数据为"userld":"U00001"。
路径为"methodName":"queryUserlnfo",与其对应的模拟接口数据为"entld":"E0001"。
路径为"argsParamsType":"{"com.xxx.QueryUserlnfoReq"},与其对应的模拟接口数据为"age":"18"。
可选地,每个路径以及与其对应的模拟接口数据以键值对的形式存储。例如,以下列方式存储:
{
"interfaceName":"com.xxx.QueryFacade",
"methodName":"queryUserlnfo",
"argsParamsType":"{"com.xxx.QueryUserlnfoReq"},
"data":{
"userld":"U00001",
"entld":"E0001",
"name":"张三",
"age":"18",
}
}
示例性地,根据识别到的URL或者全路径,在预设的存储器中查找与该URL或者全路径匹配的模拟接口数据。
例如,开发系统为上游系统,其他系统为下游系统。下游系统需要调用上游系统的接口数据,下游系统向上游系统发起接口调用请求,上游系统中的模拟插件拦截该接口调用请求,对该接口调用请求进行分析,得到该接口调用请求对应的路径为:
"interfaceName":"com.xxx.QueryFacade",
"methodName":"queryUserlnfo",
"argsParamsType":"{"com.xxx.QueryUserlnfoReq"}
根据该路径,在MySQL中查找与该全路径匹配的模拟接口数据为:
"data":{
"userld":"U00001",
"entld":"E0001",
"name":"张三",
"age":"18",
}
此处仅为示例性说明,对此不做限定。
上述实施方式中,预先基于模拟插件模拟多个模拟接口数据并存储在存储器中,有需要时可在存储器中快速查找到需要的模拟接口数据,提升了确定模拟接口数据的速度,进而提升了研发进度和联调效率。
可选地,在本申请一些可能的实现方式中,在S1031之后还可包括:
当在存储器中未查找到与路径对应的模拟接口数据时,对模拟插件进行升级处理,得到升级模拟插件;将升级模拟插件配置到开发系统中,并基于升级模拟插件模拟与接口调用请求匹配的模拟接口数据。
示例性地,当根据接口调用请求对应的路径,在存储器中未查找到与路径对应的模拟接口数据时,可先根据该模拟插件直接模拟接口调用请求对应的模拟接口数据。若当前的模拟插件无法模拟出该接口调用请求对应的模拟接口数据,则对模拟插件进行升级处理,得到升级模拟插件。
可将当前的模拟插件发送给开发人员所在的终端,开发人员对模拟插件的代码进行改编、调整,得到升级模拟插件。
用升级模拟插件替换原有的模拟插件。例如,删除开发系统中的模拟插件,将升级模拟插件配置到开发系统中,具体的配置方式不再赘述。
又例如,在开发系统的项目代码中写一段屏蔽代码,用于屏蔽原有的模拟插件,将升级模拟插件配置到开发系统中的模拟插件位置之前。利用升级模拟插件模拟与接口调用请求匹配的模拟接口数据。
可选地,可将生成的新的模拟接口数据添加至存储器中,便于下次快速查询。
上述实施方式中,未查找到对应的模拟接口数据时,及时对模拟插件进行升级,并基于升级模拟插件模拟与接口调用请求匹配的模拟接口数据,以满足各种不同的调用需求,丰富了模拟接口数据的多样性。
请参见图4,图4是本申请再一示例性实施例示出的生成接口数据的方法的步骤S103的具体流程图;可选地,在本申请一些可能的实现方式中,上述S103还可以包括S1033~S1034,值得说明的是,S1031~S1032与S1033~S1034并列,根据具体的实施情况选择执行S1031~S1032或S1033~S1034,对此不做限定,S1033~S1034具体如下:
S1033:确定接口调用请求的请求类型。
S1034:根据请求类型,利用模拟插件模拟模拟接口数据。
示例性地,对接口调用请求的类型不做限定。例如接口调用请求的请求类型可以是spring mvc框架请求、dubbo框架请求、tomcat框架请求、jetty框架请求等。
接口调用请求中包含请求头,每种请求类型对应的请求头不同。识别接口调用请求中的请求头,根据该请求头确定接口调用请求的请求类型。此处仅为示例性说明,对此不做限定。
根据请求类型、属性参数,利用模拟插件模拟模拟接口数据。
例如,接口调用请求为:
识别接口调用请求中的请求头post,可以确定该接口调用请求对应的请求类型为spring mvc框架请求。
this.$url.queryPageConsulting表示接口标识,page:2,limit:5表示属性参数。
利用模拟插件模拟得到模拟接口数据:this.yxVideos=data.data。此处仅为示例性说明,对此不做限定。
本实施方式中,直接利用模拟插件模拟模拟接口数据,提升了生成模拟接口数据的速率。且根据不同的请求类型,生成不同的模拟接口数据,丰富了模拟接口数据的多样性。
可选地,在一种可能的实现方式中,可以单独设置前端配置页面,该页面用于显示存储器中存储的不同的路径,以及每个路径对应的模拟接口数据。用户可直观地在该前端配置页面中查看模拟接口数据、管理模拟接口数据,便于在开发过程中及时对模拟接口数据进行调整。
可选地,在一种可能的实现方式中,本申请提供的生成接口数据的方法也可应用于医疗领域。例如,在开发医疗领域的系统时,采用本申请提供的生成接口数据的方法,可以提升研发进度和各系统间的联调效率。
请参见图5,图5是本申请一实施例提供的一种生成接口数据的装置的示意图。该装置2包括的各单元用于执行图1-图4对应的实施例中的各步骤。具体请参阅图1-图4各自对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。参见图5,包括:
配置单元210,用于在开发系统中配置模拟插件,所述模拟插件用于模拟所述开发系统的接口数据;
拦截单元220,用于当监测到其他系统发送的接口调用请求时,通过所述模拟插件拦截所述接口调用请求;
确定单元230,用于基于所述模拟插件和所述接口调用请求,确定与所述接口调用请求匹配的模拟接口数据;
返回单元240,用于将所述模拟接口数据返回至所述其他系统,所述模拟接口数据用于触发所述其他系统基于所述模拟接口数据进行接口测试。
可选地,所述确定单元230具体用于:
利用所述模拟插件确定所述接口调用请求对应的路径;
在预设的存储器中查找与所述路径对应的所述模拟接口数据,所述存储器中存储有预先基于所述模拟插件模拟的多个模拟接口数据,以及与每个模拟接口数据对应的路径。
可选地,所述装置还包括:
升级单元,用于当在所述存储器中未查找到与所述路径对应的所述模拟接口数据时,对所述模拟插件进行升级处理,得到升级模拟插件;
模拟单元,用于将所述升级模拟插件配置到所述开发系统中,并基于所述升级模拟插件模拟与所述接口调用请求匹配的模拟接口数据。
可选地,所述确定单元230还用于:
确定所述接口调用请求的请求类型;
根据所述请求类型,利用所述模拟插件模拟所述模拟接口数据。
可选地,所述拦截单元220具体用于:
当监测到其他系统发送的接口调用请求时,确定所述其他系统请求调用的接口;
在所述开发系统中检测所述接口是否开发完成;
当检测到所述接口未开发完成时,通过所述模拟插件拦截所述接口调用请求。
可选地,所述装置还包括:
检测单元,用于当检测到所述接口开发完成时,利用所述接口生成与所述接口调用请求对应的接口数据;
发送单元,用于将所述接口数据返回至所述其他系统。
可选地,所述配置单元210具体用于:
获取所述开发系统对应的项目代码;
在所述项目代码中引入所述jar包。
请参见图6,图6是本申请一实施例提供的一种生成接口数据的设备的示意图。如图6所示,该实施例的设备3包括:处理器30、存储器31以及存储在所述存储器31中并可在所述处理器30上运行的计算机程序32。所述处理器30执行所述计算机程序32时实现上述各个生成接口数据的方法实施例中的步骤,例如图1所示的S101至S104。或者,所述处理器30执行所述计算机程序32时实现上述各实施例中各单元的功能,例如图5所示单元210至240功能。
示例性地,所述计算机程序32可以被分割成一个或多个单元,所述一个或者多个单元被存储在所述存储器31中,并由所述处理器30执行,以完成本申请。所述一个或多个单元可以是能够完成特定功能的一系列计算机指令段,该指令段用于描述所述计算机程序32在所述设备3中的执行过程。例如,所述计算机程序32可以被分割为配置单元、拦截单元、确定单元以及返回单元,各单元具体功能如上所述。
所述设备可包括,但不仅限于,处理器30、存储器31。本领域技术人员可以理解,图6仅仅是设备3的示例,并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器30可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器31可以是所述设备的内部存储单元,例如设备的硬盘或内存。所述存储器31也可以是所述设备的外部存储终端,例如所述设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器31还可以既包括所述设备的内部存储单元也包括外部存储终端。所述存储器31用于存储所述计算机指令以及所述终端所需的其他程序和数据。所述存储器31还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机存储介质,计算机存储介质可以是非易失性,也可以是易失性,该计算机存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述各个生成接口数据的方法实施例中的步骤。
本申请还提供了一种计算机程序产品,当计算机程序产品在设备上运行时,使得该设备执行上述各个生成接口数据的方法实施例中的步骤。
本申请实施例还提供了一种芯片或者集成电路,该芯片或者集成电路包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有该芯片或者集成电路的设备执行上述各个生成接口数据的方法实施例中的步骤。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种生成接口数据的方法,其特征在于,包括:
在开发系统中配置模拟插件,所述模拟插件用于模拟所述开发系统的接口数据;
当监测到其他系统发送的接口调用请求时,通过所述模拟插件拦截所述接口调用请求;
基于所述模拟插件和所述接口调用请求,确定与所述接口调用请求匹配的模拟接口数据;
将所述模拟接口数据返回至所述其他系统,所述模拟接口数据用于触发所述其他系统基于所述模拟接口数据进行接口测试。
2.如权利要求1所述的方法,其特征在于,所述基于所述模拟插件和所述接口调用请求,确定与所述接口调用请求匹配的模拟接口数据,包括:
利用所述模拟插件确定所述接口调用请求对应的路径;
在预设的存储器中查找与所述路径对应的所述模拟接口数据,所述存储器中存储有预先基于所述模拟插件模拟的多个模拟接口数据,以及与每个模拟接口数据对应的路径。
3.如权利要求2所述的方法,其特征在于,所述利用所述模拟插件确定所述接口调用请求对应的路径之后,所述方法还包括:
当在所述存储器中未查找到与所述路径对应的所述模拟接口数据时,对所述模拟插件进行升级处理,得到升级模拟插件;
将所述升级模拟插件配置到所述开发系统中,并基于所述升级模拟插件模拟与所述接口调用请求匹配的模拟接口数据。
4.如权利要求1所述的方法,其特征在于,所述基于所述模拟插件和所述接口调用请求,确定与所述接口调用请求匹配的模拟接口数据,包括:
确定所述接口调用请求的请求类型;
根据所述请求类型,利用所述模拟插件模拟所述模拟接口数据。
5.如权利要求1所述的方法,其特征在于,所述当监测到其他系统发送的接口调用请求时,通过所述模拟插件拦截所述接口调用请求,包括:
当监测到其他系统发送的接口调用请求时,确定所述其他系统请求调用的接口;
在所述开发系统中检测所述接口是否开发完成;
当检测到所述接口未开发完成时,通过所述模拟插件拦截所述接口调用请求。
6.如权利要求5所述的方法,其特征在于,所述在所述开发系统中检测所述接口是否开发完成之后,所述方法还包括:
当检测到所述接口开发完成时,利用所述接口生成与所述接口调用请求对应的接口数据;
将所述接口数据返回至所述其他系统。
7.如权利要求1至6任一项所述的方法,其特征在于,所述模拟插件基于Java开发得到,所述模拟插件包括jar包,所述在开发系统中配置模拟插件,包括:
获取所述开发系统对应的项目代码;
在所述项目代码中引入所述jar包。
8.一种生成接口数据的装置,其特征在于,包括:
配置单元,用于在开发系统中配置模拟插件,所述模拟插件用于模拟所述开发系统的接口数据;
拦截单元,用于当监测到其他系统发送的接口调用请求时,通过所述模拟插件拦截所述接口调用请求;
确定单元,用于基于所述模拟插件和所述接口调用请求,确定与所述接口调用请求匹配的模拟接口数据;
返回单元,用于将所述模拟接口数据返回至所述其他系统,所述模拟接口数据用于触发所述其他系统基于所述模拟接口数据进行接口测试。
9.一种生成接口数据的设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111573958.6A CN114238129A (zh) | 2021-12-21 | 2021-12-21 | 生成接口数据的方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111573958.6A CN114238129A (zh) | 2021-12-21 | 2021-12-21 | 生成接口数据的方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114238129A true CN114238129A (zh) | 2022-03-25 |
Family
ID=80760574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111573958.6A Pending CN114238129A (zh) | 2021-12-21 | 2021-12-21 | 生成接口数据的方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114238129A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116996493A (zh) * | 2023-09-27 | 2023-11-03 | 国网北京市电力公司 | 人工智能平台运行接口的请求方法、系统、设备及介质 |
-
2021
- 2021-12-21 CN CN202111573958.6A patent/CN114238129A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116996493A (zh) * | 2023-09-27 | 2023-11-03 | 国网北京市电力公司 | 人工智能平台运行接口的请求方法、系统、设备及介质 |
CN116996493B (zh) * | 2023-09-27 | 2024-01-23 | 国网北京市电力公司 | 人工智能平台运行接口的请求方法、系统、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10769228B2 (en) | Systems and methods for web analytics testing and web development | |
US11227221B2 (en) | Framework management method and apparatus | |
US10824549B1 (en) | System and method for regression testing of an application programming interface | |
US10534700B2 (en) | Separating test verifications from test executions | |
US10705949B2 (en) | Evaluation of library test suites using mutation testing | |
CN108959086B (zh) | 程序包测试部署方法、装置、系统、电子设备及存储介质 | |
US20140298107A1 (en) | Dynamic Near Real-Time Diagnostic Data Capture | |
CN112559354A (zh) | 前端代码规范检测方法、装置、计算机设备及存储介质 | |
CN109032631A (zh) | 应用程序补丁包获取方法、装置、计算机设备及存储介质 | |
US20210406004A1 (en) | System and method for implementing a code audit tool | |
CN112799940A (zh) | 回归测试方法、装置、计算机系统和计算机可读存储介质 | |
CA3167981C (en) | Offloading statistics collection | |
CN109783284A (zh) | 信息获取方法、系统及服务器、计算机可读存储介质 | |
US9442818B1 (en) | System and method for dynamic data collection | |
EP3161661A1 (en) | Documentation notification | |
CN114238129A (zh) | 生成接口数据的方法、装置、设备及存储介质 | |
CN110874475A (zh) | 漏洞挖掘方法、漏洞挖掘平台及计算机可读存储介质 | |
CN112181822A (zh) | 一种测试方法和应用程序的启动耗时测试方法 | |
CN111400623B (zh) | 用于搜索信息的方法和装置 | |
CN113672514A (zh) | 测试方法、装置、服务器及存储介质 | |
CN112988560A (zh) | 测试系统健壮性的方法和装置 | |
US11892943B2 (en) | Methods and systems for synchronizing behavior-driven development (BDD) specifications and results to a single point of truth while treating each scenario in the script as a separate test | |
US20230195608A1 (en) | Systems and methods for detecting failures of computer applications | |
CN113760694A (zh) | 一种计算代码覆盖率的方法和装置 | |
CN116501634A (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 |