CN113268245A - 代码分析方法、装置及存储介质 - Google Patents
代码分析方法、装置及存储介质 Download PDFInfo
- Publication number
- CN113268245A CN113268245A CN202110571018.7A CN202110571018A CN113268245A CN 113268245 A CN113268245 A CN 113268245A CN 202110571018 A CN202110571018 A CN 202110571018A CN 113268245 A CN113268245 A CN 113268245A
- Authority
- CN
- China
- Prior art keywords
- interface
- file
- data
- changed
- data packet
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/211—Selection of the most significant subset of features
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了一种代码分析方法、装置及存储介质。其中,该方法包括:获取对原始数据包进行更改后的待分析数据包;所述待分析数据包包括变更的数据;所述变更的数据为在所述原始数据包的基础上进行更改的数据;解析所述待分析数据包,生成调用链路关系文件;所述链路关系文件表征所述待分析数据包包含的接口的调用关系;根据所述调用链路关系文件获取所述变更的数据对应的接口文件;根据所述接口文件确定所述变更的数据对应的接口信息。本申请提供的代码分析方法,解决了当前的代码分析方法效率较低的问题。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种代码分析方法、装置及存储介质。
背景技术
在开发项目的过程中,通常需要根据改动的代码评估其涉及到的影响面,现有的代码改动分析方法通常是通过代码分析工具进行人工评估,然而目前的代码分析工具只能针对某一特定类型的编程语言,无法针对这种由多种编程语言实现的大规模的软件系统进行全面的代码分析使用一种语言编写的服务。因此,现有的代码分析方法只能多次采用各编码类型对应的不同的代码分析工具分别进行代码分析,费时费力,由于是人工手动执行,更费时间与精力,增加了开发人员、测试人员的工作量,影响到代码分析的效率。
发明内容
本申请实施例提供了一种代码分析方法,解决了当前的代码分析方法效率较低的问题。
为解决以上技术问题,本申请包括以下技术方案:
第一方面,本申请实施例提供了一种代码分析方法,所述方法包括:
获取对原始数据包进行更改后的待分析数据包;所述待分析数据包包括变更的数据;所述变更的数据为在所述原始数据包的基础上进行更改的数据;
解析所述待分析数据包,生成调用链路关系文件;所述链路关系文件表征所述待分析数据包包含的接口的调用关系;
根据所述调用链路关系文件获取所述变更的数据对应的接口文件;
根据所述接口文件确定所述变更的数据对应的接口信息。
第二方面,本申请实施例提供了一种代码分析装置,所述装置包括:
第一获取模块,用于获取对原始数据包进行更改后的待分析数据包;所述待分析数据包包括变更的数据;所述变更的数据为在所述原始数据包的基础上进行更改的数据;
解析模块,用于解析所述待分析数据包,生成调用链路关系文件;所述链路关系文件表征所述待分析数据包包含的接口的调用关系;
第二获取模块,用于根据所述调用链路关系文件获取所述变更的数据对应的接口文件;
确定模块,用于根据所述接口文件确定所述变更的数据对应的接口信息。
第三方面,本申请实施例提供另一种代码分析装置,其特征在于,包括处理器、存储器以及通信接口:
所述处理器与所述存储器、所述通信接口相连;
所述存储器,用于存储可执行程序代码;
所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行:
获取对原始数据包进行更改后的待分析数据包;所述待分析数据包包括变更的数据;所述变更的数据为在所述原始数据包的基础上进行更改的数据;
解析所述待分析数据包,生成调用链路关系文件;所述链路关系文件表征所述待分析数据包包含的接口的调用关系;
根据所述调用链路关系文件获取所述变更的数据对应的接口文件;
根据所述接口文件确定所述变更的数据对应的接口信息。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如上述第一方面所述的代码分析方法。
本申请提供的代码分析方法,首先获取对原始数据包进行更改后的待分析数据包,其中包含变更的数据,再对待分析的数据包进行解析,生成调用链路关系文件,再根据调用链路关系文件获取变更的数据对应的接口文件,最后根据接口文件确定变更的数据对应的接口信息。本申请提供的代码分析方法,在项目提交部署时会自动创建代码分析任务,并执行上述代码分析过程,根据分析结果可确定更改的接口以及追溯到接口对应的前端页面,最终给出代码分析的结果,解决了当前的代码分析方法效率较低的问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种代码分析系统结构示意图;
图2是本申请实施例提供的一种代码分析方法的流程示意图;
图3是本申请实施例提供的另一种代码分析方法的流程示意图;
图4是本申请实施例提供的一种代码分析输出的结果示意图;
图5是本申请实施例提供的一种调用链路关系文件的部分内容示意图;
图6是本申请实施例提供的一种代码分析装置示意图;
图7是本申请实施例提供的另一种代码分析装置示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面将结合附图对本申请的具体实施方式做详细说明。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
请参考图1所示,图1提供了一种代码分析系统架构示意图。其中,代码分析系统包括服务器10和电子设备20。
服务器10可以是独立的服务器,还可以是多个服务器组成的服务器集群。服务器10可以包括但不限于是应用程序服务器、硬件服务器、虚拟服务器、云服务器等。在本申请实施例中,服务器10可以通过网络与电子设备20建立通信连接,可以向电子设备20发送数据,可以接收电子设备20发送的数据,本申请实施例中的服务器可以存储多种项目的源代码,可以实时存储更改的代码。本申请实施例中,当以服务器10作为执行主体执行代码分析方法时,服务器10可直接从代码仓库获取数据包,无需经由电子设备10将数据包发送给服务器,本申请对以服务器作为执行主体执行代码分析方法时获取数据包的方式不做限定。其中,代码仓库是一个存储源代码的服务器,在实际应用中,代码仓库可以存储公司所有业务对应的项目的源代码。执行代码分析任务的电子设备或服务器均可在部署代码分析工具时与代码仓库建立连接,并且可以根据项目名称或数据名称等方式获取对应的源代码,开启代码分析过程。
电子设备20可以包括个人计算机、笔记本电脑、平板电脑等智能设备。在本申请实施例中,电子设备20可以与服务器10通过网络建立通信连接,电子设备20可以接收服务器10发送的数据,可以向服务器发送数据。电子设备20上部署代码分析工具,可以通过代码分析工具对服务器10发送的数据包进行解析,生成调用链路关系文件,再获取变更的数据对应的接口文件,最终确定接口信息,将该信息提供给用户。本申请实施例中,当以电子设备作为执行主体执行代码分析方法时,电子设备20还可以直接从代码仓库获取数据包,无需经由服务器10将数据包发送给电子设备20。本申请对以服务器作为执行主体执行代码分析方法时获取数据包的方式不做限定。网络可以是在服务器10与电子设备20之间提供通信链路的介质,也可以是包含网络设备和传输介质的互联网,不限于此。传输介质可以是有线链路(例如但不限于是同轴电缆、光纤和数字用户线路(digital subscriber line,DSL)等)或无线链路(例如但不限于,无线上网(wireless fidelity,WIFI)、蓝牙和移动设备网络等)。
需要说明的是,本申请实施例提供的代码分析方法可以由服务器执行,可以由电子设备执行。相应地,代码分析工具可以设置于服务器中,也可以设置于电子设备中,本申请对此不做限定。若将代码分析工具设置在服务器中,则可在服务器上部署代码分析工具,电子设备获取数据包后,将数据包发送给服务器,由服务器上部署的代码分析工具对数据包进行处理,并将处理后得到的结果发送给电子设备。此外,对于执行代码分析方法所用到的电子设备及服务器的数量,本申请对此也不做限定。
接下来将全部结合图1示出的代码分析系统介绍本申请实施例提供的代码分析方法。
请参考图2所示,图2是本申请实施例中的一种以电子设备为执行主体来执行代码分析方法的流程示意图,所述方法包括:
S201、获取对原始数据包进行更改后的待分析数据包。
具体地,电子设备在进行代码分析任务之前,用户将代码分析工具部署在电子设备上,再获取将要进行的代码分析任务对应的项目名称,根据项目名称从代码仓库中通过接口获取代码仓库的地址,根据该地址可以将该项目下载并打包成jar包存储在电子设备中,该项目中包括待分析数据包。其中,待分析数据包包括变更的数据,变更的数据为在原始数据的基础上进行更改的数据。原始数据包包括更改代码之前的原始代码。
进一步地,获取对原始数据包进行更改后的待分析数据包之前,还包括:获取变更的数据对应的数据名称;链路关系文件包括数据名称;根据数据名称获取所述变更的数据。其中,在获取代码分析任务对应的项目名称的同时,电子设备获取变更的数据对应的数据名称,再根据数据名称获取该项目包含的所有数据中变更的数据。
S202、解析所述待分析数据包,生成调用链路关系文件。
具体地,电子设备通过指定命令对待分析的数据包进行解析,解析工具可以采用但不限于是java-callgraph,将该工具与待分析数据包对应的项目设置在同一级目录上,通过指定命令解析待分析数据包,解析完成后,代码分析工具会根据数据包的数据生成调用链路关系文件。其中,调用链路关系文件表征待分析数据包包含的接口的调用关系,调用链路关系文件的组成内容可以包括但不限于是:类、方法、常量、调用链路等,调用链路关系文件包含多个分支,变更的数据对应的可以是其中一个分支,每一条分支包括多个节点,每一条分支表征一条接口调用路径。
S203、根据所述调用链路关系文件获取所述变更的数据对应的接口文件。
具体地,在生成调用链路关系文件后,电子设备根据调用链路关系文件获取变更的数据对应的接口文件。其中,调用链路关系文件包括变更的数据对应的数据名称,还包括数据名称与调用链路的映射关系,电子设备可以根据映射关系递归回溯到变更的数据对应的接口文件。其中,数据名称与调用链路的映射关系是指可以根据数据名称在调用链路关系文件中找到与该数据名称相关的变更链路,根据该链路可以找到与该数据名称相关的变更代码。其中,递归回溯为一种逻辑算法,通过该方法可以在调用链路关系文件中找到变更的数据对应的接口文件,当前找到的接口文件为该接口的路径。
进一步地,解析待分析数据包之后,根据调用链路关系文件获取变更的数据对应的接口文件之前,还包括:提取变更的数据对应的特征信息;根据调用链路关系文件获取变更的数据对应的接口文件,包括:根据特征信息及调用链路关系文件获取变更的数据对应的接口文件的地址;根据接口文件的地址获取所述变更的数据对应的接口文件。其中,在获取变更的数据后,静态扫描变更的数据包含的代码,对变更的数据进行特征提取。静态扫描方法可以包括但不限于是,利用python脚本进行扫描,扫描完成后提取变更的数据的特征信息。特征信息的一种呈现形式可以是:public Map<String,Object>getResult(CommonHwParam param),还可以是其他形式,特征信息包含的内容也可以是其他合理的形式,本申请对此不做限定。
S204、根据所述接口文件确定所述变更的数据对应的接口信息。
具体地,电子设备获取接口文件之后,静态扫描接口文件,根据当前接口文件的地址获取接口文件的内容,再根据接口文件的内容确定变更的数据对应的接口信息。其中,接口信息包括标记后的每一个接口对应的信息及每一个接口对应的界面信息。
进一步地,根据接口文件的地址获取变更的数据对应的接口文件之后,还包括:处理接口文件,输出目标格式的接口文件;根据接口文件确定变更的数据对应的接口信息,包括:根据目标格式的接口文件及特征信息标记变更的数据对应的接口信息。其中,电子设备获取变更的数据对应的接口文件之后,再对接口文件进行处理,输出目标格式的接口文件。在本申请实施例中,目标格式的接口文件可以是API接口文档的格式,还可以是其他类型接口文档的格式。根据目标格式的接口文件及特征信息标记变更的数据对应的接口信息,其方法具体可以包括:将变更的数据看做变更分支,在调用链路关系文件中还包括主干分支,电子设备根据变更的数据对应的特征信息,结合接口文件对所有接口进行标记。
进一步地,处理接口文件,输出目标格式的接口文件,包括:将接口文件包含的数据与数据库中存储的与接口文件对应的数据进行拼接,得到目标格式的接口文件;输出目标格式的接口文件。其中,电子设备根据接口文件获取的数据中的接口信息会存在不完整的情况,例如一部分数据在数据库中,一部分数据在获取的接口文件中,并且格式不统一。因此,获取接口文件后,需要结合接口文件的数据与数据库的数据对接口信息进行拼接,输出目标格式的接口文件。
进一步地,接口信息包括标记后的每一个接口对应的信息及每一个接口对应的界面信息。其中,接口信息包括接口是新接口还是老接口,每一个接口对应的界面信息即为调用该接口并运行代码后可以得到的前端界面信息,其中包括前端界面显示的所有内容。
可以理解的是,当以服务器为执行主体执行代码分析方法时,用户预先在服务器上部署代码分析工具。当开始代码分析任务时,服务器可以直接从代码仓库获取数据包,还可以经由电子设备获取数据包,即电子设备从代码仓库获取数据包后,将数据包发送给服务器。服务器获取数据包后执行本申请提供的代码分析方法,执行代码分析方法的执行过程请参考上述内容所述,在此不再赘述。
本申请提供的代码分析方法,首先获取对原始数据包进行更改后的待分析数据包,其中包含变更的数据,再对待分析的数据包进行解析,生成调用链路关系文件,再根据调用链路关系文件获取变更的数据对应的接口文件,最后根据接口文件确定变更的数据对应的接口信息。本申请提供的代码分析方法,解决了当前的代码分析方法效率较低的问题。
请参考图3所示,图3是本申请实施例中的另一种代码分析方法的流程示意图,所述方法包括:
S301、电子设备获取变更的数据对应的数据名称。
具体地,电子设备在进行代码分析任务之前,用户将代码分析工具部署在电子设备上,再获取将要进行的代码分析任务对应的项目名称及数据名称。举例来说,项目名称可以是当前Java项目的名称,数据名称可以是当前的Java项目中其中一个模块包含的数据的名称,项目名称及数据名称均可由用户自行设置。
S302、电子设备根据数据名称获取变更的数据及对原始数据包进行更改后的待分析数据包。
具体地,电子设备获取项目名称和数据名称后,根据项目名称从代码仓库中通过接口获取代码仓库的地址,根据该地址可以将项目下载并打包成jar包存储在电子设备中,该项目中包括待分析的数据包。其中,待分析的数据包包括变更的数据,变更的数据为在原始数据上进行更改的数据。
S303、电子设备解析待分析的数据包,提取变更的数据对应的特征信息。
具体地,电子设备对待分析的数据包进行解析,并生成调用链路关系文件。其中,解析工具可以采用但不限于是java-callgraph,将该工具与待分析数据包对应的项目设置在同一级目录上,通过指定命令解析待分析数据包,解析完成后,代码分析工具会生成调用链路关系文件。对待分析的数据包解析完成后,再对数据进行特征提取。其中,特征提取方法可以包括:利用python脚本对数据进行静态扫描。该脚本由用户预先部署在代码分析工具中,在进行特征提取时,工具自动启用该脚本对变更的数据进行静态扫描。特征信息的呈现形式请参考上述实施例,本实施例不再赘述。
S304、电子设备根据解析后的待分析数据包生成调用链路关系文件。
具体地,待分析的数据包中包括类、常量、方法、调用链路等一系列数据,并且包括多个接口调用分支,变更的数据是其中一个分支,每一个接口调用分支包括多个节点,每一个分支表征一条接口调用路径,电子设备对待分析的数据包进行解析后生成调用链路关系文件,该文件表征待分析数据包含的接口的调用关系。
S305、电子设备根据特征信息及调用链路关系文件获取变更的数据对应的接口文件的地址。
具体地,电子设备生成的调用链路关系文件中包括变更的数据对应的数据名称,还包括数据名称与调用链路的映射关系。电子设备可以采用递归回溯方法根据调用链路的映射关系递归回溯到变更的数据对应的接口文件,电子设备可以根据映射关系递归回溯到变更的数据对应的接口文件,当前找到的接口文件为该接口的地址。
S306、电子设备根据接口文件的地址获取变更的数据对应的接口文件。
具体地,获取接口文件对应的地址后,静态扫描接口文件,电子设备根据地址获取变更的数据对应的接口文件。
S307、电子设备处理接口文件,输出目标格式的接口文件。
具体地,电子设备对获取的接口文件进行处理,静态扫描接口文件,对接口文件中包含的接口相关的数据与数据库中包含的数据进行拼接处理,处理完成后输出目标格式的接口文件。其中,目标格式可以由用户自定义,电子设备根据用户确定的接口文件的格式标准对数据进行拼接得到目标格式的数据。
S308、电子设备根据目标格式的接口文件及特征信息标记变更的数据对应的接口信息。
具体地,电子设备根据获取的目标格式的接口文件及特征信息标记变更的数据对应的接口信息。举例来说,可将接口标记为新接口或老接口,若接口A存在于变更分支中,也存在于主干分支中,则将接口A标记为老接口,表示该接口是在原始数据的基础上进行改送的接口。若接口B存在于变更分支中,主干分支中无该接口,则将接口B标记为新接口,表示该接口在原始数据中并没有,而是在本次变更数据的过程中新增的接口。
进一步地,接口信息包括标记后的每一个接口对应的信息及每一个接口对应的界面信息。标记后的每一个接口对应的信息包括以下至少一项:调用方式、路径、参数、功能描述。
图4出示了一种代码分析输出的结果示意图,图5出示了一种调用链路关系文件的部分内容示意图。研发人员将项目名称和数据名称发送给研发人员,该项目名称包含的项目数据包括本次待分析的代码。测试人员拿到项目名称后,根据项目名称调用相关接口,从公司代码仓库获取项目对应的源代码,将项目内容下载并打包成jar包。该项目内容包括在原始数据的基础上变更的数据,项目内容即为待分析的数据。获取待分析的数据后,对待分析的jar包利用java-callgraph进行解析,利用python脚本静态扫描接口文件,对变更的数据进行特征提取,并生成如图5所示的待分析数据对应的调用链路关系文件。电子设备再根据提取的变更的数据对应的特征信息及生成的调用链路关系文件,根据递归回溯方法获取变更的数据对应的接口文件的地址,获取地址后,根据该地址获取接口文件包含的代码内容。电子设备将获取的接口文件的数据与数据库中存储的与接口文件对应的数据进行拼接,得到形如API接口文档格式的接口文件,在调用链路关系文件中根据变更数据分支与主干分支对应的接口的差异标记变更的数据对应的接口信息。以图4出示的示意图为例,图中给出了代码分析的结果,其中,电子设备主要输出三部分内容:操作、内容及说明。第一列可以点击查看代码影响的页面,第二列可以看到该段代码影响的页面调用的接口,第三列是对当前变更的代码影响的接口的说明,说明中给出了当前行对应的是新接口还是老接口、该接口提交请求的方法,若是新接口,会给出新街口关联的前端页面地址。需要说明的是,图中出示的仅为代码分析输出的结果的其中一部分,实际应用中并不仅是图中所示数量的结果。
本申请提供的代码分析方法,电子设备首先获取待分析的数据包及变更的数据,对数据包进行解析、特征提取,根据待分析数据包生成调用链路关系文件,获取变更的数据对应的接口文件的地址,并获取接口文件,电子设备再对接口文件进行处理,输出目标格式的接口文件,最终根据变更的数据的特征信息对变更的数据对应的接口信息进行标记,输出代码分析结果,本申请提供的代码分析方法,解决了当前的代码分析方法效率较低的问题。
请参考图6所示,基于代码分析方法,图6是本申请实施例提供的一种代码分析装置示意图,包括:
第一获取模块601,用于获取对原始数据包进行更改后的待分析数据包;所述待分析数据包包括变更的数据;所述变更的数据为在所述原始数据包的基础上进行更改的数据;
解析模块602,用于解析所述待分析数据包,生成调用链路关系文件;所述链路关系文件表征所述待分析数据包包含的接口的调用关系;
第二获取模块603,用于根据所述调用链路关系文件获取所述变更的数据对应的接口文件;
确定模块604,用于根据所述接口文件确定所述变更的数据对应的接口信息。
在一些实施例中,所述装置还包括:
第三获取模块,用于在第一获取模块601获取对原始数据包进行更改后的待分析数据包之前,获取所述变更的数据对应的数据名称;所述链路关系文件包括所述数据名称;
第四获取模块,用于根据所述数据名称获取所述变更的数据。
在一些实施例中,所述装置还包括:
提取模块,用于在解析模块602解析所述待分析数据包之后,所述第二获取模块603根据所述调用链路关系文件获取所述变更的数据对应的接口文件之前,提取所述变更的数据对应的特征信息;
所述第二获取模块603包括:
第一获取单元,用于根据所述特征信息及所述调用链路关系文件获取所述变更的数据对应的接口文件的地址;
第二获取单元,用于根据所述接口文件的地址获取所述变更的数据对应的接口文件。
在一些实施例中,所述装置还包括:
输出模块,用于在第二获取模块603根据所述接口文件的地址获取所述变更的数据对应的接口文件之后,处理所述接口文件,输出目标格式的接口文件;
所述第二获取模块603具体用于:
根据所述目标格式的接口文件及所述特征信息标记所述变更的数据对应的接口信息。
在一些实施例中,所述输出模块包括:
拼接单元,用于将所述接口文件包含的数据与数据库中存储的与所述接口文件对应的数据进行拼接,得到目标格式的接口文件;
输出单元,用于输出目标格式的接口文件。
在一些实施例中,所述接口信息包括标记后的每一个接口对应的信息及每一个接口对应的界面信息。
在一些实施例中,所述接口信息包括标记后的每一个接口对应的信息及每一个接口对应的界面信息。
请参考图7所示,本申请实施例中提供的另一种代码分析装置700的结构示意图。该代码分析装置700至少可以包括:至少一个处理器701,例如CPU,至少一个网络接口704,用户接口703,存储器705,至少一个通信总线702。其中,通信总线702用于实现这些组件之间的连接通信。用户接口703可以包括但不限于是显示器、摄像头、触摸屏、键盘、鼠标、摇杆等等。网络接口704可选的可以包括标准的有线接口、无线接口(如WIFI接口),通过网络接口704可以与服务器建立通信连接。存储器702可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。如图7所示,作为一种计算机存储介质的存储器705中可以包括操作系统、网络通信模块、用户接口模块以及程序指令。
需要说明的是,网络接口704可以连接获取器、发射器或其他通信模块,其他通信模块可以包括但不限于WiFi模块、运营商网络通信模块等,可以理解,本申请实施例中代码分析装置也可以包括获取器、发射器和其他通信模块等。
处理器701可以用于调用存储器705中存储的程序指令,可以执行以下方法:
获取对原始数据包进行更改后的待分析数据包;所述待分析数据包包括变更的数据;所述变更的数据为在所述原始数据包的基础上进行更改的数据;
解析所述待分析数据包,生成调用链路关系文件;所述链路关系文件表征所述待分析数据包包含的接口的调用关系;
根据所述调用链路关系文件获取所述变更的数据对应的接口文件;
根据所述接口文件确定所述变更的数据对应的接口信息。
可能地,所述处理器701获取对原始数据包进行更改后的待分析数据包之前,还用于执行:
获取所述变更的数据对应的数据名称;所述链路关系文件包括所述数据名称;
根据所述数据名称获取所述变更的数据。
可能地,所述处理器701解析所述待分析数据包之后,所述根据所述调用链路关系文件获取所述变更的数据对应的接口文件之前,还用于执行:
提取所述变更的数据对应的特征信息;
所述处理器701根据所述调用链路关系文件获取所述变更的数据对应的接口文件,具体执行:
根据所述特征信息及所述调用链路关系文件获取所述变更的数据对应的接口文件的地址;
根据所述接口文件的地址获取所述变更的数据对应的接口文件。
可能地,所述处理器701根据所述接口文件的地址获取所述变更的数据对应的接口文件之后,还用于执行:
处理所述接口文件,输出目标格式的接口文件;
所述处理器701根据所述接口文件确定所述变更的数据对应的接口信息,具体执行:
根据所述目标格式的接口文件及所述特征信息标记所述变更的数据对应的接口信息。
可能地,所述处理器701处理所述接口文件,输出目标格式的接口文件,具体执行:
将所述接口文件包含的数据与数据库中存储的与所述接口文件对应的数据进行拼接,得到目标格式的接口文件;
输出目标格式的接口文件。
可能地,所述接口信息包括标记后的每一个接口对应的信息及每一个接口对应的界面信息。
可能地,所述包括标记后的每一个接口对应的信息包括以下至少一项:调用方式、路径、参数、功能描述。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机或处理器上运行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。上述代码分析装置的各组成模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在所述计算机可读取存储介质中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital SubscriberLine,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(Digital Video Disc,DVD)、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。而前述的存储介质包括:只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的介质。在不冲突的情况下,本实施例和实施方案中的技术特征可以任意组合。
以上所述的实施例仅仅是本申请的优选实施例方式进行描述,并非对本申请的范围进行限定,在不脱离本申请的设计精神的前提下,本领域普通技术人员对本申请的技术方案作出的各种变形及改进,均应落入本申请的权利要求书确定的保护范围内。
Claims (10)
1.一种代码分析方法,其特征在于,所述方法包括:
获取对原始数据包进行更改后的待分析数据包;所述待分析数据包包括变更的数据;所述变更的数据为在所述原始数据包的基础上进行更改的数据;
解析所述待分析数据包,生成调用链路关系文件;所述链路关系文件表征所述待分析数据包包含的接口的调用关系;
根据所述调用链路关系文件获取所述变更的数据对应的接口文件;
根据所述接口文件确定所述变更的数据对应的接口信息。
2.如权利要求1所述的方法,其特征在于,所述获取对原始数据包进行更改后的待分析数据包之前,还包括:
获取所述变更的数据对应的数据名称;所述链路关系文件包括所述数据名称;
根据所述数据名称获取所述变更的数据。
3.如权利要求1所述的方法,其特征在于,所述解析所述待分析数据包之后,所述根据所述调用链路关系文件获取所述变更的数据对应的接口文件之前,还包括:
提取所述变更的数据对应的特征信息;
所述根据所述调用链路关系文件获取所述变更的数据对应的接口文件,包括:
根据所述特征信息及所述调用链路关系文件获取所述变更的数据对应的接口文件的地址;
根据所述接口文件的地址获取所述变更的数据对应的接口文件。
4.如权利要求3所述的方法,其特征在于,所述根据所述接口文件的地址获取所述变更的数据对应的接口文件之后,还包括:
处理所述接口文件,输出目标格式的接口文件;
所述根据所述接口文件确定所述变更的数据对应的接口信息,包括:
根据所述目标格式的接口文件及所述特征信息标记所述变更的数据对应的接口信息。
5.如权利要求4所述的方法,其特征在于,所述处理所述接口文件,输出目标格式的接口文件,包括:
将所述接口文件包含的数据与数据库中存储的与所述接口文件对应的数据进行拼接,得到目标格式的接口文件;
输出目标格式的接口文件。
6.如权利要求4所述的方法,其特征在于,所述接口信息包括标记后的每一个接口对应的信息及每一个接口对应的界面信息。
7.如权利要求6所述的方法,其特征在于,所述包括标记后的每一个接口对应的信息包括以下至少一项:调用方式、路径、参数、功能描述。
8.一种代码分析装置,其特征在于,所述装置包括:
第一获取模块,用于获取对原始数据包进行更改后的待分析数据包;所述待分析数据包包括变更的数据;所述变更的数据为在所述原始数据包的基础上进行更改的数据;
解析模块,用于解析所述待分析数据包,生成调用链路关系文件;所述链路关系文件表征所述待分析数据包包含的接口的调用关系;
第二获取模块,用于根据所述调用链路关系文件获取所述变更的数据对应的接口文件;
确定模块,用于根据所述接口文件确定所述变更的数据对应的接口信息。
9.一种代码分析装置,其特征在于,包括处理器、存储器以及通信接口:
所述处理器与所述存储器、所述通信接口相连;
所述存储器,用于存储可执行程序代码;
所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行如权利要求1-7任一项所述的代码分析方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7任一项所述的代码分析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110571018.7A CN113268245A (zh) | 2021-05-25 | 2021-05-25 | 代码分析方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110571018.7A CN113268245A (zh) | 2021-05-25 | 2021-05-25 | 代码分析方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113268245A true CN113268245A (zh) | 2021-08-17 |
Family
ID=77232693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110571018.7A Withdrawn CN113268245A (zh) | 2021-05-25 | 2021-05-25 | 代码分析方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113268245A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778515A (zh) * | 2021-11-09 | 2021-12-10 | 北京世纪好未来教育科技有限公司 | 确定程序包变更信息的方法和装置 |
CN113835746A (zh) * | 2021-09-24 | 2021-12-24 | 广州品唯软件有限公司 | 代码改动对页面影响的定位方法、装置、设备及存储介质 |
CN116756048A (zh) * | 2023-08-16 | 2023-09-15 | 北京安普诺信息技术有限公司 | 一种代码分析方法、装置、计算机设备及存储介质 |
CN117009240A (zh) * | 2023-08-18 | 2023-11-07 | 广州Tcl互联网小额贷款有限公司 | 代码分析方法、系统、装置、电子设备及存储介质 |
-
2021
- 2021-05-25 CN CN202110571018.7A patent/CN113268245A/zh not_active Withdrawn
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113835746A (zh) * | 2021-09-24 | 2021-12-24 | 广州品唯软件有限公司 | 代码改动对页面影响的定位方法、装置、设备及存储介质 |
CN113778515A (zh) * | 2021-11-09 | 2021-12-10 | 北京世纪好未来教育科技有限公司 | 确定程序包变更信息的方法和装置 |
CN113778515B (zh) * | 2021-11-09 | 2022-03-04 | 北京世纪好未来教育科技有限公司 | 确定程序包变更信息的方法和装置 |
CN116756048A (zh) * | 2023-08-16 | 2023-09-15 | 北京安普诺信息技术有限公司 | 一种代码分析方法、装置、计算机设备及存储介质 |
CN116756048B (zh) * | 2023-08-16 | 2023-10-31 | 北京安普诺信息技术有限公司 | 一种代码分析方法、装置、计算机设备及存储介质 |
CN117009240A (zh) * | 2023-08-18 | 2023-11-07 | 广州Tcl互联网小额贷款有限公司 | 代码分析方法、系统、装置、电子设备及存储介质 |
CN117009240B (zh) * | 2023-08-18 | 2024-09-27 | 广州Tcl互联网小额贷款有限公司 | 代码分析方法、系统、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113268245A (zh) | 代码分析方法、装置及存储介质 | |
CN111680253B (zh) | 页面应用数据包生成方法、装置、计算机设备及存储介质 | |
CN110543297B (zh) | 用于生成源码的方法和装置 | |
CN108920359B (zh) | 应用程序的测试方法、装置、存储介质和电子装置 | |
CN112527386B (zh) | 应用程序发布方法及装置 | |
CN111026634A (zh) | 一种接口自动化测试系统、方法、装置及存储介质 | |
CN110888794B (zh) | 接口测试方法和装置 | |
CN110928571A (zh) | 业务程序开发方法和装置 | |
US20240103928A1 (en) | Information processing method and apparatus for animation resource, device, medium and product | |
CN112948726A (zh) | 一种处理异常信息的方法、装置和系统 | |
CN115599386A (zh) | 代码生成方法、装置、设备及存储介质 | |
CN112835568A (zh) | 一种项目构建方法和装置 | |
CN110851211A (zh) | 用于显示应用信息的方法、装置、电子设备和介质 | |
CN110489326B (zh) | 基于ids的httpapi调试方法装置、介质和设备 | |
CN111782239A (zh) | 软件打包和源码版本信息获取方法、装置及存储介质 | |
CN111680288A (zh) | 容器的命令执行方法、装置、设备及存储介质 | |
CN113469740B (zh) | 广告数据获取方法、装置、设备及存储介质 | |
CN115576624A (zh) | 一种编程框架优化方法、系统、终端设备及存储介质 | |
CN113656044A (zh) | 安卓安装包压缩方法、装置、计算机设备及存储介质 | |
CN111008178B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN114021133A (zh) | 代码处理方法、装置、电子设备和存储介质 | |
CN113419738A (zh) | 接口文档的生成方法、装置及接口管理设备 | |
CN115525305A (zh) | 数据处理、应用启动方法、装置、计算机设备和存储介质 | |
CN111151008A (zh) | 游戏运营数据的校验方法、装置、配置后台及介质 | |
CN114564413B (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210817 |
|
WW01 | Invention patent application withdrawn after publication |