CN112433943A - 基于抽象语法树的环境变量检测方法、装置、设备及介质 - Google Patents
基于抽象语法树的环境变量检测方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN112433943A CN112433943A CN202011340224.9A CN202011340224A CN112433943A CN 112433943 A CN112433943 A CN 112433943A CN 202011340224 A CN202011340224 A CN 202011340224A CN 112433943 A CN112433943 A CN 112433943A
- Authority
- CN
- China
- Prior art keywords
- variable
- environment variable
- abnormal
- variables
- production environment
- 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
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000004519 manufacturing process Methods 0.000 claims abstract description 147
- 238000012360 testing method Methods 0.000 claims abstract description 147
- 230000002159 abnormal effect Effects 0.000 claims abstract description 134
- 238000001514 detection method Methods 0.000 claims abstract description 25
- 238000004458 analytical method Methods 0.000 claims description 23
- 230000005856 abnormality Effects 0.000 claims description 16
- 238000012858 packaging process Methods 0.000 claims description 10
- 238000000354 decomposition reaction Methods 0.000 claims description 6
- 238000010276 construction Methods 0.000 abstract description 6
- 230000007613 environmental effect Effects 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/3664—Environments for testing or debugging software
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于抽象语法树的环境变量检测方法、装置、设备及存储介质,所述方法包括将环境变量源代码解析成抽象语法树;遍历所述抽象语法树中的节点数据,得到测试环境变量以及生产环境变量;检测测试环境变量和生产环境变量是否符合预设的配置规则,当不符合所述配置规则时,将不符合所述配置规则的测试环境变量和所述生产环境变量确定为异常变量并输出异常变量的名称以及异常原因。本发明公开的环境变量检测方法,采用自动化的手段,全面地检测到每一个环境变量,降低了人为审查引起的遗漏风险,大大提高了软件开发的质量和效率,而且该方法可以在构建阶段对源代码进行解析,基于原有流程对环境变量进行检测,不会增加多余的工作。
Description
技术领域
本发明涉及软件开发与测试技术领域,特别涉及一种基于抽象语法树的环境变量检测方法、装置、设备及介质。
背景技术
随着计算机技术的飞速发展,人类社会的信息化程度越来越高,整个社会的政治、经济、军事、文化以及其他领域对计算机信息系统的依赖程度也越来越高。在这种情况下,计算机系统的安全性得到了人们越来越多的关注。
现有技术中,在编写一个大型软件或系统时,前端代码中有着各种各样的环境变量,这些环境变量在测试环境及生产环境中通常是不相同的,并且测试环境和生产环境的变量需要一一对应。然而随着时间的推移,在环境变量越来越多的情况下,就会出现生产环境的变量配置成测试环境的,生产环境的变量忘记配置等情况。当出现这种情况时,应用程序可能无法正常运行。而且这种问题一般隐藏较深,因为在进行软件测试时不会发现生产环境变量有异常,所以经常会被遗漏。另外依靠人为审查难免会出现纰漏,并且还会耗费大量的时间和精力。
发明内容
本公开实施例提供了一种基于抽象语法树的环境变量检测方法、装置、设备及介质。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
第一方面,本公开实施例提供了一种基于抽象语法树的环境变量检测方法,包括:
将环境变量源代码解析成抽象语法树;
遍历抽象语法树中的节点数据,得到测试环境变量以及生产环境变量;
检测测试环境变量和生产环境变量是否符合预设的配置规则,当不符合配置规则时,将不符合配置规则的测试环境变量和生产环境变量确定为异常变量并输出异常变量的名称以及异常原因。
在一个实施例中,将环境变量源代码解析成抽象语法树之前,还包括:
获取打包流程中的环境变量文件数据包;
将环境变量文件数据包解析成源代码。
在一个实施例中,将环境变量源代码解析成抽象语法树包括:
对环境变量源代码进行词法分析,按照预设的分解规则将源代码分解成单词符号串;
对单词符号串进行语法分析,得到抽象语法树。
在一个实施例中,检测测试环境变量和生产环境变量是否符合预设的配置规则,当不符合配置规则时,将不符合配置规则的测试环境变量和生产环境变量确定为异常变量并输出异常变量的名称以及异常原因,包括:
检测生产环境变量中是否含有测试环境变量;
当生产环境变量中含有测试环境变量时,确定变量出现混淆异常并输出异常的生产环境变量或测试环境变量的名称以及预设的混淆异常原因。
在一个实施例中,检测测试环境变量和生产环境变量是否符合预设的配置规则,当不符合配置规则时,将不符合配置规则的测试环境变量和生产环境变量确定为异常变量并输出异常变量的名称以及异常原因,包括:
检测生产环境变量和测试环境变量的数量是否相等;
检测生产环境变量和测试环境变量的变量名是否一致;
当数量不相等或变量名不一致时,确定变量出现对应异常,输出数量不相等或者变量名不一致的生产环境变量或测试环境变量的名称以及预设的对应异常原因。
在一个实施例中,输出异常变量的名称以及异常原因之后,还包括:
根据异常变量的名称以及异常原因,进行变量配置。
在一个实施例中,根据异常变量的名称以及异常原因,进行变量配置,包括:
当变量出现混淆异常时,根据异常变量的名称删除混淆的异常变量;
当变量出现对应异常时,根据异常变量的名称重新配置与其对应的变量。
第二方面,本公开实施例提供了一种基于抽象语法树的环境变量检测装置,包括:
解析模块,用于将环境变量源代码解析成抽象语法树;
获取模块,用于遍历抽象语法树中的节点数据,得到测试环境变量以及生产环境变量;
检测模块,用于检测测试环境变量和生产环境变量是否符合预设的配置规则,当不符合配置规则时,将不符合配置规则的测试环境变量和生产环境变量确定为异常变量并输出异常变量的名称以及异常原因。
第三方面,本公开实施例提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述实施例提供的基于抽象语法树的环境变量检测方法的步骤。
第四方面,本公开实施例提供了一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述实施例提供的基于抽象语法树的环境变量检测方法的步骤。
本公开实施例提供的技术方案可以包括以下有益效果:
根据本公开实施例提供的环境变量检测方法,可以对环境变量的源代码进行解析,得到抽象语法树,基于抽象语法树检测生产环境变量和测试环境变量。该方法可以采用自动化的手段,全面地检测到每一个环境变量,降低了人为审查引起的遗漏风险,大大提高了软件开发的质量和效率,而且该方法可以在构建阶段对源代码进行解析,基于原有流程对环境变量进行检测,不会增加多余的工作。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种基于抽象语法树的环境变量检测方法的实施环境图;
图2是根据一示例性实施例示出的一种计算机设备的内部结构图;
图3是根据一示例性实施例示出的一种基于抽象语法树的环境变量检测方法的流程示意图;
图4是根据一示例性实施例示出的一种基于抽象语法树的环境变量检测方法的流程示意图;
图5是根据一示例性实施例示出的一种基于抽象语法树的环境变量检测装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一字段及算法确定模块成为第二字段及算法确定模块,且类似地,可将第二字段及算法确定模块成为第一字段及算法确定模块。
图1是根据一示例性实施例示出的一种基于抽象语法树的环境变量检测方法的实施环境图,如图1所示,在该实施环境中,包括服务器110以及终端120。
服务器110为基于抽象语法树的环境变量检测设备,例如为技术人员使用的电脑等计算机设备,服务器110上安装有环境变量检测工具。终端120上安装有需要进行环境变量检测的应用,当需要进行环境变量检测时,技术人员可以在计算机设备110发出提供环境变量检测的请求,该请求中携带有请求标识,计算机设备110接收该请求,获取计算机设备110中存储的环境变量检测工具。然后利用环境变量检测工具进行环境变量检测。
需要说明的是,终端120以及计算机设备110可为智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。计算机设备110以及终端120可以通过蓝牙、USB(Universal Serial Bus,通用串行总线)或者其他通讯连接方式进行连接,本发明在此不做限制。
图2是根据一示例性实施例示出的一种计算机设备的内部结构图。如图2所示,该计算机设备包括通过系统总线连接的处理器、非易失性存储介质、存储器和网络接口。其中,该计算机设备的非易失性存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种基于抽象语法树的环境变量检测方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种基于抽象语法树的环境变量检测方法。该计算机设备的网络接口用于与终端连接通信。
其中,存储器可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个网络接口(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
总线可以是ISA总线、PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。其中,存储器用于存储程序,处理器在接收到执行指令后,执行程序,前述本申请实施例任一实施方式揭示的基于抽象语法树的环境变量检测方法可以应用于处理器中,或者由处理器实现。
处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
本领域技术人员可以理解,图2中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
下面将结合附图3-附图4,对本申请实施例提供的基于抽象语法树的环境变量检测方法进行详细介绍。该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的数据传输装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。
请参见图3,为本申请实施例提供了一种基于抽象语法树的环境变量检测方法的流程示意图,如图3所示,本申请实施例的方法可以包括以下步骤:
S301,将环境变量源代码解析成抽象语法树。
在一个实施例中,获取到环境变量的源代码后,对环境变量源代码进行词法分析以及语法分析,得到抽象语法树。
首先对源代码进行词法分析,进行词法分析时,首先扫描代码,当遇到空格、操作符、特殊符号时,则认为是一个完结,同时,会自动移除空白符、注释等,按照上述规则,将源代码分解成单词符号串。在一些示例性场景中,获取到如下源代码:
/**
环境变量
**/
if(Env!==PRODUCTION){
MOBILE_BANK=’https://test1.***.pingan.com.cn:10143/manager/stg/platform/fintech/***/stg/dev-20200820/***.html"
}else{
MOBILE_BANK=’https://***.pingan.com.cn/manager/prd/platform/fintech/***/***/.html"
对上述源代码进行词法分析时,会自动删除其中的注释性文字“环境变量”,还会自动删除空白符等。然后扫描代码,若遇到空格、操作符、特殊符号时,则认为是一个完结,最终得到“prd”“dev”、“test”、“left”等单词字符串。
然后再进行语法分析,语法分析是将分解出来的单词符号串转换成树的形式,同时验证语法是否异常,若语法异常则输出语法错误,并删除一些没有必要的标示符号,其包括了表示类型信息的对象和符号表,最后形成一个包含了程序结构的所有信息的完整语法树。抽象语法树是源代码的抽象语法结构的树状表现形式,树上的每个节点都表示源代码中的一种结构。
根据该步骤,可以将环境变量源代码解析成抽象语法树。
在一种可能的实现方式中,将环境变量源代码解析成抽象语法树之前,还包括:获取打包流程中的环境变量文件数据包,将环境变量文件数据包解析成源代码。
具体地,打包开始后,环境变量文件进入工作流,将环境变量文件解析成源代码,在一种可能的实现方式中,采用反编译器获取环境变量文件的源代码。该方法在构建阶段对源代码进行解析,基于原有的数据打包流程对环境变量进行检测,不会增加多余的工作,降低工作量。
S302,遍历抽象语法树中的节点数据,得到测试环境变量以及生产环境变量。
具体地,源代码被解析成树状结构后,树上的每一个节点都包含变量名以及变量值,根据变量名以及变量值,对环境变量进行分类。其中,测试环境变量被归并到测试环境变量列表中,生产环境变量被归并到生产环境变量列表中,通过遍历测试环境变量列表和生产环境变量列表,获取到测试环境变量以及生产环境变量。
可选地,有些变量形式复杂,比如是表达式,可能还需进一步解析,通过分析表达式中的变量再获取最终的变量值,在一些示例性场景中,经过分析后得到的表达式为“varBIND_CARD=PATH_HOST+'bindcard.html'”,然后对表达式继续分析得到变量“BIND,CARD,PATH_HOST,bindcard,html”。如此一一解析后得到全部测试环境变量以及生产环境变量。
根据该步骤,可以自动解析出全部的生产环境变量以及测试环境变量,以便于后续检测。
S303,检测测试环境变量和生产环境变量是否符合预设的配置规则,当不符合配置规则时,将不符合配置规则的测试环境变量和生产环境变量确定为异常变量并输出异常变量的名称以及异常原因。
在编写一个大型软件或系统时,前端代码中有着各种各样的环境变量,环境变量的配置规则是,生产环境变量和测试环境变量需要一一对应。但是随着时间的推移,在环境变量越来越多的情况下,就会出现生产环境的变量配置成测试环境的,生产环境的变量忘记配置等情况。因此,必须检测生产环境变量和测试环境变量是否一一对应。
具体地,检测生产环境变量中是否包含测试环境变量,当含有测试环境变量时,输出异常的变量名以及异常原因。
在一种可能的实现方式中,通过正则表达式进行检测,正则表达式又称规则表达式,可用来检索、替换不符合预设规则的文本。
生产环境变量和测试环境变量包含的关键字不同,通过检测生产环境变量中是否包含测试环境变量关键字,来检测生产环境变量中是否包含测试环境变量。例如,可通过正则表达式检测生产环境变量中是否包含“test”、“http”、“stg1”、“dev”、“development”、“localhost”等测试环境变量的关键字,若包含,则确定生产环境变量中混入了测试环境变量。
进一步地,输出异常的测试环境变量名以及异常原因,并停止打包流程。例如,将检测出来的测试环境变量输出,并输出异常原因“生产环境变量中混淆了测试环境变量”。
进一步地,系统可根据输出的异常环境变量名以及异常原因,自动进行修改。例如,系统根据异常原因“生产环境变量中混淆了测试环境变量”,将输出的异常环境变量删除。用户也可根据输出的异常环境变量名以及异常原因,自行进行修改。
在一种可能的实现方式中,检测生产环境变量和测试环境变量是否一一对应,还包括检测生产环境变量和测试环境变量的数量是否相等,检测生产环境变量和测试环境变量的变量名是否对应,当数量不相等或变量名不对应时,输出异常的变量名以及异常原因。
具体地,当生产环境变量的数量少于测试环境变量的数量时,表明生产环境的变量可能忘记配置,进一步遍历生产环境变量名和测试环境变量名是否一一对应,输出其中没有配对的环境变量名,并输出异常原因。
在一种示例性场景中,输出没有配对的测试环境变量名,以及异常原因“该测试环境变量忘记配置生产环境变量”。系统根据输出的环境变量名以及异常原因,自动配置生产环境变量。或用户根据输出的环境变量名以及异常原因,配置忘记配置的生产环境变量。
在一些示例性场景中,将生产环境变量列表“production”与测试环境变量列表“test”进行对比,若数量不相等,则输出其中无法配对的测试环境变量“stg1”,以及异常原因,“该测试环境变量忘记配置生产环境变量”,系统根据输出的环境变量名以及异常原因,自动配置与测试环境变量“stg1”对应的生产环境变量。
进一步地,当生产环境变量和测试环境变量的数量相等时,还需检测生产环境变量名和测试环境变量名是否一一对应,若不对应,则输出对应异常的变量名以及异常原因。
在一种示例性场景中,输出对应异常的测试环境变量名和生产环境变量名,以及异常原因“该测试环境变量和生产环境变量对应异常”。系统根据输出的环境变量名以及异常原因,自动重新配置。或用户根据输出的环境变量名以及异常原因,进行重新配置。
在一个实施例中,为了方便管理,需要把代码中涉及的域名统一放置到环境变量文件中,该方法还可以检测其他文件中是否包含域名地址,如果包含则输出对应的文件名,开发人员根据输出的文件名转移域名配置。
根据本公开实施例提供的环境变量检测方法,采用自动化的手段,全面地检测到每一个环境变量,降低了人为审查引起的遗漏风险,大大提高了软件开发的质量和效率。
为了便于理解本公开实施例中的基于抽象语法树的环境变量检测方法,下面结合附图4进一步进行说明,如图4所示,该方法包括:
S401获取打包流程中的环境变量文件数据包。
S402将环境变量文件解析成源代码。
具体地,打包开始后,环境变量文件进入工作流,将环境变量文件解析成源代码,在一种可能的实现方式中,采用反编译器获取环境变量文件的源代码。该方法在构建阶段对源代码进行解析,基于原有的数据打包流程对环境变量进行检测,不会增加多余的工作,降低工作量。
S403将环境变量源代码解析成抽象语法树,包括对环境变量源代码进行词法分析,按照预设的分解规则将源代码分解成单词符号串,对单词符号串进行语法分析,得到抽象语法树。。
S404遍历抽象语法树中的节点数据,得到测试环境变量和生产环境变量。
具体地,源代码被解析成树状结构后,树上的每一个节点都包含变量名以及变量值,根据变量名以及变量值,对环境变量进行分类。其中,测试环境变量被归并到测试环境变量列表中,生产环境变量被归并到生产环境变量列表中,通过遍历测试环境变量列表和生产环境变量列表,获取到测试环境变量以及生产环境变量。
S405检测测试环境变量和生产环境变量是否符合预设的配置规则,当不符合配置规则时,输出异常的变量名以及异常原因,包括通过正则表达式检测生产环境变量中是否包含测试环境变量,若包含,表明生产环境变量中混入了测试环境变量,确定出现混淆异常,则输出异常的变量名以及混淆异常原因。
还包括检测生产环境变量和测试环境变量的数量及变量名是否一一对应,若不对应,则输出异常的变量名及异常原因。当数量不对应时,表明生产环境的变量可能忘记配置,在一种示例性场景中,输出没有配对的测试环境变量名,以及异常原因“该测试环境变量忘记配置生产环境变量”。系统根据输出的环境变量名以及异常原因,自动配置生产环境变量,或用户根据输出的环境变量名以及异常原因,配置忘记配置的生产环境变量。当数量相等变量名不对应时,表明生产环境变量和测试环境变量对应异常,输出对应异常的测试环境变量名和生产环境变量名,以及异常原因“该测试环境变量和生产环境变量对应异常”。系统根据输出的环境变量名以及异常原因,自动重新配置,或用户根据输出的环境变量名以及异常原因,进行重新配置。
S406根据输出的异常变量名以及异常原因,重新进行变量配置。当变量出现混淆异常时,根据所述异常变量的名称删除混淆的异常变量;当变量出现对应异常时,根据所述异常变量的名称重新配置与其对应的变量。
根据本公开实施例提供的环境变量检测方法,可以对环境变量的源代码进行解析,得到抽象语法树,基于抽象语法树检测生产环境变量和测试环境变量。该方法可以采用自动化的手段,全面地检测到每一个环境变量,降低了人为审查引起的遗漏风险,大大提高了软件开发的质量和效率,而且该方法可以在构建阶段对源代码进行解析,基于原有流程对环境变量进行检测,不会增加多余的工作。
下述为本申请装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
请参见图5,其示出了本发明一个示例性实施例提供的基于抽象语法树的环境变量检测装置的结构示意图。如图5所示,该基于抽象语法树的环境变量检测装置可以集成于上述的计算机设备110中,具体可以包括解析模块501、获取模块502以及检测模块503。
解析模块501,用于将环境变量源代码解析成抽象语法树;
获取模块502,用于遍历抽象语法树中的节点数据,得到测试环境变量以及生产环境变量;
检测模块503,用于检测测试环境变量和生产环境变量是否符合预设的配置规则,当不符合配置规则时,将不符合配置规则的测试环境变量和生产环境变量确定为异常变量并输出异常变量的名称以及异常原因。
在一个实施例中,基于抽象语法树的环境变量检测装置还包括:
源代码解析模块,用于在将环境变量源代码解析成抽象语法树之前,获取打包流程中的环境变量文件数据包,将环境变量文件数据包解析成源代码。
在一个实施例中,解析模块501,用于对环境变量源代码进行词法分析,按照预设的分解规则将源代码分解成单词符号串;对单词符号串进行语法分析,得到抽象语法树。
在一个实施例中,检测模块503,用于检测生产环境变量中是否含有测试环境变量;当生产环境变量中含有测试环境变量时,确定变量出现混淆异常并输出异常的生产环境变量或测试环境变量的名称以及预设的混淆异常原因。
在一个实施例中,检测模块503,用于检测生产环境变量和测试环境变量的数量是否相等;检测生产环境变量和测试环境变量的变量名是否一致;当数量不相等或变量名不一致时,确定变量出现对应异常,输出数量不相等或者变量名不一致的生产环境变量或测试环境变量的名称以及预设的对应异常原因。
在一个实施例中,基于抽象语法树的环境变量检测装置还包括:
变量配置模块,用于根据异常的变量名以及异常原因,重新进行变量配置。
在一个实施例中,变量配置模块具体用于当变量出现混淆异常时,根据异常变量的名称删除混淆的异常变量;当变量出现对应异常时,根据异常变量的名称重新配置与其对应的变量。
根据本公开实施例提供的环境变量检测装置,可以对环境变量的源代码进行解析,得到抽象语法树,基于抽象语法树检测生产环境变量和测试环境变量。该方法可以采用自动化的手段,全面地检测到每一个环境变量,降低了人为审查引起的遗漏风险,大大提高了软件开发的质量和效率,而且该装置可以在构建阶段对源代码进行解析,基于原有流程对环境变量进行检测,不会增加多余的工作。
需要说明的是,上述实施例提供的基于抽象语法树的环境变量检测装置在执行基于抽象语法树的环境变量检测方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的基于抽象语法树的环境变量检测装置与基于抽象语法树的环境变量检测方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
在一个实施例中,提出了一种计算机设备,计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:将环境变量源代码解析成抽象语法树,遍历抽象语法树中的节点数据,得到测试环境变量以及生产环境变量,检测测试环境变量和生产环境变量是否符合预设的配置规则,当不符合配置规则时,将不符合配置规则的测试环境变量和生产环境变量确定为异常变量并输出异常变量的名称以及异常原因。
在一个实施例中,在将环境变量源代码解析成抽象语法树之前,处理器执行计算机可读指令时还执行以下步骤:获取打包流程中的环境变量文件数据包,将环境变量文件数据包解析成源代码。
在一个实施例中,将环境变量源代码解析成抽象语法树包括:对环境变量源代码进行词法分析,按照预设的分解规则将源代码分解成单词符号串;对单词符号串进行语法分析,得到抽象语法树。
在一个实施例中,检测测试环境变量和生产环境变量是否符合预设的配置规则,当不符合配置规则时,将不符合配置规则的测试环境变量和生产环境变量确定为异常变量并输出异常变量的名称以及异常原因,包括:检测生产环境变量中是否含有测试环境变量,当生产环境变量中含有测试环境变量时,确定变量出现混淆异常并输出异常的生产环境变量或测试环境变量的名称以及预设的混淆异常原因。
在一个实施例中,检测测试环境变量和生产环境变量是否符合预设的配置规则,当不符合配置规则时,将不符合配置规则的测试环境变量和生产环境变量确定为异常变量并输出异常变量的名称以及异常原因,包括:检测生产环境变量和测试环境变量的数量是否相等,检测生产环境变量和测试环境变量的变量名是否一致,当数量不相等或变量名不一致时,确定变量出现对应异常,输出数量不相等或者变量名不一致的生产环境变量或测试环境变量的名称以及预设的对应异常原因。
在一个实施例中,输出异常变量的名称以及异常原因之后,还包括:根据异常变量的名称以及异常原因,进行变量配置。
在一个实施例中,根据异常变量的名称以及异常原因,进行变量配置,包括:当变量出现混淆异常时,根据异常变量的名称删除混淆的异常变量,当变量出现对应异常时,根据异常变量的名称重新配置与其对应的变量。
在一个实施例中,提出了一种存储有计算机可读指令的存储介质,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:将环境变量源代码解析成抽象语法树,遍历抽象语法树中的节点数据,得到测试环境变量以及生产环境变量,检测测试环境变量和生产环境变量是否符合预设的配置规则,当不符合配置规则时,将不符合配置规则的测试环境变量和生产环境变量确定为异常变量并输出异常变量的名称以及异常原因。
在一个实施例中,在将环境变量源代码解析成抽象语法树之前,处理器执行计算机可读指令时还执行以下步骤:获取打包流程中的环境变量文件数据包,将环境变量文件数据包解析成源代码。
在一个实施例中,将环境变量源代码解析成抽象语法树包括:对环境变量源代码进行词法分析,按照预设的分解规则将源代码分解成单词符号串,对单词符号串进行语法分析,得到抽象语法树。
在一个实施例中,检测测试环境变量和生产环境变量是否符合预设的配置规则,当不符合配置规则时,将不符合配置规则的测试环境变量和生产环境变量确定为异常变量并输出异常变量的名称以及异常原因,包括:检测生产环境变量中是否含有测试环境变量,当生产环境变量中含有测试环境变量时,确定变量出现混淆异常并输出异常的生产环境变量或测试环境变量的名称以及预设的混淆异常原因。
在一个实施例中,检测测试环境变量和生产环境变量是否符合预设的配置规则,当不符合配置规则时,将不符合配置规则的测试环境变量和生产环境变量确定为异常变量并输出异常变量的名称以及异常原因,包括:检测生产环境变量和测试环境变量的数量是否相等,检测生产环境变量和测试环境变量的变量名是否一致,当数量不相等或变量名不一致时,确定变量出现对应异常,输出数量不相等或者变量名不一致的生产环境变量或测试环境变量的名称以及预设的对应异常原因。
在一个实施例中,输出异常的变量名以及异常原因之后,处理器执行计算机可读指令时还执行以下步骤:根据异常变量的名称以及异常原因,进行变量配置。
在一个实施例中,根据异常变量的名称以及异常原因,进行变量配置,包括:当变量出现混淆异常时,根据异常变量的名称删除混淆的异常变量,当变量出现对应异常时,根据异常变量的名称重新配置与其对应的变量。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于抽象语法树的环境变量检测方法,其特征在于,包括:
将环境变量源代码解析成抽象语法树;
遍历所述抽象语法树中的节点数据,得到测试环境变量以及生产环境变量;
检测所述测试环境变量和所述生产环境变量是否符合预设的配置规则,当不符合所述配置规则时,将不符合所述配置规则的测试环境变量和所述生产环境变量确定为异常变量并输出异常变量的名称以及异常原因。
2.根据权利要求1所述的方法,其特征在于,所述将环境变量源代码解析成抽象语法树之前,还包括:
获取打包流程中的环境变量文件数据包;
将所述环境变量文件数据包解析成源代码。
3.根据权利要求1所述的方法,其特征在于,将环境变量源代码解析成抽象语法树包括:
对所述环境变量源代码进行词法分析,按照预设的分解规则将所述源代码分解成单词符号串;
对所述单词符号串进行语法分析,得到抽象语法树。
4.根据权利要求1所述的方法,其特征在于,检测所述测试环境变量和所述生产环境变量是否符合预设的配置规则,当不符合所述配置规则时,将不符合所述配置规则的测试环境变量和所述生产环境变量确定为异常变量并输出异常变量的名称以及异常原因,包括:
检测所述生产环境变量中是否含有测试环境变量;
当所述生产环境变量中含有测试环境变量时,确定变量出现混淆异常并输出异常的生产环境变量或测试环境变量的名称以及预设的混淆异常原因。
5.根据权利要求1所述的方法,其特征在于,检测所述测试环境变量和所述生产环境变量是否符合预设的配置规则,当不符合所述配置规则时,将不符合所述配置规则的测试环境变量和所述生产环境变量确定为异常变量并输出异常变量的名称以及异常原因,包括:
检测所述生产环境变量和所述测试环境变量的数量是否相等;
检测所述生产环境变量和所述测试环境变量的变量名是否一致;
当数量不相等或变量名不一致时,确定变量出现对应异常,输出数量不相等或者变量名不一致的生产环境变量或测试环境变量的名称以及预设的对应异常原因。
6.根据权利要求1所述的方法,其特征在于,所述输出异常变量的名称以及异常原因之后,还包括:
根据所述异常变量的名称以及异常原因,进行变量配置。
7.根据权利要求6所述的方法,其特征在于,根据所述异常变量的名称以及异常原因,进行变量配置,包括:
当变量出现混淆异常时,根据所述异常变量的名称删除混淆的异常变量;
当变量出现对应异常时,根据所述异常变量的名称重新配置与其对应的变量。
8.一种基于抽象语法树的环境变量检测装置,其特征在于,包括:
解析模块,用于将环境变量源代码解析成抽象语法树;
获取模块,用于遍历所述抽象语法树中的节点数据,得到测试环境变量以及生产环境变量;
检测模块,用于检测所述测试环境变量和所述生产环境变量是否符合预设的配置规则,当不符合所述配置规则时,将不符合所述配置规则的测试环境变量和所述生产环境变量确定为异常变量并输出异常变量的名称以及异常原因。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项权利要求所述的基于抽象语法树的环境变量检测方法的步骤。
10.一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项权利要求所述的基于抽象语法树的环境变量检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011340224.9A CN112433943A (zh) | 2020-11-25 | 2020-11-25 | 基于抽象语法树的环境变量检测方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011340224.9A CN112433943A (zh) | 2020-11-25 | 2020-11-25 | 基于抽象语法树的环境变量检测方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112433943A true CN112433943A (zh) | 2021-03-02 |
Family
ID=74697761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011340224.9A Pending CN112433943A (zh) | 2020-11-25 | 2020-11-25 | 基于抽象语法树的环境变量检测方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112433943A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116911240A (zh) * | 2023-09-12 | 2023-10-20 | 深圳鸿芯微纳技术有限公司 | 电子自动化设计软件的命令配置方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107861863A (zh) * | 2017-08-24 | 2018-03-30 | 平安普惠企业管理有限公司 | 运行环境切换方法、设备及计算机可读存储介质 |
US20180129596A1 (en) * | 2016-11-08 | 2018-05-10 | International Business Machines Corporation | Identifying incorrect variable values in software testing and development environments |
CN109324970A (zh) * | 2018-09-28 | 2019-02-12 | 平安普惠企业管理有限公司 | Sdk运行环境检测方法、装置、计算机设备及存储介质 |
CN111045678A (zh) * | 2019-11-06 | 2020-04-21 | 北京奇艺世纪科技有限公司 | 页面执行动态代码的方法、装置、设备及存储介质 |
CN111506341A (zh) * | 2020-04-21 | 2020-08-07 | 北京同邦卓益科技有限公司 | 一种软件配置信息检测方法、装置及系统 |
-
2020
- 2020-11-25 CN CN202011340224.9A patent/CN112433943A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180129596A1 (en) * | 2016-11-08 | 2018-05-10 | International Business Machines Corporation | Identifying incorrect variable values in software testing and development environments |
CN107861863A (zh) * | 2017-08-24 | 2018-03-30 | 平安普惠企业管理有限公司 | 运行环境切换方法、设备及计算机可读存储介质 |
CN109324970A (zh) * | 2018-09-28 | 2019-02-12 | 平安普惠企业管理有限公司 | Sdk运行环境检测方法、装置、计算机设备及存储介质 |
CN111045678A (zh) * | 2019-11-06 | 2020-04-21 | 北京奇艺世纪科技有限公司 | 页面执行动态代码的方法、装置、设备及存储介质 |
CN111506341A (zh) * | 2020-04-21 | 2020-08-07 | 北京同邦卓益科技有限公司 | 一种软件配置信息检测方法、装置及系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116911240A (zh) * | 2023-09-12 | 2023-10-20 | 深圳鸿芯微纳技术有限公司 | 电子自动化设计软件的命令配置方法、装置、设备及介质 |
CN116911240B (zh) * | 2023-09-12 | 2023-12-19 | 深圳鸿芯微纳技术有限公司 | 电子自动化设计软件的命令配置方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106371997B (zh) | 一种代码检查方法及装置 | |
CN107797823B (zh) | 业务规则管理方法、装置、存储介质和计算机设备 | |
CN114090671A (zh) | 数据导入方法、装置、电子设备及存储介质 | |
CN114579203B (zh) | 脚本文件检查方法、装置、电子设备及存储介质 | |
CN113672628A (zh) | 数据血缘分析方法、终端设备及介质 | |
CN113901083A (zh) | 基于多解析器的异构数据源操作资源解析定位方法和设备 | |
CN112069052A (zh) | 一种异常对象检测方法、装置、设备及存储介质 | |
CN112433943A (zh) | 基于抽象语法树的环境变量检测方法、装置、设备及介质 | |
CN111475405A (zh) | 回归测试的方法、装置、计算机设备及存储介质 | |
CN116775488A (zh) | 异常数据确定方法、装置、设备、介质及产品 | |
CN116361793A (zh) | 代码检测方法、装置、电子设备及存储介质 | |
CN111736848B (zh) | 包冲突定位方法、装置、电子设备及可读存储介质 | |
CN114816364A (zh) | 基于Swagger动态生成范本文件的方法、装置及应用 | |
CN111399843B (zh) | 将sql运行信息映射到sql文件的方法、系统及电子设备 | |
CN113297622A (zh) | 一种日志脱敏方法、系统、电子设备及存储介质 | |
CN114691197A (zh) | 代码分析方法、装置、电子设备和存储介质 | |
CN116661758B (zh) | 一种优化日志框架配置的方法、装置、电子设备及介质 | |
CN112612471B (zh) | 代码处理方法、装置、设备及存储介质 | |
CN103605777A (zh) | 数据库索引处理方法和装置 | |
CN114969131B (zh) | 一种信息的查询方法、装置及设备 | |
CN117909152A (zh) | 一种接口向下兼容检测方法、系统、计算机及存储介质 | |
CN118171250A (zh) | 一种代码指纹溯源识别方法、系统、终端及存储介质 | |
CN114780534A (zh) | 一种信息查询方法、装置、设备及计算机可读存储介质 | |
CN117112542A (zh) | 异常血缘关系的报警方法、装置及存储介质 | |
CN117742768A (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 |