CN116700778A - 接口差异分析方法、设备、存储介质及装置 - Google Patents
接口差异分析方法、设备、存储介质及装置 Download PDFInfo
- Publication number
- CN116700778A CN116700778A CN202310963702.9A CN202310963702A CN116700778A CN 116700778 A CN116700778 A CN 116700778A CN 202310963702 A CN202310963702 A CN 202310963702A CN 116700778 A CN116700778 A CN 116700778A
- Authority
- CN
- China
- Prior art keywords
- interface
- information
- difference analysis
- target
- mirror
- 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.)
- Granted
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 143
- 230000001960 triggered effect Effects 0.000 claims abstract description 20
- 238000000034 method Methods 0.000 claims description 74
- 238000012360 testing method Methods 0.000 claims description 21
- 238000012550 audit Methods 0.000 claims description 10
- 238000010191 image analysis Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 14
- 238000007726 management method Methods 0.000 description 13
- 238000013507 mapping Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000003672 processing method Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000011161 development Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000000605 extraction Methods 0.000 description 4
- 238000010606 normalization Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000004069 differentiation Effects 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 238000004806 packaging method and process Methods 0.000 description 3
- 241000208340 Araliaceae Species 0.000 description 2
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 2
- 235000003140 Panax quinquefolius Nutrition 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 235000008434 ginseng Nutrition 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- 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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于计算机技术领域,公开了一种接口差异分析方法、设备、存储介质及装置,本发明基于用户触发的异步解析任务从预设文件系统中获取Docker镜像对应的镜像配置信息;根据镜像配置信息中包含的目标Jar包对应的项目结构确定目标加载方式;根据目标加载方式和预设类加载器对目标Jar包中的接口信息进行加载,获得第一接口信息;根据第一接口信息和待检测的第二接口信息按照接口级别以及字段级别进行差异分析,获得接口稽核信息,本发明实现了可持续集成接口差异分析,满足各种版本系统中的接口差异分析,提升分析效率以及可靠性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种接口差异分析方法、设备、存储介质及装置。
背景技术
随着业务快速增长,业务应用系统也越来越多,系统之间的接口调用频率也越来越高,因此系统间的服务关系也变得越来越复杂。在这样的情况下,接口设计不符合规范的情况屡屡发生,导致不同应用系统之间的对接困难,并且缺乏自动化手段对全体应用系统的接口情况进行统计和规范性稽核。在实际应用中,不同版本的接口之间可能存在差异,这些差异可能会导致应用程序之间的数据交换出现问题。
业界现有的接口登记和差异分析工具大多采用传统的静态配置和管理方式,无法满足现代软件开发的需求,缺陷如下:
1.缺乏自动化:现有的接口管理工具和方法主要依赖于人工操作或者特定注解解析,缺乏通用性且自动化的支持,无法满足大规模系统的接口管理需求。
2.缺乏差异分析:现有的接口管理工具主要基于静态代码分析后记录接口相关信息,无法比对接口不同版本之间变化情况,这些差异可能会导致应用程序之间的数据交换出现问题。
3.缺乏接口规范校验:现有接口管理工具无法稽核接口格式是否满足已经定义的接口规范或者格式,缺乏接口规范性校验,可能造成接口之间互联互通出现阻碍。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种接口差异分析方法、设备、存储介质及装置,旨在解决现有技术中针对接口差异分析工具大多采用传统的静态配置和管理方式,无法满足现代软件开发的需求,导致分析过程复杂且效率低的技术问题。
为实现上述目的,本发明提供一种接口差异分析方法,所述接口差异分析方法包括以下步骤:
基于用户触发的异步解析任务从预设文件系统中获取Docker镜像对应的镜像配置信息;
根据所述镜像配置信息中包含的目标Jar包对应的项目结构确定目标加载方式;
根据所述目标加载方式和预设类加载器对所述目标Jar包中的接口信息进行加载,获得第一接口信息;
根据所述第一接口信息和待检测的第二接口信息按照接口级别以及字段级别进行差异分析,获得接口稽核信息。
可选地,所述基于用户触发的异步解析任务从预设文件系统中获取Docker镜像对应的镜像配置信息的步骤之前,还包括:
获取用户触发的测试信息;
根据所述测试信息中包含的系统名称、镜像地址以及需求单号生成通知记录;
根据所述通知记录生成异步解析任务。
可选地,所述基于用户触发的异步解析任务从预设文件系统中获取Docker镜像对应的镜像配置信息的步骤,包括:
从所述异步解析任务中获取待检测系统对应的镜像地址;
根据所述镜像地址从预设文件系统中读取Docker镜像对应的镜像配置信息。
可选地,所述根据所述镜像配置信息中包含的目标Jar包对应的项目结构确定目标加载方式的步骤,包括:
根据所述镜像配置信息中包含的存储驱动程序信息获取Jar包根目录;
根据所述镜像配置信息中的启动命令获取Jar包名称;
根据所述Jar包根目录和所述Jar包名称确定目标Jar包;
根据所述目标Jar包对应的项目结构确定目标加载方式。
可选地,所述根据所述第一接口信息和待检测的第二接口信息按照接口级别以及字段级别进行差异分析,获得接口稽核信息的步骤,包括:
根据所述第一接口信息中包含的接口类型确定待提取的关键要素信息;
根据所述接口类型以及所述关键要素信息生成第一摘要签名;
将所述第一摘要签名和待检测的第二接口信息中第二摘要签名进行对比,获得签名对比结果;
若所述签名对比结果显示为签名一致时,将所述第一接口信息和所述第二接口信息按照接口级别以及字段级别进行差异分析,获得接口稽核信息。
可选地,所述根据所述第一接口信息中包含的接口类型确定待提取的关键要素信息的步骤,包括:
在所述接口类型为HTTP接口时,确定所述关键要素信息包含应用ID、统一资源定位符、请求方法;
在所述接口类型为Dubbo接口时,确定所述关键要素信息包含应用ID、服务、方法;
在所述接口类型为Kafka接口时,确定所述关键要素信息包含应用ID、消息主题。
可选地,所述根据所述第一接口信息和待检测的第二接口信息进行差异分析,获得接口稽核信息的步骤之后,还包括:
根据所述接口稽核信息确定接口差异信息;
根据所述接口差异信息中的差异类型和预设接口规范对存在差异的接口进行规范性校验,并对所述存在差异的接口进行标记。
此外,为实现上述目的,本发明还提出一种接口差异分析设备,所述接口差异分析设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的接口差异分析程序,所述接口差异分析程序配置为实现如上文所述的接口差异分析的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有接口差异分析程序,所述接口差异分析程序被处理器执行时实现如上文所述的接口差异分析方法的步骤。
此外,为实现上述目的,本发明还提出一种接口差异分析装置,所述接口差异分析装置包括:
镜像解析模块,用于基于用户触发的异步解析任务从预设文件系统中获取Docker镜像对应的镜像配置信息;
Jar包扫描模块,用于根据所述镜像配置信息中包含的目标Jar包对应的项目结构确定目标加载方式;
接口扫描模块,用于根据所述目标加载方式和预设类加载器对所述目标Jar包中的接口信息进行加载,获得第一接口信息;
差异分析模块,用于根据所述第一接口信息和待检测的第二接口信息按照接口级别以及字段级别进行差异分析,获得接口稽核信息。
本发明基于用户触发的异步解析任务从预设文件系统中获取Docker镜像对应的镜像配置信息;根据所述镜像配置信息中包含的目标Jar包对应的项目结构确定目标加载方式;根据所述目标加载方式和预设类加载器对所述目标Jar包中的接口信息进行加载,获得第一接口信息;根据所述第一接口信息和待检测的第二接口信息按照接口级别以及字段级别进行差异分析,获得接口稽核信息,本发明通过异步解析任务拉取Docker镜像对应的镜像配置信息,进而根据镜像配置信息中Jar包中的接口信息以及异步解析任务中包含的接口信息进行差异分析,相较于现有技术中针对接口差异分析工具大多采用传统的静态配置和管理方式,无法满足现代软件开发的需求,导致分析过程复杂且效率低,本发明实现了可持续集成接口差异分析,满足各种版本系统中的接口差异分析,提升分析效率以及可靠性。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的接口差异分析设备的结构示意图;
图2为本发明接口差异分析方法第一实施例的流程示意图;
图3为本发明接口差异分析方法第一实施例的基于Docker镜像解析实现的可持续集成接口差异分析流程示意图;
图4为本发明接口差异分析方法第二实施例的流程示意图;
图5为本发明接口差异分析方法第二实施例的Docker镜像解析示意图;
图6为本发明接口差异分析方法第二实施例的SpringBoot项目结构代码示意图;
图7为本发明接口差异分析方法第二实施例的Maven项目结构代码示意图;
图8为本发明接口差异分析方法第三实施例的流程示意图;
图9为本发明接口差异分析方法第三实施例的Jar包接口扫描注释示意图;
图10为本发明接口差异分析方法第三实施例的接口差异化分析示意图;
图11为本发明接口差异分析装置第一实施例的结构框图。
本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的接口差异分析设备结构示意图。
如图1所示,该接口差异分析设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display),可选用户接口1003还可以包括标准的有线接口、无线接口,对于用户接口1003的有线接口在本发明中可为USB接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(Wireless-Fidelity,Wi-Fi)接口)。存储器1005可以是高速的随机存取存储器(Random Access Memory,RAM),也可以是稳定的存储器(Non-volatileMemory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对接口差异分析设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,认定为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及接口差异分析程序。
在图1所示的接口差异分析设备中,网络接口1004主要用于连接后台服务器,与所述后台服务器进行数据通信;用户接口1003主要用于连接用户设备;所述接口差异分析设备通过处理器1001调用存储器1005中存储的接口差异分析程序,并执行本发明实施例提供的接口差异分析方法。
基于上述硬件结构,提出本发明接口差异分析方法的实施例。
参照图2,图2为本发明接口差异分析方法第一实施例的流程示意图,提出本发明接口差异分析方法第一实施例。
在本实施例中,所述接口差异分析方法包括以下步骤:
步骤S10:基于用户触发的异步解析任务从预设文件系统中获取Docker镜像对应的镜像配置信息。
需说明的是,本实施例中的执行主体可以是具有接口差异分析系统的设备,如:服务器、智能手机、笔记本、电脑以及平板等,还可为其它可实现相同或相似功能的接口差异分析设备,本实施例对此不做限制。此处将以上述计算机为例对本实施例和下述各实施例进行说明。本方案中所提出的接口差异分析系统具备一种自动化的接口差异分析流程,无需专业人士的审查,可自动完成接口差异分析。在本实施例以及下述各实施例中以计算机为例对本发明接口差异分析方法进行说明。其中,为了保证接口的可靠性和稳定性,需要对接口进行注册和管理。接口登记可以帮助开发者快速地注册和发现接口,并提供可视化的接口管理界面。但是针对实际应用中不同版本系统的接口之间可能存在差异,这些差异可能会导致应用程序之间的数据交互出现问题,为了解决这个问题,需要对接口差异进行分析和比较。接口差异分析可以帮助开发者快速地发现接口之间的差异,并提供可视化的差异分析界面。
本方案通过结合CICD流程解析Docker镜像异步完成接口的扫描以及差异分析。CICD代表持续集成和持续交付(Continuous Integration and Continuous Delivery),是一种软件开发实践和方法论。它的目标是通过自动化和频繁的代码集成、构建、测试和部署,实现快速、可靠的软件交付。Docker是一种开源的容器化平台,它可以帮助开发人员和运维人员更轻松地构建、部署和运行应用程序。Docker镜像是一个轻量级、独立和可执行的软件包。
可理解的是,用户触发的异步解析任务可以是指开发人员在研发效能平台提测/推送预演时,通过发送提测/推送预演的通知至接口管理平台触发异步解析任务,进而根据异步解析任务解析Docker镜像,获得镜像配置信息,所述Docker镜像可以是指处于静态虚拟镜像环境下的只读文件,所述只读文件除了可以提供Docker容器运行时所需的程序、库、资源、配置等文件外,Docker镜像还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。所述镜像配置信息可以是指各种版本系统对应的系统名称、镜像接口地址等配置信息。
进一步地,所述步骤S10之前,还包括:获取用户触发的测试信息;根据所述测试信息中包含的系统名称、镜像地址以及需求单号生成通知记录;根据所述通知记录生成异步解析任务。
可理解的是,为了进一步说明异步解析任务的触发过程,可以参考本方案中图3所示的基于Docker镜像解析实现的可持续集成接口差异分析流程示意图,其中,在开发人员在研发效能平台提测/推送预演时,会发送一个通知至接口管理平台,其中所述通知中包含测试信息,所述测试信息包含待测试系统版本对应的系统名称、以及该系统版本下包含的各接口的镜像地址以及各业务场景对应的需求单号,所述镜像地址可以是指针对需要进行接口差异性分析的打包完成后的接口镜像地址,所述需求单号可以是针对业务方提出的需要变更的根因信息对应的变更单号,例如:业务方需要针对X接口进行调整,即根据待调整的业务需求生成一个变更单号。
应理解的是,通过镜像推送监听接口接收到测试信息时,会根据测试信息生成一个新增的通知记录以触发异步解析任务。
进一步地,所述步骤S10还包括:从所述异步解析任务中获取待检测系统对应的镜像地址;根据所述镜像地址从预设文件系统中读取Docker镜像对应的镜像配置信息。
需说明的是,本方案为了对各种不同系统版本的接口进行差异性分析,所述镜像地址可以是指Docker镜像的下载地址,其中Docker镜像中包含了Jar包,所述Jar包里保存了代码和配置文件,其中所述代码包含了接口信息。
可理解的是,预设文件系统可以是预先设置的镜像文件系统,所述镜像文件系统中包含Docker镜像文件,以便于后期提取Docker镜像对应的镜像配置信息,其中,本方案中通过镜像地址拉取Docker镜像,进而分析Docker镜像对应的镜像配置信息,读取对应Dockerfile文件配置,根据所述Dockerfile文件配置确定镜像配置信息。所述Dockerfile是用于定义和构建 Docker 镜像的文本文件。它包含了一系列的指令和配置,用于描述如何构建一个特定的 Docker 镜像。通过获取异步解析任务中包含的系统版本对应的Docker镜像的下载地址,以便于获取Jar包中的接口信息。
步骤S20:根据所述镜像配置信息中包含的目标Jar包对应的项目结构确定目标加载方式。
需说明的是,目标Jar包是指镜像配置细腻系中包含的Jar包,所述Jar(JavaArchive)是Java平台上的一种归档文件格式,用于打包和分发Java程序和库。Jar文件(Jar包)实际上是一个ZIP格式的压缩文件,其中包含了Java类文件、资源文件、配置文件和其他相关文件。
可理解的是,所述目标Jar包对应的项目结构可以是指Jar中的内部结构,所述内部结构可以是基于不同的框架构建的Jar文件,所述框架可以包括SpringBoot或Maven两种框架,其中,SpringBoot是一个用于开发Java应用程序的开源框架,Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。
应理解的是,针对不同的项目结构对应不同的加载方式,其中所述加载方式可以针对SpringBoot或Maven两种框架确定的加载方式,其中针对SpringBoot框架下还可以分为子Jar包逐一进行加载,因此,对Jar项目进行加载解释时,普通项目可以直接加载整个Jar文件,SpringBoot项目需要根据其包含的子Jar及类路径进行加载。加载完成后,即可对所有类进行遍历解释,由于项目大都为标准的Maven项目,所以能有一定的规则解释其接口内容,从而实现加载类和资源的功能。
步骤S30:根据所述目标加载方式和预设类加载器对所述目标Jar包中的接口信息进行加载,获得第一接口信息。
需说明的是,预设类加载器可以是预先设置的用于加载类和资源的加载器。所述类加载器可以是URLClassLoader,继承自Java标准库中的ClassLoader类,它的构造方法需要传入一个URL数组作为参数,它可以从指定的 URL 中加载类和资源。其中URLClassLoader加载器可以支持以下三种加载方式(1). 从本地文件系统目录中加载CLASS文件;(2). 从本地文件系统目录的Jar包中加载CLASS文件;(3). 从远程的HTTP服务的Jar包中加载CLASS文件。相较于普通的ClassLoader加载器只能加载classpath下面的类,本方案中的加载器是可以加载任意路径下的类,并可以用来加载远程类的类加载器。
可理解的是,本方案中通过判断Jar包对应的内部结构并结合预设类加载器对Jar包中的接口信息进行加载,获得第一接口信息。第一接口信息可以是通过分析Jar包中存在的java类文件以及配置文件后,获得的接口信息。所述接口信息包含接口类型以及接口关键因素信息。
具体实现中,通过扫描Jar包中的接口信息,了解不同接口之间的调用关系,以便更好地优化代码结构和性能。通过这种方式,可以发现潜在的性能瓶颈和代码缺陷,从而提高代码的可维护性和可扩展性,同时也能够加速代码的开发和测试过程。
步骤S40:根据所述第一接口信息和待检测的第二接口信息进行按照接口级别以及字段级别差异分析,获得接口稽核信息。
需说明的是,待检测的第二接口信息可以是指开发人员提交的待测试系统版本对应的接口信息,所述接口信息中包含接口地址、接口类型以及接口关键因素信息。其中,第二接口信息可以通过人工登记的方式将待测试的接口信息存储至预设ORACLE数据库中,以便于后期在进行差异分析时,直接从预设ORACLE数据库查询用户在提测/预演之前登记的接口信息。
可理解的是,通过将第一接口信息中包含的接口类型以及接口关键因素信息与第二接口信息中包含的接口类型以及接口关键因素进行对比,进而根据对比结果进行差异分析,从而获得接口稽核信息,所述接口稽核信息包含接口存在差异和接口一致两种结果对应的参数信息。
具体实现中,通过获取接口稽核信息可以便于后期分析不同系统版本之间的接口差异情况,进而避免由于接口差异问题导致的应用程序出现问题。本方案基于 Docker 镜像解析的技术可以无缝集成到 CICD 流程中,实现自动提取 Jar 包并自动发起接口扫描。这种方法可以省去人工打包的流程,提高工作效率,同时保证了持续、高效和快速地完成Jar 包提取工作,让用户无需感知即可享受到自动化的便利,而使用基于 Jar 包的接口扫描技术,可以帮助开发者更快速地了解项目中的接口情况,对接口整体情况进行统计分析,为制定接口规范提供基础。相较于现有技术可以提高开发效率,同时也有助于提高接口质量和规范化程度。
进一步地,为了解决接口规范问题,本方案中还可以通过针对接口规范问题进行校验,所述步骤S40之后,还包括:根据所述接口稽核信息确定接口差异信息;根据所述接口差异信息中的差异类型和预设接口规范对存在差异的接口进行规范性校验,并对所述存在差异的接口进行标记。
需说明的是,本方案中还针对接口规范问题进行校验,对违反接口规范的接口进行登记。本方案能最大限度减轻人工对接口信息管理流程的干预,通过用户无感知的方式,完成接口自动化管理流程。首先保证生产接口信息与预设登记接口信息(即镜像配置信息中的接口信息)保持一致,防止接口登记出现准确性问题,导致应用之间接口调用出现问题,其次对接口规范遵守问题得到较好地解决。为进一步说明本方案可以参考图3,其中通过找到镜像中对应的Jar包,然后开始代码接口扫描,拿到扫描的接口信息再跟存量接口信息进行差异分析,对有差异的存量接口进行打标登记,同时对接口进行规范性校验。
可理解的是,本方案通过接口稽核信息中存在差异的接口对应的接口差异信息进行分析,获得差异类型,其中差异类型可以包含第一是用户漏登记的接口,第二是用户登记有误的接口,即登记接口的出入参和代码扫描结果存在差异,第三是用户多登记的无用接口。以上三种差异类型,预设接口规范可以是针对在将以上差异情况登记入库前,根据运营方提出的接口规范,对接口进行规范性校验。如输入输出规范:接口的输入输出参数应该明确,易于理解,避免歧义,接口命名规范:接口名称、topic等应该简洁明了,能够准确表达其功能和作用,并通过对存在差异的接口进行标记以便于后期进行问题查找以及改进。
具体实现中,本方案中的接口差异分析技术可以对接口登记(待检测的接口)和实际代码接口(第一接口信息中Jar包中的代码接口)之间的差异进行稽核,识别漏登记、多登记、错登记的接口,并进行分析和整改,以确保实际接口能够符合设计阶段的目标和接口规范,从而提高代码的质量和可维护性。这种技术有助于提高开发效率,减少错误和漏洞,同时也有助于保证系统的稳定性和可靠性。其中,可以通过相似度评估算法来评估接口之间的相似度,并将相似度较高的接口进行合并的技术手段。这种方法可以有效地减少代码重复,简化代码结构,提高代码的可维护性和可读性,而本方案中可以通过利用Jar包中的接口信息,自动生成接口测试用例的技术手段。这种方法可以极大地提高测试效率和测试覆盖率,同时减少测试人员的工作量,提高测试的准确性和可靠性。同时,本方案还针对接口规范问题进行校验,对违反接口规范的接口进行登记。这极大地简化了统计项目中的接口情况的流程,并通过接口稽核对开发质量进行监督,从而提高了开发效率和代码质量。
本实施例基于用户触发的异步解析任务从预设文件系统中获取Docker镜像对应的镜像配置信息;根据所述镜像配置信息中包含的目标Jar包对应的项目结构确定目标加载方式;根据所述目标加载方式和预设类加载器对所述目标Jar包中的接口信息进行加载,获得第一接口信息;根据所述第一接口信息和待检测的第二接口信息按照接口级别以及字段级别进行差异分析,获得接口稽核信息,本实施例通过异步解析任务拉取Docker镜像对应的镜像配置信息,进而根据镜像配置信息中Jar包中的接口信息以及异步解析任务中包含的接口信息进行差异分析,相较于现有技术中针对接口差异分析工具大多采用传统的静态配置和管理方式,无法满足现代软件开发的需求,导致分析过程复杂且效率低,本实施例实现了可持续集成接口差异分析,满足各种版本系统中的接口差异分析,提升分析效率以及可靠性。
参照图4,图4为本发明接口差异分析方法第二实施例的流程示意图,基于上述图2所示的第一实施例,提出本发明接口差异分析方法的第二实施例。
在本实施例中,所述步骤S20,还包括:
步骤S201:根据所述镜像配置信息中包含的存储驱动程序信息获取Jar包根目录。
需说明的是,为进一步说明本方案中针对Docker镜像解析过程,可以参考图5所示的Docker镜像解析示意图,本方案中通过镜像地址拉取Docker镜像,并读取详细的镜像配置信息,其中通过配置项GradphDriver.Data得到存储驱动程序(元数据)信息获取Jar包所在目录,进而确定Jar包根目录。
步骤S202:根据所述镜像配置信息中的启动命令获取Jar包名称。
需说明的是,根据镜像配置信息中配置项:config.entrypoint得到启动命令,根据所述启动命令得到所配置的Jar包名称。
步骤S203根据所述Jar包根目录和所述Jar包名称确定目标Jar包。
需说明的是,通过将Jar包根目录和Jar包名称合并获得目标Jar包,并将目标Jar包上传。
步骤S204:根据所述目标Jar包对应的项目结构确定目标加载方式。
需说明的是,本方案中通过镜像地址拉取Docker镜像,并通过inspect命令首先得到入口命令,入口命令存储的是程序中关于Dockerfile文件的相关配置,能获取到Jar包相当于根目录的以及具体的Jar包名称,其次得到存储驱动程序,它负责管理Docker容器中的数据,通过该配置能直接获取Jar包存放的位置,前后两步结合由此得到Jar包具体位置和名称,将Jar包提取出来,为下一步Jar包接口扫描提供文件。其中,inspect命令是一种Docker命令,用于获取有关 Docker 容器、镜像、网络等对象的详细信息。
可理解的是,本方案中针对Jar包接口扫描时,代码分析通过加载外部Jar包进行解释,该Jar必须是一个完整的项目Jar,对于SpringBoot项目来说,BOOT-INF目录下的classes目录存放编译后的 Java 类文件和配置文件,BOOT-INF/lib目录下存放项目依赖的Jar包,参考图6所示的SpringBoot项目结构代码示意图;普通Maven项目则是在根目录下存放编译后的 Java 类文件和配置文件,lib目录下存放项目依赖的Jar包(参考图7所示的Maven项目结构代码示意图),所以其项目结构必须是其中一种才可识别和扫描。
具体实现中,可以通过上述SpringBoot项目结构和Maven项目结构可以确定相应的目标加载方式。
本实施例基于用户触发的异步解析任务从预设文件系统中获取Docker镜像对应的镜像配置信息;根据所述镜像配置信息中包含的存储驱动程序信息获取Jar包根目录;根据所述镜像配置信息中的启动命令获取Jar包名称;根据所述Jar包根目录和所述Jar包名称确定目标Jar包;根据所述目标Jar包对应的项目结构确定目标加载方式;根据所述目标加载方式和预设类加载器对所述目标Jar包中的接口信息进行加载,获得第一接口信息;根据所述第一接口信息和待检测的第二接口信息按照接口级别以及字段级别进行差异分析,获得接口稽核信息,本实施例通过异步解析任务拉取Docker镜像对应的镜像配置信息,进而根据镜像配置信息中Jar包中的接口信息以及异步解析任务中包含的接口信息进行差异分析,相较于现有技术中针对接口差异分析工具大多采用传统的静态配置和管理方式,无法满足现代软件开发的需求,导致分析过程复杂且效率低,本实施例实现了可持续集成接口差异分析,满足各种版本系统中的接口差异分析,提升分析效率以及可靠性。
参照图8,图8为本发明接口差异分析方法第二实施例的流程示意图,基于上述图2所示的第一实施例,提出本发明接口差异分析方法的第三实施例。
在本实施例中,所述步骤S40,还包括:
步骤S401:根据所述第一接口信息中包含的接口类型确定待提取的关键要素信息。
需说明的是,接口类型可以是指扫描Docker镜像实际运行的Jar包中的接口信息中包含的接口类型,所述接口类型包括HTTP、Dubbo、Kafka多协议支持的接口通讯协议或技术。所述待提取的关键要素信息可以是针对上述三种HTTP、Dubbo、Kafka多协议支持的接口通讯协议或技术对应的注释要素以及要素对应的参数信息。
具体实现中,本方案通过异步执行的方式,先自动触发提取Docker镜像实际运行的Jar包,然后扫描并识别其中的接口信息。扫描的接口类型包括HTTP、Dubbo和Kafka等多种协议。对于识别出来的接口代码信息与预先登记的待检测的接口信息进行差异分析,完成接口稽核。
进一步地,所述步骤S401还包括:在所述接口类型为HTTP接口时,确定所述关键要素信息包含应用ID、统一资源定位符、请求方法;在所述接口类型为Dubbo接口时,确定所述关键要素信息包含应用ID、服务、方法;在所述接口类型为Kafka接口时,确定所述关键要素信息包含应用ID、消息主题。
需说明的是,Http接口主流有两种框架:Spring MVC和Jersey(Spring MVC和Jersey都是用于构建Web应用程序的Java框架。用于简化开发人员构建和部署java Web服务的过程。),分别通过解释其特定在Controller(在Spring框架中,Controller类是用于处理用户请求并返回响应的组件。它是MVC(Model-View-Controller)设计模式中的一部分,负责接收用户的请求,处理业务逻辑,并返回相应的结果。)上的注解及方法注解即可获取相关的接口路径、出参和入参信息。例:Spring MVC扫描“@RestController”注解即可获得Controller类,扫描“@GetMapping”或“@PostMapping”等注解即可获得接口方法。然后根据解释值和方法信息再对出入参对象转化为JsonSchema格式即可。其中,本方案中@开头的,都是注解,注解是用于为代码元素(类、方法、字段等)提供额外的信息和配置。注解可以在代码中以特定的语法进行声明和使用,以便在编译时、运行时或者在开发工具中进行处理和解释。例如:以@KafkaListeners例,@KafkaListener(value=“xxx”)注解代表这是一个kakfa类型的接口,通过注解的值可以拿到对应的topic的值为xxx。
Dubbo接口主要扫描“@Service”注解,提供方有Apache和Alibaba两种类型,扫描即可获得接口方法。然后根据解释值和方法信息再对出入参对象转化为JsonSchema格式即可。
Kafka接口主要扫描“@KafkaListener”和“@KafkaListeners”注解,需要注意的是Kafka接口的Topic通常用占位符表达式进行表示,用于表示需要在运行时动态替换的文本内容。所以相较于其他两种接口,需要通过配置文件或配置中心进行读取真正的value。然后根据解释值和方法信息再对入参对象转化为JsonSchema格式即可。所述JsonSchema是一种用于描述数据结构的语言,使得开发人员可以在应用程序中对JSON数据进行验证和处理。
可理解的是,以上三种接口通过特定的类、方法注解可获得其相关信息,至于出入参则将其转化一种用于描述 JSON 数据结构的语言-JsonSchema格式。为进一步说明,可以参考图9所示的Jar包接口扫描注释示意图,其中在针对Jar包中不同类型接口的扫描识别时,对应的扫描方式和注释方法也不相同。
具体实现中,针对接口类型的扫描可以参考图9,针对http接口扫描,@RequestMapping、@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping是Spring MVC框架中用于处理HTTP请求的注解。@RequestMapping:是一个通用的注解,用于将HTTP请求映射到相应的处理方法上。它可以用于处理多种HTTP请求方法,包括GET、POST、PUT、DELETE等。@GetMapping:用于将HTTP GET请求映射到相应的处理方法上。@PostMapping:用于将HTTP POST请求映射到相应的处理方法上。@PutMapping:用于将HTTP PUT请求映射到相应的处理方法上。@DeleteMapping:用于将HTTP DELETE请求映射到相应的处理方法上。@PatchMapping:用于将HTTP PATCH请求映射到相应的处理方法上。这些注解可以用于控制器类和处理方法上,通过指定请求的URL路径和HTTP请求方法,SpringMVC框架能够将请求映射到相应的处理方法上,从而实现请求的处理和响应的返回。这些注解使得编写RESTful风格的API变得更加简洁和易于理解。@POST、@GET、@DELETE、@PUT、@HEAD、@PATCH、@OPTIONS是一些常见的HTTP请求方法,它们用于定义客户端与服务器之间的通信方式。这些方法被广泛用于构建RESTful API和处理Web请求。其中,@POST:用于向服务器提交数据,通常用于创建新资源。@GET:用于从服务器获取数据,通常用于获取资源的信息。@DELETE:用于从服务器删除数据,通常用于删除资源。@PUT:用于向服务器更新数据,通常用于更新资源。@HEAD:与GET方法类似,但只返回响应头部信息,不返回响应主体。@PATCH:用于对资源进行部分更新,通常用于更新资源的一部分。@OPTIONS:用于获取服务器支持的HTTP方法列表和资源的通信选项。这些注解通常与框架(如jersy)中的路由注解一起使用,用于将HTTP请求映射到相应的处理方法上。通过使用这些注解,可以更灵活地定义和处理不同类型的HTTP请求。
针对Dubbo接口扫描,@org.apache.Dubbo.config.annotation.Service和@org.alibaba.Dubbo.config.annotation.Service是用于在Dubbo框架中标记服务提供者的注解。Dubbo是一个高性能、轻量级的开源分布式服务框架,用于构建分布式应用程序。它提供了服务注册、发现、调用和负载均衡等功能,使得构建分布式系统变得更加容易。@org.apache.Dubbo.config.annotation.Service是Apache Dubbo框架中的注解,用于标记服务提供者的实现类。通过在服务实现类上添加该注解,Dubbo框架会自动将该类注册为一个Dubbo服务提供者。@org.alibaba.Dubbo.config.annotation.Service是Alibaba Dubbo框架中的注解,也用于标记服务提供者的实现类。与Apache Dubbo框架类似,通过在服务实现类上添加该注解,Dubbo框架会将该类注册为一个Dubbo服务提供者。这两个注解的作用相同,只是来自不同的Dubbo框架实现。可以根据使用的Dubbo框架选择相应的注解。
针对Kafka接口扫描,@KafkaListener和@KafkaListeners是Spring Kafka框架中用于消费Kafka消息的注解。@KafkaListener注解用于将一个方法标记为Kafka消息监听器。当使用该注解标记的方法与Kafka主题相关联时,该方法将自动被调用来处理从该主题接收到的消息。可以在方法参数中定义消息的类型,以及可以指定要监听的主题、分区、消费者组等配置信息。@KafkaListeners注解是一个容器注解,它可以用于同时指定多个@KafkaListener注解。这样可以在同一个类中定义多个Kafka消息监听器,每个监听器可以监听不同的主题,并分别处理接收到的消息。
进一步地,针对不同接口类型对应的关键因素信息的提取,可以参考图10所示的接口差异化分析示意图,在所述接口类型为HTTP接口时,确定所述关键要素信息包含应用ID、url、请求方法;在所述接口类型为Dubbo接口时,确定所述关键要素信息包含应用ID、service、method;在所述接口类型为Kafka接口时,确定所述关键要素信息包含应用ID、topic。根据上述接口类型选取相关要素信息,可以实现更加精准的差异判断,所述应用ID可以是一串唯一的字符串,相当于为系统下的应用设置一个身份证,确定它归属于哪个系统所述Url:URL代表统一资源定位符(Uniform Resource Locator),它用于标识和定位网络上的资源,所述服务(service),它代表了一个具体的功能或业务。在Dubbo中,服务是由接口定义的,通过接口可以定义一组相关的方法。所述方法(method)它是服务中具体的操作或功能。一个服务可以包含多个方法,每个方法定义了具体的输入和输出。在ApacheKafka中,消息主题可以是"topic" 是一个术语,用于描述消息的分类或主题,一个 Kafka集群可以包含多个主题。
步骤S402:根据所述接口类型以及所述关键要素信息生成第一摘要签名。
需说明的是,通过上述三种接口类型对应的接口关键要素信息HTTP(根据应用ID、Url、请求方法)、Dubbo(根据应用ID、service、method)、Kafka(根据应用ID、topic)生成MD5摘要签名,以此来确保唯一接口签名,为接口差异分析提供唯一性保证。
步骤S403:将所述第一摘要签名和待检测的第二接口信息中第二摘要签名进行对比,获得签名对比结果。
可理解的是,在进行接口信息对比之前,可以先按接口唯一签名比对,获得签名对比结果,若所述签名对比结果为接口唯一签名一致,再进行出入参字段(字段名和字段类型)遍历比对。
步骤S404:若所述签名对比结果显示为签名一致时,将所述第一接口信息和所述第二接口信息按照接口级别以及字段级别进行差异分析,获得接口稽核信息。
需说明的是,若述签名对比结果显示为签名一致时,进行出入参字段(字段名和字段类型)遍历比对,分为三种差异的情况,第一是用户漏登记的接口,第二是用户登记有误的接口,即登记接口的出入参和代码扫描结果存在差异,第三是用户多登记的无用接口。在将以上差异情况登记入库前,根据运营方提出的接口规范,对接口进行规范性校验。如输入输出规范:接口的输入输出参数应该明确,易于理解,避免歧义,接口命名规范:接口名称、topic等应该简洁明了,能够准确表达其功能和作用。
具体实现中,可以参考图10,在判定签名一致时,将第二接口信息与第一接口信息(存量接口)按照接口级别和字段级别进行对比,从而获得接口稽核信息,通过接口稽核信息中存在差异的接口对应的接口差异信息进行分析,获得差异类型,其中差异类型可以包含第一是用户漏登记的接口,第二是用户登记有误的接口,即登记接口的出入参和代码扫描结果存在差异,第三是用户多登记的无用接口。以上三种差异类型,预设接口规范可以是针对在将以上差异情况登记入库前,根据运营方提出的接口规范,对接口进行规范性校验。如输入输出规范:接口的输入输出参数应该明确,易于理解,避免歧义,接口命名规范:接口名称、topic等应该简洁明了,能够准确表达其功能和作用,并通过对存在差异的接口进行标记以便于后期进行问题查找以及改进。
本实施例基于用户触发的异步解析任务从预设文件系统中获取Docker镜像对应的镜像配置信息;根据所述镜像配置信息中包含的目标Jar包对应的项目结构确定目标加载方式;根据所述目标加载方式和预设类加载器对所述目标Jar包中的接口信息进行加载,获得第一接口信息;根据所述第一接口信息中包含的接口类型确定待提取的关键要素信息;根据所述接口类型以及所述关键要素信息生成第一摘要签名;将所述第一摘要签名和待检测的第二接口信息中第二摘要签名进行对比,获得签名对比结果;若所述签名对比结果显示为签名一致时,将所述第一接口信息和所述第二接口信息按照接口级别以及字段级别进行差异分析,获得接口稽核信息,本实施例通过异步解析任务拉取Docker镜像对应的镜像配置信息,进而根据镜像配置信息中Jar包中的接口信息以及异步解析任务中包含的接口信息进行差异分析,相较于现有技术中针对接口差异分析工具大多采用传统的静态配置和管理方式,无法满足现代软件开发的需求,导致分析过程复杂且效率低,本实施例实现了可持续集成接口差异分析,满足各种版本系统中的接口差异分析,提升分析效率以及可靠性。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有接口差异分析程序,所述接口差异分析程序被处理器执行时实现如上文所述的接口差异分析方法的步骤。
参照图11,图11为本发明接口差异分析装置第一实施例的结构框图。
如图11所示,本发明实施例提出的接口差异分析装置包括:
镜像解析模块10,用于基于用户触发的异步解析任务从预设文件系统中获取Docker镜像对应的镜像配置信息;
Jar包扫描模块20,用于根据所述镜像配置信息中包含的目标Jar包对应的项目结构确定目标加载方式;
接口扫描模块30,用于根据所述目标加载方式和预设类加载器对所述目标Jar包中的接口信息进行加载,获得第一接口信息;
差异分析模块40,用于根据所述第一接口信息和待检测的第二接口信息按照接口级别以及字段级别进行差异分析,获得接口稽核信息。
本实施例基于用户触发的异步解析任务从预设文件系统中获取Docker镜像对应的镜像配置信息;根据所述镜像配置信息中包含的目标Jar包对应的项目结构确定目标加载方式;根据所述目标加载方式和预设类加载器对所述目标Jar包中的接口信息进行加载,获得第一接口信息;根据所述第一接口信息和待检测的第二接口信息按照接口级别以及字段级别进行差异分析,获得接口稽核信息,本实施例通过异步解析任务拉取Docker镜像对应的镜像配置信息,进而根据镜像配置信息中Jar包中的接口信息以及异步解析任务中包含的接口信息进行差异分析,相较于现有技术中针对接口差异分析工具大多采用传统的静态配置和管理方式,无法满足现代软件开发的需求,导致分析过程复杂且效率低,本实施例实现了可持续集成接口差异分析,满足各种版本系统中的接口差异分析,提升分析效率以及可靠性。
进一步地,所述镜像解析模块10,还用于获取用户触发的测试信息;根据所述测试信息中包含的系统名称、镜像地址以及需求单号生成通知记录;根据所述通知记录生成异步解析任务。
进一步地,所述镜像解析模块10,还用于从所述异步解析任务中获取待检测系统对应的镜像地址;根据所述镜像地址从预设文件系统中读取Docker镜像对应的镜像配置信息。
进一步地,所述Jar包扫描模块20,还用于根据所述镜像配置信息中包含的存储驱动程序信息获取Jar包根目录;根据所述镜像配置信息中的启动命令获取Jar包名称;根据所述Jar包根目录和所述Jar包名称确定目标Jar包;根据所述目标Jar包对应的项目结构确定目标加载方式。
进一步地,所述差异分析模块40,还用于根据所述第一接口信息中包含的接口类型确定待提取的关键要素信息;根据所述接口类型以及所述关键要素信息生成第一摘要签名;将所述第一摘要签名和待检测的第二接口信息中第二摘要签名进行对比,获得签名对比结果;若所述签名对比结果显示为签名一致时,将所述第一接口信息和所述第二接口信息按照接口级别以及字段级别进行差异分析,获得接口稽核信息。
进一步地,所述差异分析模块40,还用于在所述接口类型为HTTP接口时,确定所述关键要素信息包含应用ID、统一资源定位符、请求方法;在所述接口类型为Dubbo接口时,确定所述关键要素信息包含应用ID、服务、方法;在所述接口类型为Kafka接口时,确定所述关键要素信息包含应用ID、消息主题。
进一步地,所述差异分析模块40,还用于根据所述接口稽核信息确定接口差异信息;根据所述接口差异信息中的差异类型和预设接口规范对存在差异的接口进行规范性校验,并对所述存在差异的接口进行标记。
本发明接口差异分析装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。词语第一、第二、以及第三等的使用不表示任何顺序,可将这些词语解释为名称。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述 实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通 过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体 现出来,该计算机软件产品存储在一个存储介质(如只读存储器镜像(Read Only Memory image,ROM)/随机存取存储器(Random AccessMemory,RAM)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种接口差异分析方法,其特征在于,所述接口差异分析方法包括以下步骤:
基于用户触发的异步解析任务从预设文件系统中获取Docker镜像对应的镜像配置信息;
根据所述镜像配置信息中包含的目标Jar包对应的项目结构确定目标加载方式;
根据所述目标加载方式和预设类加载器对所述目标Jar包中的接口信息进行加载,获得第一接口信息;
根据所述第一接口信息和待检测的第二接口信息按照接口级别以及字段级别进行差异分析,获得接口稽核信息。
2.如权利要求1所述的接口差异分析方法,其特征在于,所述基于用户触发的异步解析任务从预设文件系统中获取Docker镜像对应的镜像配置信息的步骤之前,还包括:
获取用户触发的测试信息;
根据所述测试信息中包含的系统名称、镜像地址以及需求单号生成通知记录;
根据所述通知记录生成异步解析任务。
3.如权利要求2所述的接口差异分析方法,其特征在于,所述基于用户触发的异步解析任务从预设文件系统中获取Docker镜像对应的镜像配置信息的步骤,包括:
从所述异步解析任务中获取待检测系统对应的镜像地址;
根据所述镜像地址从预设文件系统中读取Docker镜像对应的镜像配置信息。
4.如权利要求3所述的接口差异分析方法,其特征在于,所述根据所述镜像配置信息中包含的目标Jar包对应的项目结构确定目标加载方式的步骤,包括:
根据所述镜像配置信息中包含的存储驱动程序信息获取Jar包根目录;
根据所述镜像配置信息中的启动命令获取Jar包名称;
根据所述Jar包根目录和所述Jar包名称确定目标Jar包;
根据所述目标Jar包对应的项目结构确定目标加载方式。
5.如权利要求1-4任一项所述的接口差异分析方法,其特征在于,所述根据所述第一接口信息和待检测的第二接口信息按照接口级别以及字段级别进行差异分析,获得接口稽核信息的步骤,包括:
根据所述第一接口信息中包含的接口类型确定待提取的关键要素信息;
根据所述接口类型以及所述关键要素信息生成第一摘要签名;
将所述第一摘要签名和待检测的第二接口信息中第二摘要签名进行对比,获得签名对比结果;
若所述签名对比结果显示为签名一致时,将所述第一接口信息和所述第二接口信息按照接口级别以及字段级别进行差异分析,获得接口稽核信息。
6.如权利要求5所述的接口差异分析方法,其特征在于,所述根据所述第一接口信息中包含的接口类型确定待提取的关键要素信息的步骤,包括:
在所述接口类型为HTTP接口时,确定所述关键要素信息包含应用ID、统一资源定位符、请求方法;
在所述接口类型为Dubbo接口时,确定所述关键要素信息包含应用ID、服务、方法;
在所述接口类型为Kafka接口时,确定所述关键要素信息包含应用ID、消息主题。
7.如权利要求1所述的接口差异分析方法,其特征在于,所述根据所述第一接口信息和待检测的第二接口信息进行差异分析,获得接口稽核信息的步骤之后,还包括:
根据所述接口稽核信息确定接口差异信息;
根据所述接口差异信息中的差异类型和预设接口规范对存在差异的接口进行规范性校验,并对所述存在差异的接口进行标记。
8.一种接口差异分析设备,其特征在于,所述接口差异分析设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的接口差异分析程序,所述接口差异分析程序被所述处理器执行时实现如权利要求1至7中任一项所述的接口差异分析方法。
9.一种存储介质,其特征在于,所述存储介质上存储有接口差异分析程序,所述接口差异分析程序被处理器执行时实现如权利要求1至7中任一项所述的接口差异分析方法。
10.一种接口差异分析装置,其特征在于,所述接口差异分析装置包括:
镜像解析模块,用于基于用户触发的异步解析任务从预设文件系统中获取Docker镜像对应的镜像配置信息;
Jar包扫描模块,用于根据所述镜像配置信息中包含的目标Jar包对应的项目结构确定目标加载方式;
接口扫描模块,用于根据所述目标加载方式和预设类加载器对所述目标Jar包中的接口信息进行加载,获得第一接口信息;
差异分析模块,用于根据所述第一接口信息和待检测的第二接口信息按照接口级别以及字段级别进行差异分析,获得接口稽核信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310963702.9A CN116700778B (zh) | 2023-08-02 | 2023-08-02 | 接口差异分析方法、设备、存储介质及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310963702.9A CN116700778B (zh) | 2023-08-02 | 2023-08-02 | 接口差异分析方法、设备、存储介质及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116700778A true CN116700778A (zh) | 2023-09-05 |
CN116700778B CN116700778B (zh) | 2024-01-26 |
Family
ID=87837772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310963702.9A Active CN116700778B (zh) | 2023-08-02 | 2023-08-02 | 接口差异分析方法、设备、存储介质及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116700778B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117215965A (zh) * | 2023-11-09 | 2023-12-12 | 恒生电子股份有限公司 | 基于测试用例识别的测试方法、装置、电子设备和介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110688315A (zh) * | 2019-09-26 | 2020-01-14 | 招商局金融科技有限公司 | 接口代码检测报告生成方法、电子装置及存储介质 |
CN111459801A (zh) * | 2020-03-09 | 2020-07-28 | 江苏苏宁物流有限公司 | Rsf远程服务接口功能测试方法、模块、计算机设备和存储介质 |
CN112579146A (zh) * | 2019-09-29 | 2021-03-30 | 北京国双科技有限公司 | 接口变化的检测方法及装置 |
WO2023001773A1 (de) * | 2021-07-20 | 2023-01-26 | Siemens Aktiengesellschaft | Absicherung eines einrichtevorgangs eines unterverzeichnisses und einer netzwerkschnittstelle für eine containerinstanz |
CN115756486A (zh) * | 2022-11-15 | 2023-03-07 | 平安银行股份有限公司 | 一种数据接口解析方法及装置 |
-
2023
- 2023-08-02 CN CN202310963702.9A patent/CN116700778B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110688315A (zh) * | 2019-09-26 | 2020-01-14 | 招商局金融科技有限公司 | 接口代码检测报告生成方法、电子装置及存储介质 |
CN112579146A (zh) * | 2019-09-29 | 2021-03-30 | 北京国双科技有限公司 | 接口变化的检测方法及装置 |
CN111459801A (zh) * | 2020-03-09 | 2020-07-28 | 江苏苏宁物流有限公司 | Rsf远程服务接口功能测试方法、模块、计算机设备和存储介质 |
WO2023001773A1 (de) * | 2021-07-20 | 2023-01-26 | Siemens Aktiengesellschaft | Absicherung eines einrichtevorgangs eines unterverzeichnisses und einer netzwerkschnittstelle für eine containerinstanz |
CN115756486A (zh) * | 2022-11-15 | 2023-03-07 | 平安银行股份有限公司 | 一种数据接口解析方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117215965A (zh) * | 2023-11-09 | 2023-12-12 | 恒生电子股份有限公司 | 基于测试用例识别的测试方法、装置、电子设备和介质 |
CN117215965B (zh) * | 2023-11-09 | 2024-02-27 | 恒生电子股份有限公司 | 基于测试用例识别的测试方法、装置、电子设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116700778B (zh) | 2024-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110221982B (zh) | 业务系统的性能测试方法、装置、设备及可读存储介质 | |
US8793660B2 (en) | Automated testing of programming code for a web service | |
US10282197B2 (en) | Open application lifecycle management framework | |
CN109635019B (zh) | 请求处理方法、装置、设备及存储介质 | |
US10102212B2 (en) | Remote artifact repository | |
CN101131747A (zh) | 捕获和/或分析客户端的Web页面事件的方法、装置及系统 | |
US10452522B1 (en) | Synthetic data generation from a service description language model | |
CN116700778B (zh) | 接口差异分析方法、设备、存储介质及装置 | |
CN114500690B (zh) | 接口数据处理方法、装置、电子设备及存储介质 | |
EP3974960B1 (en) | Method and system for automated testing of web service apis | |
CN112035363A (zh) | 接口自动化测试方法及装置 | |
CN112559525B (zh) | 数据检查系统、方法、装置和服务器 | |
CN114465937A (zh) | 网卡测试方法、装置、服务器、介质和计算机程序产品 | |
CN114610635A (zh) | 接口测试用例生成方法、装置、计算机设备及存储介质 | |
CN112231379A (zh) | 基于微服务架构的api审计方法、装置、设备及存储介质 | |
CN111209325A (zh) | 业务系统接口识别方法、装置及存储介质 | |
CN112860507B (zh) | 分布式链路跟踪系统采样率的控制方法和装置 | |
CN112612706A (zh) | 自动化测试方法、计算机设备及存储介质 | |
US20230118838A1 (en) | Advanced agent instrumentation for opentelemetry implementations | |
CN115033312B (zh) | ElasticSearch数据操作方法及装置 | |
CN113419738A (zh) | 接口文档的生成方法、装置及接口管理设备 | |
CN111651531A (zh) | 数据导入方法、装置、设备及计算机存储介质 | |
CN110740046A (zh) | 分析服务契约的方法和装置 | |
US20090313628A1 (en) | Dynamically batching remote object model commands | |
CN114818645B (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 |