脚本代码检测方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:20221598 阅读:21 留言:0更新日期:2019-01-28 20:09
本申请实施例提供一种脚本代码检测方法、装置、计算机设备及存储介质。所述方法包括:获取待检测脚本文件中的脚本代码;对所述脚本代码进行预处理以得到待检测脚本代码;确定所述待检测脚本代码所需检测的违规规则以及所述违规规则所对应的违规分数;若接收到检测指令,根据所需检测的违规规则,对所述待检测脚本代码进行检测以生成检测结果,其中,所述检测结果包括所述待检测脚本代码所对应的总违规分数、每个违规位置以及每个违规位置所对应的违规原因。本申请实施例可智能检测脚本代码并根据检测结果一目了然的知道脚本代码不符合规则或者规范的位置以及原因,提高了检测的效率,并且提高了用户的体验。

【技术实现步骤摘要】
脚本代码检测方法、装置、计算机设备及存储介质
本申请涉及数据处理
,尤其涉及一种脚本代码检测方法、装置、计算机设备及存储介质。
技术介绍
对于开发人员来说,不同开发人员所写代码的习惯、风格都有所差异。在统一规范所有开发人员所写代码的过程中,需要对所有开发人员所写代码进行检查,以查看代码是否符合规范。其中,代码可以为脚本代码等。目前在对代码进行检查时,使用的是人工检查,如此很浪费人力,检查的效率也非常低。
技术实现思路
本申请实施例提供一种脚本代码检测方法、装置、计算机设备及存储介质,可提高脚本代码检测的效率。第一方面,本申请实施例提供了一种脚本代码检测方法,该方法包括:获取待检测脚本文件中的脚本代码;对所述脚本代码进行预处理以得到待检测脚本代码;确定所述待检测脚本代码所需检测的违规规则以及所述违规规则所对应的违规分数;若接收到检测指令,根据所需检测的违规规则,对所述待检测脚本代码进行检测以生成检测结果,其中,所述检测结果包括所述待检测脚本代码所对应的总违规分数、每个违规位置以及每个违规位置所对应的违规原因。第二方面,本申请实施例提供了一种脚本代码检测装置,该装置包括用于执行上述第一方面所述的方法对应的单元。第三方面,本申请实施例提供了一种计算机设备,所述计算机设备包括存储器,以及与所述存储器相连的处理器;所述存储器用于存储计算机程序,所述处理器用于运行所述存储器中存储的计算机程序,以执行上述第一方面所述的方法。第四方面,本申请实施例提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现上述第一方面所述的方法。本申请实施例通过对待检测脚本代码违规规则的检测,生成检测结果,其中,检测结果包括待检测脚本代码所对应的总违规分数、每个违规位置以及每个违规位置所对应的违规原因。通过对脚本代码进行违规规则检测以得到检测结果,根据检测结果一目了然的知道脚本代码不符合规则/规范的位置以及原因,提高了检测的效率,并且提高了用户的体验。附图说明为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本申请实施例提供的脚本代码检测方法的流程示意图;图2是本申请实施例提供的违规规则选择界面的一个示意图;图3是本申请实施例提供的脚本代码检测方法的子流程示意图;图4是本申请实施例提供的脚本代码检测方法的子流程示意图;图5是本申请另一实施例提供的脚本代码检测方法的流程示意图;图6是本申请实施例提供的脚本代码检测装置的示意性框图;图7是本申请实施例提供的脚本检测单元的示意性框图;图8是本申请另一实施例提供的脚本代码检测装置的示意性框图;图9是本申请实施例提供的一种计算机设备的示意性框图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。图1是本申请实施例提供的脚本代码检测方法的流程示意图。如图1所示,该方法包括S101-S104。S101,获取待检测脚本文件中的脚本代码。如当接收到导入指令时,导入待检测脚本文件,获取导入的待检测脚本文件中的脚本代码。具体地,按照字节流来获取待检测脚本文件中的脚本代码。其中,当检测到用户点击“导入”或者“选择”等相关按钮时,产生导入指令。接收导入指令后,根据用户所选择的待检测脚本文件以及待检测文件夹,导入待检测脚本文件。其中,所选择的待检测脚本文件可以包括一个文件,也可以包括多个文件。所选择的待检测文件夹中包括该待检测文件夹中的脚本文件,若所选择的是待检测文件夹,那么默认选择该待检测文件夹中的所有脚本文件。需要注意的是,若待检测脚本文件夹中还有其他非脚本文件;那么会过滤其他非脚本文件。具体地,根据脚本文件的后缀名来选择文件夹中的待检测脚本文件,若文件后缀名不是脚本文件所对应的后缀名,则过滤掉该类文件。其中,待检测脚本文件可以是SQL脚本文件、HQL脚本文件、shell脚本文件等,对应地脚本文件后缀名分别为.sql,.hql,.sh,脚本代码分别为SQL脚本代码、HQL脚本代码、shell脚本代码等。S102,对所述脚本代码进行预处理以得到待检测脚本代码。预处理包括两个方面的内容,第一方面,替换该脚本代码中的变量元素或者参数等不涉及脚本代码规范性的内容,第二方面,将脚本代码进行分段,以方便进一步对脚本代码的检测。在一实施例中,步骤S102包括:替换该脚本代码中的引用变量;将该脚本代码进行分段以形成多个脚本段落,将多个脚本段落作为待检测脚本。其中,待检测脚本文件中的脚本代码中包括了很多的引用变量,如用&db或者{db}来表示一个数据库的引用变量。在待检测脚本代码具体执行时,该引用变量会被一个真实的值替代,如&db引用变量会被一个真实的数据库替代,如student数据库。在本实施例中,引用变量也可以理解为参数。然而在对脚本代码进行检测时,这些引用变量不涉及脚本代码的规范性问题,无需对这些引用变量进行规范性的判断。为了检测的方便,将待检测脚本代码中的引用变量进行替换,如将&db或者{db}替换为db或者abc等。在其他实施例中,替换引用变量,也可以直接去掉引用变量中的符号&或者{}等。将该脚本代码进行分段以形成多个脚本段落,包括:检测该脚本代码中的分段符号,如“;”等;根据分段符号将该脚本代码进行分段以形成多个脚本段落。可以理解为,在脚本代码中,一句完整的脚本代码写完之后,默认会有一个符号将每句完整的脚本代码分开,将该符号称为分段符号。S103,确定所述待检测脚本代码所需检测的违规规则以及所述违规规则所对应的违规分数。可以理解地,预先设置并添加多个违规规则,以及设置每个违规规则所对应的违规分数。可以理解为,脚本代码中可能存在不符合规则/规范的地方,利用违规规则来检测脚本代码中不符合规则/规范的地方。违规规则所对应的违规分数按照不符合规则/规范的所对应重要性程度预先设定。若不符合规则/规范所对应的重要性程度越低,则违规分数越低,若不符合规则/规范所对应的重要性程度越高,则违规分数越高。如可将最高违规分数设置为10等。其中,每个违规规则所对应的违规分数可再次重新设置,可以理解地,对于不同阶段的开发人员来说,同一个违规规则,所对应的重要性程度是不同的,带来的影响也是不同的。具体地,若接收到违规分数设置指令,设置/重置该违规分数。预先设置并添加的违规规则,如包括:select*关键字;join数与on不相等;段落中含有in/exists子查询;一段脚本代码中关联的表数超过5个等。对应地,可以理解为:一段脚本代码中不允许含有select*关键字;若要有joinon,那么join与on的数量要相等;不允许一段脚本代码中含有in/exists子查询;一段脚本代码中关联的表数不能超过5个等。在一实施例中,步骤S103包括:获取预先设置的所有违规规则;判断是否接收本文档来自技高网...

