CN116483698A - 一种前端受影响功能点分析方法、装置、设备及存储介质 - Google Patents
一种前端受影响功能点分析方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116483698A CN116483698A CN202310325396.6A CN202310325396A CN116483698A CN 116483698 A CN116483698 A CN 116483698A CN 202310325396 A CN202310325396 A CN 202310325396A CN 116483698 A CN116483698 A CN 116483698A
- Authority
- CN
- China
- Prior art keywords
- code
- grammar tree
- tree
- line numbers
- hypertext markup
- 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
- 238000004458 analytical method Methods 0.000 title claims description 37
- 238000000034 method Methods 0.000 claims abstract description 78
- 230000006870 function Effects 0.000 claims description 61
- 238000004590 computer program Methods 0.000 claims description 17
- 230000008859 change Effects 0.000 abstract description 6
- 238000012360 testing method Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 7
- 230000000007 visual effect Effects 0.000 description 6
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- 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/75—Structural analysis for program understanding
-
- 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)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种前端受影响功能点分析方法、装置、设备及存储介质,所述方法包括:解析目标前端代码文件,得到目标语法树;其中,所述目标语法树包括超文本标记语法树,页面脚本语法树和页面样式语法树;确定所述目标前端代码文件的增量代码,并获取各增量代码的始末代码行号;针对每一增量代码,根据当前增量代码的始末代码行号和所述目标语法树,在所述超文本标记语法树中确定匹配的DOM元素,作为受影响功能点。利用本发明公开的方法,通过对前端改动过的代码进行分析,能够找到受改动影响的DOM元素,可以让测试人员迅速确定前端受影响的功能点,减少遗漏测试情况的发生。
Description
技术领域
本发明涉及计算机软件测试技术领域,具体涉及一种前端受影响功能点分析方法、装置、设备及存储介质。
背景技术
在计算机软件项目的迭代过程中,前端页面是会频繁变更的,并且一部分计算机软件项目的前端架构是基于Vue开发的,在修改前端架构中的某一个组件代码时,会同步影响到其他引用了该组件的前端页面,导致测试人员无法完整评估前端测试范围,并且测试人员也无法得到前端代码之间、组件之间的调用影响关系,最终导致无法得到准确且全面的测试结果。
现有技术中存在使用前端底层编译工具Babel去解析前端组件里的JavaScript代码的方案,但是也只能找到函数级别的调用关系,无法找到页面的具体功能影响点,无法辅助测试人员对前端项目进行分析。
发明内容
本发明提供一种前端受影响功能点分析方法、装置、设备及存储介质,用以解决在前端代码修改后查找前端受影响功能点的技术问题。
为了解决上述技术问题,第一方面,本发明提供一种前端受影响功能点分析方法,该方法包括:
解析目标前端代码文件,得到目标语法树;其中,所述目标语法树包括超文本标记语法树,页面脚本语法树和页面样式语法树;
确定所述目标前端代码文件的增量代码,并获取各增量代码的始末代码行号;
针对每一增量代码,根据当前增量代码的始末代码行号和所述目标语法树,在所述超文本标记语法树中确定匹配的DOM元素,作为受影响功能点。
可选地,所述根据当前增量代码的始末代码行号和所述目标语法树,在所述超文本标记语法树中确定匹配的DOM元素步骤包括:
分别获取所述超文本标记语法树,页面脚本语法树和页面样式语法树的始末代码行号;
对比当前增量代码的始末代码行号和所述超文本标记语法树,页面脚本语法树和页面样式语法树的始末代码行号,确定与当前增量代码匹配的语法树;
根据当前增量代码的始末代码行号以及受所述匹配的语法树影响的超文本标记语法树和/或页面脚本语法树,在所述超文本标记语法树中确定匹配的DOM元素。
可选地,所述根据当前增量代码的始末代码行号以及受所述匹配的语法树影响的超文本标记语法树和/或页面脚本语法树,在所述超文本标记语法树中确定匹配的DOM元素步骤包括:
若所述匹配的语法树为超文本标记语法树,获取所述超文本标记语法树中各DOM元素的始末代码行号;
将当前增量代码的始末代码行号和所述各DOM元素的始末代码行号进行匹配,确定DOM元素。
可选地,所述根据当前增量代码的始末代码行号以及受所述匹配的语法树影响的超文本标记语法树和/或页面脚本语法树,在所述超文本标记语法树中确定匹配的DOM元素步骤包括:
若所述匹配的语法树为页面脚本语法树,根据当前增量代码的始末代码行号,使用递归方式从所述页面脚本语法树获取最终调用对象或最终调用方法;
获取所述超文本标记语法树中各DOM元素的属性,并将所述最终调用对象或最终调用方法与所述各DOM元素的属性进行匹配,确定DOM元素。
可选地,所述根据当前增量代码的始末代码行号以及受所述匹配的语法树影响的超文本标记语法树和/或页面脚本语法树,在所述超文本标记语法树中确定匹配的DOM元素步骤包括:
若所述匹配的语法树为页面样式语法树,获取所述超文本标记语法树中各DOM元素的始末代码行号;将当前增量代码的始末代码行号和所述各DOM元素的始末代码行号进行匹配,确定DOM元素;
或,根据当前增量代码的始末代码行号,使用递归方式从所述页面脚本语法树获取最终调用对象或最终调用方法;获取所述超文本标记语法树中各DOM元素的属性,并将所述最终调用对象或最终调用方法与所述各DOM元素的属性进行匹配,确定DOM元素。
可选地,所述根据当前增量代码的始末代码行号,使用递归方式从所述页面脚本语法树获取最终调用对象或最终调用方法步骤包括:
分别获取所述页面脚本语法树的对象定义部分和方法定义部分的始末代码行号;
将当前增量代码的始末代码行号与所述对象定义部分和方法定义部分的始末代码行号进行匹配,若与所述对象定义部分匹配,使用递归方式从所述页面脚本语法树获取目标调用对象,否则,使用递归方式从所述页面脚本语法树获取目标调用方法。
可选地,所述作为受影响功能点之后,所述方法还包括:
可视化展示所述DOM元素对应的元素标签和业务文本,或同时展示引入所述目标前端代码文件的前端页面的路由地址。
第二方面,本发明提供一种前端受影响功能点分析装置,包括语法树解析模块、增量代码模块和DOM元素模块;
所述语法树解析模块用于解析目标前端代码文件,得到目标语法树;其中,所述目标语法树包括超文本标记语法树,页面脚本语法树和页面样式语法树;
所述增量代码模块用于确定所述目标前端代码文件的增量代码,并获取各增量代码的始末代码行号;
所述DOM元素模块用于针对每一增量代码,根据当前增量代码的始末代码行号和所述目标语法树,在所述超文本标记语法树中确定匹配的DOM元素,作为受影响功能点。
第三方面,本发明提供一种前端受影响功能点分析设备,包括存储器和处理器,其中:
所述存储器用于存储计算机程序;
所述处理器用于读取所述存储器中的程序并执行如上述第一方面提供的一种前端受影响功能点分析方法的步骤。
第四方面,本发明提供一种计算机可读存储介质,其上存储有可读的计算机程序,该程序被处理器执行时实现如上述第一方面提供的一种前端受影响功能点分析方法的步骤。
与现有技术相比,本发明提供的一种前端受影响功能点分析方法、装置、设备及存储介质,具有以下有益效果:
通过对前端改动过的代码进行分析,能够找到受改动影响的DOM元素,进一步的,能够找到受改动影响的DOM元素的元素标签和业务文本以及调用了该改动过的代码的页面,并进行可视化展示,让测试人员使用更低成本迅速确定前端受影响功能点范围,能够极大减少遗漏测试情况的发生。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一部分实施例,而不是全部的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,根据这些附图获得的其他的附图,都属于本申请保护的范围。
图1是本发明实施例提供的一种前端受影响功能点分析方法的实施场景的示意图;
图2是本发明实施例提供的一种前端受影响功能点分析方法的流程示意图;
图3是本发明实施例提供的一种前端受影响功能点分析方法中确定匹配的DOM元素的流程示意图;
图4是本发明实施例提供的一种前端受影响功能点分析方法中一种可视化展示示意图;
图5是本发明实施例提供的一种前端受影响功能点分析装置的结构示意图;
图6是本发明实施例提供的一种前端受影响功能点分析设备的结构示意图;
图7是本发明实施例提供的一种计算机可读存储介质的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图和具体实施例对本发明作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了使本揭示内容的叙述更加详尽与完备,下文针对本发明的实施方式与具体实施例提出了说明性的描述;但这并非实施或运用本发明具体实施例的唯一形式。实施方式中涵盖了多个具体实施例的特征以及用以建构与操作这些具体实施例的方法步骤与其顺序。然而,亦可利用其它具体实施例来达成相同或均等的功能与步骤顺序。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
在本发明实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个,其它量词与之类似应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
请参照图1-图7,用于解决在前端代码修改后查找前端受影响功能点的技术问题。
如图1所示,为本发明实施例提供的一种前端受影响功能点分析方法的实施场景的示意图。其中,计算机设备用于执行前端受影响功能点分析方法的步骤。
其中,上述计算机设备可以是个人计算机、笔记本电脑;计算机设备还可以是服务器,服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content DeliveryNetwork,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器,本发明实施例对上述计算机设备的具体实施方式不作任何限定,任何可以实现上述功能的实施方式都可以用于到本发明实施例中。可以理解的是,上述图1中的计算机设备的数量仅仅是示意性的,可以根据实际需求进行任意数量的扩展。
基于上述实施场景,本发明实施例提供了一种前端受影响功能点分析方法。如图2所述,为本发明实施例提供的一种前端受影响功能点分析方法的流程示意图,具体用于上述实施场景中的上述计算机设备,该方法包括以下步骤。
步骤S101,解析目标前端代码文件,得到目标语法树;其中,所述目标语法树包括超文本标记语法树,页面脚本语法树和页面样式语法树。
上述目标前端代码文件是vue文件。
需要说明的是,任何可以进行解析前端代码文件的方式都可以应用到本发明实施例中,本发明实施例对此不进行任何限定。
作为一种可选的实施方式,使用babel工具将上述目标前端代码文件解析成包含html、script、style三部分的对象。
其中,html、script、style三部分各自独立;html部分是上述目标前端代码文件定义html标签的地方;script部分是上述目标前端代码文件定义JavaScript脚本的地方,script部分具体包括data(数据)部分和methods(方法)部分;style部分是上述目标前端代码文件定义CSS(Cascading Style Sheets,层叠样式表)样式的地方,用于配合html部分渲染元素的样式。
需要说明的是,上述目标语法树的具体形式可以是AST(Abstract Syntax Tree,抽象语法树),本发明实施例对此不进行任何限定。
作为一种可选的实施方式,使用parser5工具将上述html部分解析成上述超文本标记语法树;使用babel或parser工具将上述script部分解析成上述页面脚本语法树;使用postcss工具将上述style部分解析成上述页面样式语法树。
步骤S102,确定所述目标前端代码文件的增量代码,并获取各增量代码的始末代码行号。
需要说明的是,任何可以获得上述增量代码的方式都可以应用到本发明实施例中,本发明实施例对此不进行任何限定。
作为一种可选的实施方式,通过diff工具解析上述目标前端代码文件,获取当前上述目标前端代码文件相对于上一个版本的上述目标前端代码文件的增量代码。
进一步地,提取上述增量代码的起始代码行号和结束代码行号进行存储。
更进一步地,如果上述目标前端代码文件存在至少两处增量代码,则新建一个增量代码对象集合,然后每解析一处增量代码时生成新的增量代码对象,该增量代码对象保存被解析的增量代码的起始代码行号和结束代码行号,最后将该增量代码对象存储至该增量代码对象集合。
步骤S103,针对每一增量代码,根据当前增量代码的始末代码行号和所述目标语法树,在所述超文本标记语法树中确定匹配的DOM元素,作为受影响功能点。
其中,DOM(Document Object Model,文档对象模型)是HTML和XML文档的编程接口。DOM提供了对文档的结构化的表述,并定义了一种方式可以使从程序中对该结构进行访问,从而改变文档的结构、样式和内容。
进一步地,如图3所示,为本发明实施例提供的一种前端受影响功能点方法中确定匹配的DOM元素的流程示意图,上述步骤S103包括:
步骤S1031,分别获取所述超文本标记语法树,页面脚本语法树和页面样式语法树的始末代码行号。
步骤S1032,对比当前增量代码的始末代码行号和所述超文本标记语法树,页面脚本语法树和页面样式语法树的始末代码行号,确定与当前增量代码匹配的语法树。
具体地,分别提取html部分的开始代码行号和结束代码行号、script部分的开始代码行号和结束代码行号、style部分的开始代码行号和结束代码行号,用当前增量代码的开始代码行号和结束代码行号进行匹配,确定当前增量代码位于哪一部分内。
步骤S1033,根据当前增量代码的始末代码行号以及受所述匹配的语法树影响的超文本标记语法树和/或页面脚本语法树,在所述超文本标记语法树中确定匹配的DOM元素。
作为一种可选的实施方式,若所述匹配的语法树为超文本标记语法树,获取所述超文本标记语法树中各DOM元素的始末代码行号;
将当前增量代码的始末代码行号和所述各DOM元素的始末代码行号进行匹配,确定DOM元素。
具体地,若当前增量代码位于html部分,则遍历该html部分,将当前增量代码的开始代码行号和结束代码行号与html部分的每个DOM元素的开始代码行号和结束代码行号进行比较,直至在该html部分找到匹配的DOM元素。
最后,将该DOM元素对应的元素标签和业务文本进行存储。例如,确定DOM元素为“<key-button type=”text”>编辑</key-button>”,则提取元素标签“key-button”和业务文本“编辑”进行存储。
作为一种可选的实施方式,若所述匹配的语法树为页面脚本语法树,根据当前增量代码的始末代码行号,使用递归方式从所述页面脚本语法树获取最终调用对象或最终调用方法;
获取所述超文本标记语法树中各DOM元素的属性,并将所述最终调用对象或最终调用方法与所述各DOM元素的属性进行匹配,确定DOM元素。
具体地,将所述最终调用对象或最终调用方法对应的代码内容与所述各DOM元素的属性中的代码内容进行匹配,找到匹配的DOM元素。
进一步地,将上述最终调用对象或方法在上述超文本标记语法树中进行匹配,遍历每个DOM元素,提取DOM元素对应的属性。若被遍历的DOM元素的属性包含上述最终调用对象或方法,则将该DOM对应的元素标签和业务文本进行存储。
具体地,上述根据当前增量代码的始末代码行号,使用递归方式从所述页面脚本语法树获取最终调用对象或最终调用方法步骤包括:
分别获取所述页面脚本语法树的对象定义部分和方法定义部分的始末代码行号。
将当前增量代码的始末代码行号与所述对象定义部分和方法定义部分的始末代码行号进行匹配,若与所述对象定义部分匹配,使用递归方式从所述页面脚本语法树获取目标调用对象,否则,使用递归方式从所述页面脚本语法树获取目标调用方法。
在另一更具体的实施例中,若所述匹配的语法树为页面脚本语法树,即上述增量代码位于上述script部分,则先分别遍历上述script部分里的data代码块和methods代码块,分别获取data代码块和methods代码块的起始代码行号和结束代码行号。其中,data代码块是上述目标前端代码文件定义对象的地方,methods代码块是上述目标前端代码文件定义方法的地方。
然后,使用上述data代码块和methods代码块的起始代码行号和结束代码行号与上述增量代码进行匹配。若匹配成功,则通过行号确定上述增量代码所属的对象或方法,并存储该所属的对象或方法。
对上述页面脚本语法树进行递归,若某一次递归找到新的调用对象或调用方法,则使用新的调用对象或调用方法替换上述所属的对象或方法,直至递归过程结束,上述所属的对象或方法不再更新,则上述所属的对象或方法为最终调用对象或方法。
例如,某一增量代码位于script部分,该增量代码的起始代码行和结束代码行均在link()方法内,则此时将link()方法作为新的查找对象再在script部分进行重新查找,发现link()方法在toggleRowSelection()方法内被调用,因此再将toggleRowSelection()方法作为新的查找对象再在script部分进行重新查找,查找完毕后没有发现新的调用方法,则将toggleRowSelection()再去上述html部分进行搜索。
作为一种可选的实施方式,若所述匹配的语法树为页面样式语法树,获取所述超文本标记语法树中各DOM元素的始末代码行号;
将当前增量代码的始末代码行号和所述各DOM元素的始末代码行号进行匹配,确定DOM元素;
或,根据当前增量代码的始末代码行号,使用递归方式从所述页面脚本语法树获取最终调用对象或最终调用方法;
获取所述超文本标记语法树中各DOM元素的属性,并将所述最终调用对象或最终调用方法与所述各DOM元素的属性进行匹配,确定DOM元素。
其中,根据所述超文本标记语法树确定DOM元素和根据所述页面脚本语法树确定DOM元素的具体实施方式参考前述内容,在此不再赘述。
作为一种可选的实施方式,将确定匹配的DOM元素作为受影响功能点之后,可视化展示所述DOM元素对应的元素标签和业务文本,或同时展示引入所述目标前端代码文件的前端页面的路由地址。
在另一更具体的实施例中,通过前端代码文件的路径生成前端代码文件对应的路由地址,并对前端代码文件所属的当前项目文件进行遍历,针对每个前端代码文件,都使用babel或parser工具解析其script部分,通过import语句查找到引入了被遍历的路由地址对应的前端代码文件的其他前端页面,并使用引入路径生成对应的路由地址。
例如,当前增量代码位于组件list.vue内,根据路径,在文件目录resourcev2下面,因此,对应的路由地址为http://xxxx/resourcev2/list。
如图4所示,为发明实施例提供的一种前端受影响功能点分析方法中一种可视化展示示意图,修改过的增量vue文件位于左边部分,中间部分显示的是某vue文件里增量代码片段,右边显示的是从增量vue文件里提取的路由地址、所属页面、影响点入口和元素类型。
上述元素类型即为前述元素标签,在上述图4中,元素标签“kye-button”根据代码里的规则映射为中文按钮,中文按钮对应的影响点入口分别为异常检测和自助查询。
通过上述的可视化展示,测试人员能够快速找到目标应用有哪些增量文件,该增量文件里面修改的增量代码块,以及上述增量代码块分别影响了哪些路由下的具体类型的标签,通过标签的业务文本能够快速定位到受影响的功能点。
进一步地,将上述可视化展示方法用于监控前端框架,当前端框架有改动后,能够自动分析受影响的业务功能组件,并将受影响的业务功能组件展示给相关的开发人员和测试人员。
本发明提供的一种前端受影响功能点分析方法,具有以下有益效果:
通过对前端改动过的代码进行分析,能够找到受改动影响的DOM元素,新一步的,能够找到受改动影响的DOM元素的元素标签和业务文本以及调用了该改动过的代码的页面,并进行可视化展示,让测试人员使用更低成本迅速确定前端受影响功能点范围,能够极大减少遗漏测试情况的发生。
将前端代码文件转为语法树进行匹配,进一步提高了匹配效率,减少了查找到前端受影响功能点的耗时。
基于上述前端受影响功能点分析方法,如图5所示,为本发明实施例提供的一种前端受影响功能点分析装置的结构示意图,包括语法树解析模块51、增量代码模块52和DOM元素模块53;
所述语法树解析模块51用于解析目标前端代码文件,得到目标语法树;其中,所述目标语法树包括超文本标记语法树,页面脚本语法树和页面样式语法树;
所述增量代码模块52用于确定所述目标前端代码文件的增量代码,并获取各增量代码的始末代码行号;
所述DOM元素模块53用于针对每一增量代码,根据当前增量代码的始末代码行号和所述目标语法树,在所述超文本标记语法树中确定匹配的DOM元素,作为受影响功能点。
关于上述前端受影响功能点分析装置中各模块实现上述技术方案的其他细节,可参见上述发明实施例中提供的前端受影响功能点分析方法中的描述,此处不再赘述。
基于上述前端受影响功能点分析方法,如图6所示,本发明实施例还提供了一种前端受影响功能点分析设备的结构示意图,该识别设备包括处理器61和与该处理器61耦合的存储器62。存储器62存储有计算机程序,计算机程序被处理器61执行时,使得处理器61执行上述实施例中的前端受影响功能点分析方法的步骤。
关于上述前端受影响功能点分析设备中处理器61实现上述技术方案的其他细节,可参见上述发明实施例中提供的前端受影响功能点分析方法中的描述,此处不再赘述。
其中,处理器61还可以称为CPU(Central Processing Unit,中央处理单元),处理器61可能是一种集成电路芯片,具有信号的处理能力;处理器61还可以是通用处理器、DSP(Digital Signal Process,数字信号处理器)、ASIC(Application Specific IntegratedCircuit,专用集成电路)、FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,其中通用处理器可以是微处理器或者该处理器61也可以是任何常规的处理器等。
如图7所示,本发明实施例还提供了一种计算机可读存储介质的结构示意图,该存储介质上存储有可读的计算机程序701;其中,该计算机程序701可以以软件产品的形式存储在上述存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、磁碟或者光盘、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
以上对本申请所提供的技术方案进行了详细介绍,本申请中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种前端受影响功能点分析方法,其特征在于,包括:
解析目标前端代码文件,得到目标语法树;其中,所述目标语法树包括超文本标记语法树,页面脚本语法树和页面样式语法树;
确定所述目标前端代码文件的增量代码,并获取各增量代码的始末代码行号;
针对每一增量代码,根据当前增量代码的始末代码行号和所述目标语法树,在所述超文本标记语法树中确定匹配的DOM元素,作为受影响功能点。
2.根据权利要求1所述的前端受影响功能点分析方法,其特征在于,所述根据当前增量代码的始末代码行号和所述目标语法树,在所述超文本标记语法树中确定匹配的DOM元素步骤包括:
分别获取所述超文本标记语法树,页面脚本语法树和页面样式语法树的始末代码行号;
对比当前增量代码的始末代码行号和所述超文本标记语法树,页面脚本语法树和页面样式语法树的始末代码行号,确定与当前增量代码匹配的语法树;
根据当前增量代码的始末代码行号以及受所述匹配的语法树影响的超文本标记语法树和/或页面脚本语法树,在所述超文本标记语法树中确定匹配的DOM元素。
3.根据权利要求2所述的前端受影响功能点分析方法,其特征在于,所述根据当前增量代码的始末代码行号以及受所述匹配的语法树影响的超文本标记语法树和/或页面脚本语法树,在所述超文本标记语法树中确定匹配的DOM元素步骤包括:
若所述匹配的语法树为超文本标记语法树,获取所述超文本标记语法树中各DOM元素的始末代码行号;
将当前增量代码的始末代码行号和所述各DOM元素的始末代码行号进行匹配,确定DOM元素。
4.根据权利要求2所述的前端受影响功能点分析方法,其特征在于,所述根据当前增量代码的始末代码行号以及受所述匹配的语法树影响的超文本标记语法树和/或页面脚本语法树,在所述超文本标记语法树中确定匹配的DOM元素步骤包括:
若所述匹配的语法树为页面脚本语法树,根据当前增量代码的始末代码行号,使用递归方式从所述页面脚本语法树获取最终调用对象或最终调用方法;
获取所述超文本标记语法树中各DOM元素的属性,并将所述最终调用对象或最终调用方法与所述各DOM元素的属性进行匹配,确定DOM元素。
5.根据权利要求2所述的前端受影响功能点分析方法,其特征在于,所述根据当前增量代码的始末代码行号以及受所述匹配的语法树影响的超文本标记语法树和/或页面脚本语法树,在所述超文本标记语法树中确定匹配的DOM元素步骤包括:
若所述匹配的语法树为页面样式语法树,获取所述超文本标记语法树中各DOM元素的始末代码行号;将当前增量代码的始末代码行号和所述各DOM元素的始末代码行号进行匹配,确定DOM元素;
或,根据当前增量代码的始末代码行号,使用递归方式从所述页面脚本语法树获取最终调用对象或最终调用方法;获取所述超文本标记语法树中各DOM元素的属性,并将所述最终调用对象或最终调用方法与所述各DOM元素的属性进行匹配,确定DOM元素。
6.根据权利要求4或5所述的前端受影响功能点分析方法,其特征在于,所述根据当前增量代码的始末代码行号,使用递归方式从所述页面脚本语法树获取最终调用对象或最终调用方法步骤包括:
分别获取所述页面脚本语法树的对象定义部分和方法定义部分的始末代码行号;
将当前增量代码的始末代码行号与所述对象定义部分和方法定义部分的始末代码行号进行匹配,若与所述对象定义部分匹配,使用递归方式从所述页面脚本语法树获取目标调用对象,否则,使用递归方式从所述页面脚本语法树获取目标调用方法。
7.根据权利要求1所述的前端受影响功能点分析方法,其特征在于,所述作为受影响功能点之后,所述方法还包括:
可视化展示所述DOM元素对应的元素标签和业务文本,或同时展示引入所述目标前端代码文件的前端页面的路由地址。
8.一种前端受影响功能点分析装置,其特征在于,包括语法树解析模块、增量代码模块和DOM元素模块;
所述语法树解析模块用于解析目标前端代码文件,得到目标语法树;其中,所述目标语法树包括超文本标记语法树,页面脚本语法树和页面样式语法树;
所述增量代码模块用于确定所述目标前端代码文件的增量代码,并获取各增量代码的始末代码行号;
所述DOM元素模块用于针对每一增量代码,根据当前增量代码的始末代码行号和所述目标语法树,在所述超文本标记语法树中确定匹配的DOM元素,作为受影响功能点。
9.一种前端受影响功能点分析设备,其特征在于,包括存储器和处理器,其中:
所述存储器用于存储计算机程序;
所述处理器用于读取所述存储器中的计算机程序,并执行如权利要求1~7所述的任一前端受影响功能点分析方法的步骤。
10.一种计算机可读存储介质,其特征在于,其上存储有可读的计算机程序,该程序被处理器执行时实现如权利要求1~7所述的任一前端受影响功能点分析方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310325396.6A CN116483698A (zh) | 2023-03-22 | 2023-03-22 | 一种前端受影响功能点分析方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310325396.6A CN116483698A (zh) | 2023-03-22 | 2023-03-22 | 一种前端受影响功能点分析方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116483698A true CN116483698A (zh) | 2023-07-25 |
Family
ID=87226025
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310325396.6A Pending CN116483698A (zh) | 2023-03-22 | 2023-03-22 | 一种前端受影响功能点分析方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116483698A (zh) |
-
2023
- 2023-03-22 CN CN202310325396.6A patent/CN116483698A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112118232B (zh) | 报文协议解析方法及装置 | |
CN108182215B (zh) | 一种结构化查询语言sql性能统计的方法及装置 | |
CN110688307B (zh) | JavaScript代码检测方法、装置、设备和存储介质 | |
CN111142988B (zh) | 页面测试方法、装置、存储介质及电子设备 | |
CN111045678A (zh) | 页面执行动态代码的方法、装置、设备及存储介质 | |
EP2948851A1 (en) | Method and apparatus for testing browser compatibility | |
CN110502227B (zh) | 代码补全的方法及装置、存储介质、电子设备 | |
CN108711443B (zh) | 电子病历的文本数据解析方法和装置 | |
Gottron | Evaluating content extraction on HTML documents | |
CN111079043A (zh) | 一种关键内容定位方法 | |
CN111367595B (zh) | 数据处理方法、程序运行方法、装置及处理设备 | |
CN111797356B (zh) | 网页表格信息抽取方法及装置 | |
CN102012857A (zh) | 一种对Web页面进行自动化测试的装置及方法 | |
CN111723265A (zh) | 一种可扩展的新闻网站通用爬虫方法及*** | |
CN111475196A (zh) | 编译告警溯源方法、装置、电子设备及计算机可读介质 | |
CN103235757B (zh) | 基于自动化造数对输入域测试对象进行测试的装置和方法 | |
CN113419721A (zh) | 基于web的表达式编辑方法、装置、设备和存储介质 | |
CN117194255A (zh) | 测试数据维护方法、装置、设备及存储介质 | |
CN116775488A (zh) | 异常数据确定方法、装置、设备、介质及产品 | |
CN116610558A (zh) | 代码检测方法、装置、电子设备及计算机可读存储介质 | |
CN116483698A (zh) | 一种前端受影响功能点分析方法、装置、设备及存储介质 | |
CN115309661A (zh) | 一种应用测试方法、装置、电子设备及可读存储介质 | |
CN112612866B (zh) | 知识库文本同步方法、装置、电子设备及存储介质 | |
CN113051925B (zh) | 时间识别方法、装置、设备及计算机存储介质 | |
JP2011070541A (ja) | ネットマーケティング支援方法及びネットマーケティング支援装置 |
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 |