本申请涉及低代码平台领域,尤其涉及一种脚本死循环或类死循环检测方法。
背景技术:
1、随着企业数字化和信息化进程的不断推进,传统的开发模式已经逐渐无法满足快速迭代的开发要求,在降本增效的趋势下,低代码平台应运而生,为了满足低代码平台多变的业务场景,除了封装了通用性较强的组件以外,其他逻辑尤其是特色逻辑的实现,往往需要以脚本方式来开发。
2、但在现有技术当中,开发人员在编写脚本时,无法准确发现脚本中是否存在死循环或类死循环,并在检测死循环或类死循环也往往需要大量的时间成本和人力成本的投入。
技术实现思路
1、本申请实施例的主要目的在于提出一种脚本死循环或类死循环检测方法,通过自动化检测,从而提高检测脚本死循环或类死循环的准确性,同时也降低了时间成本和人力成本。
2、为实现上述目的,本申请实施例的第一方面提出了一种脚本死循环或类死循环检测方法,包括:
3、获取目标脚本文件;
4、根据词法分析法和语法分析法,对目标脚本文件进行解析构建,得到目标词法分析树;
5、根据目标词法分析树,对目标脚本文件进行循环体提取,得到目标循环体;
6、基于循环线程时间监测函数,对目标循环体的每次循环进行死循环检测,得到目标脚本文件的死循环检测结果。
7、进一步,在一些实施例中,基于循环线程时间监测函数,对目标循环体的每次循环进行死循环检测,得到目标脚本文件的死循环检测结果,包括:
8、基于循环线程时间监测函数获取目标循环中断全局变量,根据目标循环中断全局变量,判断是否在目标循环体的每次循环中执行循环线程时间监测函数中的命令语句,当目标循环中断全局变量表征为循环线程时间监测函数继续执行时,执行命令语句,得到死循环检测结果。
9、进一步,在一些实施例中,执行命令语句,得到死循环检测结果,包括:
10、执行命令语句以获取目标循环体的目标处理线程,根据目标处理线程,获取目标脚本文件的目标创建时间和目标当前时间,将目标创建时间与目标当前时间进行差值运算,得到目标脚本文件的目标执行时间,将目标执行时间与预设时间阈值进行比较,得到死循环检测结果。
11、进一步,在一些实施例中,将目标执行时间与预设时间阈值进行比较,得到死循环检测结果,包括:
12、当目标执行时间大于预设时间阈值时,得到检测到目标循环体存在死循环的死循环检测结果,并向外部预警接口抛出警告;
13、或者,
14、当目标执行时间小于或等于预设时间阈值时,得到未检测到目标循环体存在死循环的死循环检测结果,继续在目标循环体的循环迭代中执行命令语句直至循环结束。
15、进一步,在一些实施例中,脚本死循环或类死循环检测方法还包括:
16、当目标循环中断全局变量表征为循环线程时间监测函数中断执行时,抛出警告并终止执行目标脚本文件。
17、进一步,在一些实施例中,根据词法分析法和语法分析法,对目标脚本文件进行解析构建,得到目标词法分析树,包括:
18、根据词法分析法,将目标脚本文件中的各个字符序列进行词法单元转换,得到目标词法单元序列集合;
19、根据语法分析法,将目标词法单元序列集合进行树形语法结构构建,得到目标词法分析树。
20、进一步,在一些实施例中,根据目标词法分析树,对目标脚本文件进行循环体提取,得到目标循环体,包括:
21、根据正则匹配法,对目标词法分析树进行循环体的起始行号匹配,得到目标树形结构循环体索引;
22、根据目标树形结构循环体索引,在目标脚本文件进行目标树形结构循环体提取,得到目标循环体。
23、进一步,在一些实施例中,根据目标树形结构循环体索引,在目标脚本文件进行目标树形结构循环体提取,得到目标循环体,包括:
24、将目标脚本文件进行数据扁平化处理,得到目标提取数据;
25、根据目标树形结构循环体索引,在目标提取数据的对应行号进行数据内容提取,得到目标循环体。
26、为实现上述目的,本申请实施例的第二方面提出了一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面实施例所述的方法。
27、为实现上述目的,本申请实施例的第三方面提出了一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面实施例所述的方法。
28、本申请实施例具有以下有益效果:本申请通过词法分析法和语法分析法,对目标脚本文件构建目标词法分析树,然后根据目标词法分析树中提取目标循环体,最后通过循环线程时间监测函数对目标循环体的每次循环进行死循环检测,从而达到自动化检测脚本文件中的死循环或类死循环的效果,提高了检测脚本死循环或类死循环的准确性,同时也降低了时间成本和人力成本。
1.一种脚本死循环或类死循环检测方法,其特征在于,包括:
2.根据权利要求1所述的脚本死循环或类死循环检测方法,其特征在于,所述基于循环线程时间监测函数,对所述目标循环体的每次循环进行死循环检测,得到目标脚本文件的死循环检测结果,包括:
3.根据权利要求2所述的脚本死循环或类死循环检测方法,其特征在于,所述执行所述命令语句,得到所述死循环检测结果,包括:
4.根据权利要求3所述的脚本死循环或类死循环检测方法,其特征在于,所述将所述目标执行时间与预设时间阈值进行比较,得到所述死循环检测结果,包括:
5.根据权利要求2所述的脚本死循环或类死循环检测方法,其特征在于,所述脚本死循环或类死循环检测方法还包括:
6.根据权利要求1所述的脚本死循环或类死循环检测方法,其特征在于,所述根据词法分析法和语法分析法,对所述目标脚本文件进行解析构建,得到目标词法分析树,包括:
7.根据权利要求1所述的脚本死循环或类死循环检测方法,其特征在于,所述根据所述目标词法分析树,对所述目标脚本文件进行循环体提取,得到目标循环体,包括:
8.根据权利要求1所述的检测脚本死循环或类死循环检测方法,其特征在于,所述根据所述目标树形结构循环体索引,在所述目标脚本文件进行目标树形结构循环体提取,得到所述目标循环体,包括:
9.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1至8任一项所述的脚本死循环或类死循环检测方法。
10.一种计算机可读存储介质,所述存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8任一项所述的脚本死循环或类死循环检测方法。