【技术保护点】
1.一种脚本代码检测方法,其特征在于,所述方法包括:获取待检测脚本文件中的脚本代码;对所述脚本代码进行预处理以得到待检测脚本代码;确定所述待检测脚本代码所需检测的违规规则以及所述违规规则所对应的违规分数;若接收到检测指令,根据所需检测的违规规则,对所述待检测脚本代码进行检测以生成检测结果,其中,所述检测结果包括所述待检测脚本代码所对应的总违规分数、每个违规位置以及每个违规位置所对应的违规原因。

【技术特征摘要】
1.一种脚本代码检测方法,其特征在于,所述方法包括:获取待检测脚本文件中的脚本代码;对所述脚本代码进行预处理以得到待检测脚本代码;确定所述待检测脚本代码所需检测的违规规则以及所述违规规则所对应的违规分数;若接收到检测指令,根据所需检测的违规规则,对所述待检测脚本代码进行检测以生成检测结果,其中,所述检测结果包括所述待检测脚本代码所对应的总违规分数、每个违规位置以及每个违规位置所对应的违规原因。2.根据权利要求1所述的方法,其特征在于,所述若接收到检测指令,根据所需检测的违规规则,对所述待检测脚本代码进行检测以生成检测结果,包括:若接收到检测指令,获取所述待检测脚本代码中的脚本段落;对于每一个脚本段落所对应的脚本代码,根据所需检测的违规规则进行检测,以完成对所述待检测脚本代码的检测,从而生成检测结果。3.根据权利要求2所述的方法,其特征在于,每一个脚本段落包括脚本段落所对应的脚本代码,以及脚本段落所在的脚本段落数;所述对于每一个脚本段落所对应的脚本代码,根据所需检测的违规规则进行检测,以完成对所述待检测脚本代码的检测,包括:根据所需检测的违规规则,获取每个所需检测的违规规则的检测方式,所述检测方式包括正则匹配和语法匹配;对于每一个脚本段落所对应的脚本代码,从所需检测的违规规则中获取其中一个违规规则作为当前违规规则;判断当前违规规则所对应的检测方式;若当前违规规则所对应的检测方式是正则匹配,则通过正则匹配的方式对所述脚本段落所对应的脚本代码进行检测,以确定所述脚本段落所对应的脚本代码是否与当前违规规则匹配;若当前违规规则所对应的检测方式是语法匹配,则通过调用预设语法包解析所述脚本段落所对应的脚本代码,对解析后的脚本代码进行检测,以确定所述脚本段落所对应的脚本代码是否与当前违规规则匹配;若所述脚本段落所对应的脚本代码与当前违规规则匹配,则确定所述脚本段落所对应的脚本代码符合当前违规规则,并获取所述脚本段落所对应的脚本段落数;若所述脚本段落所对应的脚本代码与当前违规规则不匹配,则确定所述脚本段落所对应的脚本代码不符合当前违规规则;判断所需检测的违规规则是否全部获取;若所需检测的违规规则未全部获取,获取下一个未获取的违规规则作为当前违规规则;接着触发判断当前违...

【专利技术属性】
技术研发人员:曾德志胡阳
申请(专利权)人:中国平安财产保险股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1