CN109634844B - Js代码测试方法、装置及电子设备 - Google Patents
Js代码测试方法、装置及电子设备 Download PDFInfo
- Publication number
- CN109634844B CN109634844B CN201811317347.3A CN201811317347A CN109634844B CN 109634844 B CN109634844 B CN 109634844B CN 201811317347 A CN201811317347 A CN 201811317347A CN 109634844 B CN109634844 B CN 109634844B
- Authority
- CN
- China
- Prior art keywords
- function
- code
- grammar
- compatibility
- tested
- 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.)
- Active
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 337
- 230000006870 function Effects 0.000 claims description 813
- 238000010606 normalization Methods 0.000 claims description 128
- 230000001788 irregular Effects 0.000 claims description 71
- 238000010998 test method Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 8
- 238000003860 storage Methods 0.000 claims description 6
- 238000000034 method Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 5
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000003749 cleanliness Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000005096 rolling process Methods 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/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及互联网技术领域,具体而言,涉及一种JS代码测试方法、装置及电子设备。所述JS代码测试方法,包括:获取待测试JS代码,以及与所述待测试JS代码对应的第一配置文件;基于所述第一配置文件同时测试所述待测试JS代码相对于预设浏览器集合的兼容性,获得所述待测试JS代码的代码兼容性测试结果。在需要对待测试JS代码进行测试时,只需基于第一配置文件就可以直接同时测试所述待测试JS代码相对于预设浏览器集合的兼容性,从而获得待测试JS代码的代码兼容性测试结果,因此,相较于现有技术中,通过人工测试的方式分别测试每个浏览器对待测试JS代码的兼容性的方案而言,测试效率有了较大程度的提高。
Description
技术领域
本发明涉及互联网技术领域,具体而言,涉及一种JS代码测试方法、装置及电子设备。
背景技术
JS即Javascript,是为了适应动态网页制作的需要而诞生的一种编程语言,如今越来越广泛地应用于Intemet网页的制作上,因此,JS代码的开发量和测试量也在逐渐增大。但现有技术中,JS代码的测试效率较低,例如,在测试预设浏览器集合对待测试JS代码的兼容性时,只能通过人工测试的方式分别测试每个预设浏览器对待测试JS代码的兼容性,因此,测试效率极低。
发明内容
有鉴于此,本发明实施例的目的在于提供一种JS代码测试方法、装置及电子设备,以有效改善上述问题。
本发明实施例中提供的JS代码测试方法,包括:
获取待测试JS代码,以及与所述待测试JS代码对应的第一配置文件;
基于所述第一配置文件同时测试所述待测试JS代码相对于预设浏览器集合的兼容性,获得所述待测试JS代码的代码兼容性测试结果。
进一步地,所述待测试JS代码中包括至少一个目标JS函数,所述第一配置文件中包括至少一条用于表征JS函数相对于所述预设浏览器集合不兼容的函数兼容性信息;
所述基于所述第一配置文件同时测试所述待测试JS代码相对于预设浏览器集合的兼容性,获得所述待测试JS代码的代码兼容性测试结果,包括:
基于至少一条所述函数兼容性信息,分别确定所述待测试JS代码中的各个目标JS函数相对于所述预设浏览器集合的函数兼容性测试结果;
根据所述待测试JS代码中的所有目标JS函数的函数兼容性测试结果,确定所述待测试JS代码的代码兼容性测试结果;
其中,若所述待测试JS代码中的所有目标JS函数均相对于所述预设浏览器集合兼容,则将所述待测试JS代码的代码兼容性测试结果确定为兼容,否则,将所述待测试JS代码的代码兼容性测试结果确定为不兼容。
进一步地,所述基于至少一条所述函数兼容性信息,分别确定所述待测试JS代码中的各个目标JS函数相对于所述预设浏览器集合的函数兼容性测试结果,包括:
针对所述待测试JS代码中的每个目标JS函数,分别判断所述第一配置文件中是否存在与所述目标JS函数对应的函数兼容性信息;
若所述第一配置文件中存在与所述目标JS函数对应的函数兼容性信息,则根据所述函数兼容性信息确定所述目标JS函数的所述函数兼容性测试结果,否则,将所述目标JS函数的函数兼容性测试结果确定为兼容。
进一步地,所述函数兼容性信息包括函数标签和与所述函数标签对应的函数内容,每个所述函数标签对应一JS函数,所述函数内容用于表征与所述函数标签对应的JS函数相对于所述预设浏览器集合中的浏览器的兼容性;
所述根据所述函数兼容性信息确定所述目标JS函数的所述函数兼容性测试结果,包括:
基于预设信息关联情况,确定所述函数兼容性信息的关联类型,所述关联类型包括第一关联类型和第二关联类型,所述第一关联类型用于表征在所述第一配置文件中不存在与所述函数兼容信息功能关联的函数兼容性信息,所述第二关联类型用于表征在所述第一配置文件中存在与所述函数兼容信息功能关联的函数兼容性信息;
若所述函数兼容信息的关联类型为所述第一关联类型,则根据所述函数兼容信息,确定所述目标JS函数的所述函数兼容性测试结果;
若所述函数兼容信息的关联类型为所述第二关联类型,则根据所述函数兼容信息的函数内容以及与所述函数兼容信息功能关联的函数兼容性信息的函数内容,确定所述目标JS函数的所述函数兼容性测试结果。
进一步地,所述根据所述函数兼容信息的函数内容以及与所述函数兼容信息功能关联的函数兼容性信息的函数内容,确定所述目标JS函数的所述函数兼容性测试结果,包括:
根据所述函数兼容信息的函数内容,获得对与所述函数兼容信息对应的JS函数兼容的浏览器,作为第一浏览器;
将与所述函数兼容信息功能关联的函数兼容性信息,作为关联函数兼容性信息,并根据所述关联函数兼容性信息的函数内容,获得对与所述关联函数兼容信息对应的JS函数兼容的浏览器,作为第二浏览器;
判断所述第一浏览器与所述第二浏览器的集合是否与所述预设浏览器集合相同;
若所述第一浏览器与所述第二浏览器的集合与所述预设浏览器集合相同,则确定所述目标JS函数的所述函数兼容性测试结果为兼容,否则,确定所述目标JS函数的所述函数兼容性测试结果为不兼容。
进一步地,当所述目标JS函数的所述函数兼容性测试结果为不兼容时,所述根据所述函数兼容性信息确定所述目标JS函数的所述函数兼容性测试结果,还包括:
基于预设浏览器兼容性情况,确定所述函数兼容性信息的不兼容类型,所述不兼容类型包括第一不兼容类型和第二不兼容类型,所述第一不兼容类型用于表征所述函数兼容性信息的不兼容情况为完全不兼容,所述第二不兼容类型用于表征所述函数兼容性信息的不兼容情况为不完全兼容;
若所述函数兼容性信息的不兼容类型为所述第一不兼容类型,则将所述目标JS函数的函数兼容性结果确定为完全不兼容;
若所述函数兼容性信息的不兼容类型为所述第二不兼容类型,则所述目标JS函数的函数兼容性结果确定为不完全兼容。
进一步地,所述JS代码测试方法,还包括:
获取所述待测试JS代码对应的第二配置文件;
基于所述第二配置文件测试所述待测试JS代码的语法规范性,获得所述待测试JS代码的代码语法规范性测试结果。
进一步地,所述第二配置文件中包括至少一条用于表征待测试JS代码具有的语法不规范问题的语法规范性信息;
所述基于所述第二配置文件测试所述待测试JS代码的语法规范性,获得所述待测试JS代码的代码语法规范性测试结果,包括:
针对每条所述语法规范性信息,判断所述待测试JS代码中是否存在与所述语法规范性信息对应的语法设置;
若所述待测试JS代码中存在与所述语法规范性信息对应的语法设置,则将所述语法设置作为不规范语法;
若所述JS代码中存在所述不规范语法,则确定所述待测试JS代码的代码语法规范性测试结果为不规范,否则,确定所述待测试JS代码的代码语法规范性测试结果为规范。
进一步地,若所述待测试JS代码中存在与所述语法规范性信息对应的语法设置,则将所述语法设置作为不规范语法,包括:
基于预设语法规范性情况,确定所述语法规范性信息的不规范类型,所述不规范类型包括第一不规范类型和第二不规范类型,所述第一不规范类型用于表征所述语法规范性信息的语法不规范问题为完全不规范,所述第二不规范类型用于表征所述语法规范性信息的不规范问题为不完全规范;
若所述语法规范性信息的不规范类型为所述第一不规范类型,则将所述语法设置作为完全不规范语法;
若所述语法规范性信息的不规范类型为所述第二不规范类型,则将所述语法设置作为完全不完全规范语法。
本发明实施例提供的JS代码测试装置,包括:
第一配置文件获取模块,用于获取待测试JS代码,以及与所述待测试JS代码对应的第一配置文件;
第一测试结果获取模块,用于基于所述第一配置文件同时测试所述待测试JS代码相对于预设浏览器集合的兼容性,获得所述待测试JS代码的代码兼容性测试结果。
进一步地所述待测试JS代码中包括至少一个目标JS函数,所述第一配置文件中包括至少一条用于表征JS函数相对于所述预设浏览器集合不兼容的函数兼容性信息;
所述第一测试结果获取模块,具体用于:
基于至少一条所述函数兼容性信息,分别确定所述待测试JS代码中的各个目标JS函数相对于所述预设浏览器集合的函数兼容性测试结果;
根据所述待测试JS代码中的所有目标JS函数的函数兼容性测试结果,确定所述待测试JS代码的代码兼容性测试结果;
其中,若所述待测试JS代码中的所有目标JS函数均相对于所述预设浏览器集合兼容,则将所述待测试JS代码的代码兼容性测试结果确定为兼容,否则,将所述待测试JS代码的代码兼容性测试结果确定为不兼容。
进一步地所述第一测试结果获取模块,又具体用于:
针对所述待测试JS代码中的每个目标JS函数,分别判断所述第一配置文件中是否存在与所述目标JS函数对应的函数兼容性信息;
若所述第一配置文件中存在与所述目标JS函数对应的函数兼容性信息,则根据所述函数兼容性信息确定所述目标JS函数的所述函数兼容性测试结果,否则,将所述目标JS函数的函数兼容性测试结果确定为兼容。
进一步地所述函数兼容性信息包括函数标签和与所述函数标签对应的函数内容,每个所述函数标签对应一JS函数,所述函数内容用于表征与所述函数标签对应的JS函数相对于所述预设浏览器集合中的浏览器的兼容性;
所述第一测试结果获取模块,又具体用于:
基于预设信息关联情况,确定所述函数兼容性信息的关联类型,所述关联类型包括第一关联类型和第二关联类型,所述第一关联类型用于表征在所述第一配置文件中不存在与所述函数兼容信息功能关联的函数兼容性信息,所述第二关联类型用于表征在所述第一配置文件中存在与所述函数兼容信息功能关联的函数兼容性信息;
若所述函数兼容信息的关联类型为所述第一关联类型,则根据所述函数兼容信息,确定所述目标JS函数的所述函数兼容性测试结果;
若所述函数兼容信息的关联类型为所述第二关联类型,则根据所述函数兼容信息的函数内容以及与所述函数兼容信息功能关联的函数兼容性信息的函数内容,确定所述目标JS函数的所述函数兼容性测试结果。
进一步地所述第一测试结果获取模块,又具体用于:
根据所述函数兼容信息的函数内容,获得对与所述函数兼容信息对应的JS函数兼容的浏览器,作为第一浏览器;
将与所述函数兼容信息功能关联的函数兼容性信息,作为关联函数兼容性信息,并根据所述关联函数兼容性信息的函数内容,获得对与所述关联函数兼容信息对应的JS函数兼容的浏览器,作为第二浏览器;
判断所述第一浏览器与所述第二浏览器的集合是否与所述预设浏览器集合相同;
若所述第一浏览器与所述第二浏览器的集合与所述预设浏览器集合相同,则确定所述目标JS函数的所述函数兼容性测试结果为兼容,否则,确定所述目标JS函数的所述函数兼容性测试结果为不兼容。
进一步地当所述目标JS函数的所述函数兼容性测试结果为不兼容时,所述第一测试结果获取模块,还具体用于:
基于预设浏览器兼容性情况,确定所述函数兼容性信息的不兼容类型,所述不兼容类型包括第一不兼容类型和第二不兼容类型,所述第一不兼容类型用于表征所述函数兼容性信息的不兼容情况为完全不兼容,所述第二不兼容类型用于表征所述函数兼容性信息的不兼容情况为不完全兼容;
若所述函数兼容性信息的不兼容类型为所述第一不兼容类型,则将所述目标JS函数的函数兼容性结果确定为完全不兼容;
若所述函数兼容性信息的不兼容类型为所述第二不兼容类型,则所述目标JS函数的函数兼容性结果确定为不完全兼容。
进一步地所述JS代码测试装置,还包括:
第二配置文件获取模块,用于获取所述待测试JS代码对应的第二配置文件;
第二测试结果获取模块,用于基于所述第二配置文件测试所述待测试JS代码的语法规范性,获得所述待测试JS代码的代码语法规范性测试结果。
进一步地所述第二配置文件中包括至少一条用于表征待测试JS代码具有的语法不规范问题的语法规范性信息;
所述第二测试结果获取模块,具体用于:
针对每条所述语法规范性信息,判断所述待测试JS代码中是否存在与所述语法规范性信息对应的语法设置;
若所述待测试JS代码中存在与所述语法规范性信息对应的语法设置,则将所述语法设置作为不规范语法;
若所述JS代码中存在所述不规范语法,则确定所述待测试JS代码的代码语法规范性测试结果为不规范,否则,确定所述待测试JS代码的代码语法规范性测试结果为规范。
进一步地所述第二测试结果获取模块,又具体用于:基于预设语法规范性情况,确定所述语法规范性信息的不规范类型,所述不规范类型包括第一不规范类型和第二不规范类型,所述第一不规范类型用于表征所述语法规范性信息的语法不规范问题为完全不规范,所述第二不规范类型用于表征所述语法规范性信息的不规范问题为不完全规范;
若所述语法规范性信息的不规范类型为所述第一不规范类型,则将所述语法设置作为完全不规范语法;
若所述语法规范性信息的不规范类型为所述第二不规范类型,则将所述语法设置作为完全不完全规范语法。
本发明实施例提供的电子设备,包括处理器、存储器和上述JS代码测试装置,所述JS代码测试装置包括一个或多个存储于所述存储器并由所述处理器执行的软件功能模块。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时,可以实现上述JS代码测试方法。
本发明实施例提供的JS代码测试方法、装置及电子设备能够获取待测试JS代码,以及与所述待测试JS代码对应的第一配置文件,并基于所述第一配置文件同时测试所述待测试JS代码相对于预设浏览器集合的兼容性,获得所述待测试JS代码的代码兼容性测试结果。如此,在需要对待测试JS代码进行测试时,只需基于第一配置文件就可以直接同时测试所述待测试JS代码相对于预设浏览器集合的兼容性,从而获得待测试JS代码的代码兼容性测试结果,因此,相较于现有技术中,通过人工测试的方式分别测试每个浏览器对待测试JS代码的兼容性的方案而言,测试效率有了较大程度的提高。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的电子设备的示意性结构框图。
图2为本发明实施例提供的一种JS代码测试方法的流程示意图。
图3为本发明实施例提供的一种JS代码测试方法的另一部分流程示意图。
图4为本发明实施例提供的一种JS代码测试装置的示意性结构框图。
图5为本发明实施例提供的一种JS代码测试装置的另一部分示意性结构框图。
图标:100-电子设备;110-JS代码测试装置;111-第一配置文件获取模块;112-第一测试结果获取模块;113-第二配置文件获取模块;114-第二测试结果获取模块;120-处理器;130-存储器。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
请参阅图1,为本发明实施例提供的一种应用JS代码测试方法及装置的电子设备100的示意性结构框图。进一步地,本发明实施例中,该电子设备100包括代码测试装置110、处理器120和存储器130。
处理器120和存储器130之间直接或间接地电性连接,以实现数据的传输或交互,例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。JS代码测试装置110包括至少一个可以软件或固件(Firmware)的形式存储在存储器130中或固化在电子设备100的操作系统(Operating System,OS)中的软件模块。处理器120用于执行存储器130中存储的可执行模块,例如,JS代码测试装置110所包括的软件功能模块及计算机程序等。处理器120可以在接收到执行指令后,执行计算机程序。
其中,处理器120可以是一种集成电路芯片,具有信号处理能力。处理器120也可以是通用处理器,例如,可以是数字信号处理器(DSP)、专用集成电路(ASIC)、分立门或晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。此外,通用处理器可以是微处理器或者任何常规处理器等。
存储器130可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦可编程序只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦编程只读存储器Electric Erasable Programmable Read-Only Memory,EEPROM)等。存储器130用于存储程序,处理器120在接收到执行指令后,执行该程序。
应当理解,图1所示的结构仅为示意,本发明实施例提供的电子设备100还可以具有比图1更少或更多的组件,或是具有与图1所示不同的配置。此外,图1所示的各组件可以通过软件、硬件或其组合实现。
请参阅图2,图2为本发明实施例提供的JS代码测试方法的流程示意图,该JS代码测试方法应用于图1所示的电子设备,下面结合图2对该JS代码测试方法的具体流程及步骤进行详细阐述。所应说明的是,本发明提供的方法不以图2及以下所示的顺序为限制,以下结合图2对JS代码测试方法的具体流程及步骤进行详细阐述。
步骤S100,获取待测试JS代码,以及与待测试JS代码对应的第一配置文件。
第一配置文件为预先创建,用于测试待测试JS代码相对于预设浏览器集合的兼容性。其中,预设浏览器集合中包括多个不同类型的浏览器,例如,IE浏览器、谷歌浏览器、火狐浏览器、360安全浏览器、搜狗浏览器、世界之窗浏览器等浏览器中的多个。本发明实施例中,将以预设浏览器集合中包括IE浏览器、谷歌浏览器、火狐浏览器为例,对JS代码测试方法的具体流程及步骤进行详细阐述。
步骤S200,基于第一配置文件同时测试待测试JS代码相对于预设浏览器集合的兼容性,获得待测试JS代码的代码兼容性测试结果。
待测试JS代码中包括至少一个目标JS函数。其中,目标JS函数为由事件驱动,或当其被调用时执行用于实现对应功能的可重复使用代码块。例如,函数currentStyle()、函数getComputedStyle()、函数const()等JS函数。
本发明实施例中,第一配置文件中可以包括至少一条用于表征JS函数相对于预设浏览器集合不兼容的函数兼容性信息。需要说明的是,本发明实施例中,针对某JS函数,其在预设浏览器集合中存在不兼容的浏览器,则相对于预设浏览器集合不兼容。基于此,基于第一配置文件同时测试待测试JS代码相对于预设浏览器集合的兼容性,获得待测试JS代码的代码兼容性测试结果,可以包括以下步骤。
基于至少一条函数兼容性信息,分别确定待测试JS代码中的各个目标JS函数相对于预设浏览器集合的函数兼容性测试结果,并根据待测试JS代码中的所有目标JS函数的函数兼容性测试结果,确定待测试JS代码的代码兼容性测试结果。其中,若待测试JS代码中的所有目标JS函数均相对于预设浏览器集合兼容,则将待测试JS代码的代码兼容性测试结果确定为兼容,否则,将待测试JS代码的代码兼容性测试结果确定为不兼容。
进一步地,本发明实施例中,基于至少一条函数兼容性信息,分别确定待测试JS代码中的各个目标JS函数相对于预设浏览器集合的函数兼容性测试结果,可以包括以下步骤。
针对待测试JS代码中的每个目标JS函数,分别判断第一配置文件中是否存在与目标JS函数对应的函数兼容性信息。由于,本发明实施例中,函数兼容性信息是用于表征JS函数相对于预设浏览器集合不兼容的,因此,若第一配置文件中存在与目标JS函数对应的函数兼容性信息,则根据函数兼容性信息确定目标JS函数的函数兼容性测试结果,否则,将目标JS函数的函数兼容性测试结果确定为兼容。
可选地,本发明实施例中,函数兼容性信息包括函数标签和与函数标签对应的函数内容,每个函数标签对应一JS函数,函数内容用于表征与函数标签对应的JS函数相对于预设浏览器集合中的浏览器的兼容性。
例如,函数兼容性信息可以为″currentStyle″:″true:IE″,其中,″currentStyle″为函数标签,其对应的JS函数为currentStyle(),JS函数currentStyle()的对应功能为获取html页面元素的非行间样式,″true:IE″为函数内容,用于表征JS函数currentStyle()相对于预设浏览器集合中的IE浏览器兼容,也即,相对于预设浏览器集合中的谷歌浏览器和火狐浏览器不兼容,因此,可以理解的是,该函数兼容性信息也可以写作“″currentStyle″:″false:Chrome,Firefox″”。本发明实施例中,为保证代码的简洁性,优选写作“″currentStyle″:″true:IE″”。再例如,函数兼容性信息可以为″getComputedStyle″:″false:IE″,其中,″getComputedStyle″为函数标签,其对应的JS函数为getComputedStyle(),JS函数getComputedStyle()的对应功能为获取html页面元素的非行间样式,″false:IE″为函数内容,用于表征JS函数getComputedStyle()相对于预设浏览器集合中的IE浏览器不兼容,也即,相对于预设浏览器集合中的谷歌浏览器和火狐浏览器兼容,因此,可以理解的是,该函数兼容性信息也可以写作″getComputedStyle:″true:Chrome,Firefox″。本发明实施例中,为保证代码的简洁性,优选写作″getComputedStyle″:″false:IE″。又例如,函数兼容性信息可以为″setAttribute″:″false:IE″,其中,″setAttribute″为函数标签,其对应的JS函数为setAttribute(),JS函数setAttribute()的对应功能为设置对象属性,″false:IE″为函数内容,用于表征JS函数setAttribute()相对于预设浏览器集合中的IE浏览器不兼容,也即,相对于预设浏览器集合中的谷歌浏览器和火狐浏览器兼容,因此,可以理解的是,该函数兼容性信息也可以写作″const″:″false:Chrome,Firefox″。本发明实施例中,为保证代码的简洁性,优选写作″setAttribute″:″true:Firefox″。
由上可知,待测试JS代码中可能会出现同时包括两种不同的JS函数,而这两种JS函数的对应功能相同,但兼容的浏览器不同的情况。例如,JS函数currentStyle()和JS函数getComputedStyle()对应功能相同,但JS函数currentStyle()兼容IE浏览器,JS函数getComputedStyle()兼容谷歌浏览器和火狐浏览器。针对这种情况,本发明实施例中,第一配置文件还设置了预设信息关联情况,用于确定函数兼容性信息的关联类型,关联类型包括第一关联类型和第二关联类型。第一关联类型用于表征在第一配置文件中不存在与函数兼容信息功能关联的函数兼容性信息,例如,函数兼容性信息″setAttribute″:″false:IE″。第二关联类型用于表征在第一配置文件中存在与函数兼容信息功能关联的函数兼容性信息,例如,函数兼容性信息″currentStyle″:″true:IE″和函数兼容性信息″getComputedStyle″:″false:IE″。在实际实施时,为保证代码的整洁性,可以将关联类型为第二关联类型的函数兼容性信息与其功能关联的函数兼容性信息写作一条整体信息,例如,将函数兼容性信息″currentStyle″:″true:IE″和函数兼容性信息″getComputedStyle″:″false:IE″写作″currentStyle″:″true:IE″;″getComputedStyle″:″true:Chrome,Firefox″。
基于以上描述,本发明实施例中,根据函数兼容性信息确定目标JS函数的函数兼容性测试结果,可以包括以下步骤。
确定函数兼容信息的关联类型。若函数兼容信息的关联类型为第一关联类型,则根据函数兼容信息,确定目标JS函数的函数兼容性测试结果,本发明实施例中,也即,确定目标JS函数的函数兼容性测试结果为不兼容。若函数兼容信息的关联类型为第二关联类型,则根据函数兼容信息的函数内容以及与函数兼容信息功能关联的函数兼容性信息的函数内容,确定目标JS函数的函数兼容性测试结果。
在实际实施时,首先,可以根据函数兼容信息的函数内容,获得对与函数兼容信息对应的JS函数兼容的浏览器,作为第一浏览器。再将与函数兼容信息功能关联的函数兼容性信息,作为关联函数兼容性信息,并根据关联函数兼容性信息的函数内容,获得对与关联函数兼容信息对应的JS函数兼容的浏览器,作为第二浏览器。最后,判断第一浏览器与第二浏览器的集合是否与预设浏览器集合相同。若第一浏览器与第二浏览器的集合与预设浏览器集合相同,则确定目标JS函数的函数兼容性测试结果为兼容,否则,确定目标JS函数的函数兼容性测试结果为不兼容。
例如,当待测试JS代码中同时包括JS函数currentStyle()和JS函数getComputedStyle()时,可以根据第一配置文件中的函数兼容信息″currentStyle″:″true:IE″,获得对JS函数currentStyle()兼容的浏览器,也即IE浏览器,作为第一浏览器,同时,将与函数兼容信息″currentStyle″:″true:IE″关联的函数兼容性信息″getComputedStyle″:″false:IE″作为关联函数兼容信息,并获得对JS函数getComputedStyle()兼容的浏览器,也即谷歌浏览器和火狐浏览器,作为第二浏览器。第一浏览器和第二浏览器的集合与预设浏览器相同,则确定JS函数currentStyle()的函数兼容性测试结果为兼容。经同样的判断方式,也可以确定JS函数getComputedStyle()的函数兼容性测试结果为兼容。
为进一步判断目标JS函数相对于预设浏览器集合的不兼容程度,本发明实施例中,第一配置文件还设置了预设浏览器兼容性情况,用于确定函数兼容性信息的不兼容类型,不兼容类型包括第一不兼容类型和第二不兼容类型。第一不兼容类型用于表征函数兼容性信息的不兼容情况为完全不兼容,第二不兼容类型用于表征函数兼容性信息的不兼容情况为不完全兼容。针对某条函数兼容性信息,若其不兼容类型为第一不兼容类型,则其表征的JS函数在预设浏览器集合中不兼容的浏览器上无法实现对应功能,若其不兼容类型为第二不兼容类型,则其表征的JS函数在预设浏览器集合中不兼容的浏览器上可以实现对应功能,但实现效果无法满足预设要求。
例如,第一配置文件中具有函数兼容性信息″setAttribute″:″false:IE″和函数兼容性信息″str″:″false:IE6,IE7″,而JS函数setAttribute()的对应功能在IE浏览器上无法实现,则将函数兼容性信息″setAttribute″:″false:IE″的不兼容类型判定为第一不兼容类型,JS函数str()的对应功能在IE6和IE7上可以实现对应功能,但实现效果无法满足预设要求,则将函数兼容性信息″str″:″false:IE6,IE7″的不兼容类型判定为第二不兼容类型。在实际实施时,为保证代码的整洁性,可以将不兼容类型为第一不兼容类型的函数兼容性信息写入一个程序段,再将不兼容类型为第二不兼容类型的函数兼容性信息写入另一个程序段,例如,将不兼容类型为第一不兼容类型的函数兼容性信息写入程序段″block″{...},将不兼容类型为第二不兼容类型的函数兼容性信息写入程序段″warning″{...}
基于以上描述,本发明实施例中,当目标JS函数的函数兼容性测试结果为不兼容时,根据函数兼容性信息确定目标JS函数的函数兼容性测试结果,还可以包括以下步骤。
判断函数兼容性信息的不兼容类型,若函数兼容性信息的不兼容类型为第一不兼容类型,则将目标JS函数的函数兼容性结果确定为完全不兼容,若函数兼容性信息的不兼容类型为第二不兼容类型,则目标JS函数的函数兼容性结果确定为不完全兼容。
本发明实施例中,在获得待测试JS代码的代码兼容性测试结果之后,还可以根据代码兼容性测试结果生成代码兼容性测试报告。代码兼容性测试报告中可以包括各个函数兼容性测试结果为完全不兼容的目标函数,以及各自对应的预设浏览器集合中完全不兼容的浏览器,同样,代码兼容性测试报告中还可以包括各个函数兼容性测试结果为不完全兼容的目标函数,以及各自对应的预设浏览器集合中不完全兼容的浏览器。
以下将举例对基于第一配置文件同时测试待测试JS代码相对于预设浏览器集合的兼容性,获得待测试JS代码的代码兼容性测试结果的整体过程进行进行说明。
例如,第一配置文件为:
待测试代码包括的目标函数为JS函数cursor:hand()、JS函数currentStyle()、JS函数getComputedStyle()、JS函数″setAttribute″()和JS函数str()。
针对JS函数cursor:hand(),第一配置文件中不存在与JS函数cursor:hand()对应的函数兼容性信息,则JS函数cursor:hand()的函数兼容性测试结果确定为兼容。
针对JS函数currentStyle(),第一配置文件中存在与JS函数currentStyle()对应的函数兼容性信息″currentStyle″:″true:IE″,函数兼容性信息″currentStyle″:″true:IE″的关联类型为第二关联类型,且函数兼容性信息″currentStyle″:″true:IE″的关联函数兼容性信息为″getComputedStyle″:″false:IE″。进一步地,与对JS函数currentStyle()兼容的浏览器为IE浏览器,对JS函数getComputedStyle()兼容的浏览器为谷歌浏览器和火狐浏览器,IE浏览器、谷歌浏览器和火狐浏览器的集合与预设浏览器集合相同,所以JS函数currentStyle()的函数兼容性测试结果确定为兼容。经同样的判断方式,获得JS函数getComputedStyle()的函数兼容性测试结果也为兼容。可以理解的是,若待测试JS代码中存在JS函数currentStyle(),而不存在JS函数getComputedStyle(),则JS函数currentStyle()的函数兼容性测试结果确定为不兼容,同样,若待测试JS代码中存在JS函数getComputedStyle(),而不存在JS函数currentStyle(),则JS函数getComputedStyle()的函数兼容性测试结果确定为不兼容。
针对JS函数″setAttribute″(),第一配置文件中存在与JS函数″setAttribute″()对应的函数兼容性信息″setAttribute″:″false:IE″,且JS函数″setAttribute″()的关联类型为第一关联类型,则JS函数″setAttribute″()的函数兼容性测试结果确定为不兼容,进一步地,由于函数兼容性信息″setAttribute″:″false:IE″的不兼容类型为第一不兼容类型,则可以进一步确定JS函数″setAttribute″()的函数兼容性测试结果确定为完全不兼容。
针对JS函数str(),第一配置文件中存在与JS函数str()对应的函数兼容性信息″str″:″false:IE6,IE7″,且JS函数str()的关联类型为第一关联类型,则JS函数str()的函数兼容性测试结果确定为不兼容,进一步地,由于函数兼容性信息″str″:″false:IE6,IE7″的不兼容类型为第二不兼容类型,则可以进一步确定JS函数str()的函数兼容性测试结果确定为不完全兼容。
此后,确定待测试JS代码的代码兼容性测试结果为不兼容,且可以生成包括JS函数″setAttribute″完全不兼容IE浏览器,JS函数str()不完全兼容IE6浏览器和IE7浏览器的代码兼容性测试报告。
可选地,本发明实施例中,JS代码测试方法,还包括:
步骤S300,获取待测试JS代码对应的第二配置文件。
第二配置文件为预先创建,用于测试待测试JS代码的语法规范性。
步骤S400,基于第二配置文件测试待测试JS代码的语法规范性,获得待测试JS代码的代码语法规范性测试结果。
本发明实施例中,第二配置文件中可以包括至少一条用于表征JS函数具有的语法不规范问题的语法规范性信息。基于此,基于第二配置文件测试待测试JS代码的语法规范性,获得待测试JS代码的代码语法规范性测试结果,可以包括以下步骤。
针对每条语法规范性信息,判断待测试JS代码中是否存在与语法规范性信息对应的语法设置。若待测试JS代码中存在与语法规范性信息对应的语法设置,则将语法设置作为不规范语法。若JS代码中存在不规范语法,则确定待测试JS代码的代码语法规范性测试结果为不规范,否则,确定待测试JS代码的代码语法规范性测试结果为规范。
可选地,本发明实施例中,语法规范性信息包括语法标签和与语法标签对应的判断标准内容,每个语法标签对应一语法设置,判断标准内容用于表征与语法标签对应的语法设置的语法规范性为不规范。
例如,语法规范性信息可以为″bitwise″:true,其中,″bitwise″为语法标签,其对应的语法设置为是否在JS代码中设置了禁用位运算符(如^,&),true为判断标准内容,用于表征若待测试JS代码中设置了禁用位运算符(如^,&),则确认待测试JS代码的代码中的该语法设置为不规范语法,并可以进一步确认待测试JS代码的代码语法规范性测试结果为不规范。再例如,语法规范性信息可以为″curly″:true,其中,″curly″为语法标签,其对应的语法设置为是否在if和while等语句中使用{}来明确代码块,true为判断标准内容,用于表征若待测试JS代码中在if和while等语句中使用{}来明确代码块,则确认待测试JS代码的代码中的该语法设置为不规范语法,并可以进一步确认待测试JS代码的代码语法规范性测试结果为不规范。又例如,″noarg″:true,其中,″noarg″为语法标签,其对应的语法设置为是否使用了arguments.caller和arguments.callee,true为判断标准内容,用于表征若待测试JS代码中使用了arguments.caller和arguments.callee,则确认待测试JS代码的代码中的该语法设置为不规范语法,并可以进一步确认待测试JS代码的代码语法规范性测试结果为不规范。
为了进一步判断目标JS函数的语法不规范程度,本发明实施例中,第二配置文件还设置了预设语法规范性情况,用于确定语法规范性信息的不规范类型,,不规范类型包括第一不规范类型和第二不规范类型,第一不规范类型用于表征语法规范性信息的语法不规范问题为完全不规范,第二不规范类型用于表征语法规范性信息的不规范问题为不完全规范。针对某个不规范语法,若其对应的语法规范性信息的不规范类型为第一不规范类型,则其表征在JS代码中使用该不规范语法会使得JS代码无法被执行,而实现各JS函数的对应功能,若其对应的语法规范性信息的不规范类型为第二不规范类型,则其表征在JS代码中使用该不规范语法会使得JS代码可以被执行,而实现各JS函数的对应功能,但实现效果无法满足预设要求。
例如,第二配置文件中具有语法规范性信息″bitwise″:true和″noarg″:true,由于在JS代码中设置了禁用位运算符(如^,&)会使得JS代码无法被执行,而实现各JS函数的对应功能,则将″bitwise″:true的不规范类型确认为第一不规范类型,由于在JS代码中使用arguments.caller和arguments.callee,JS代码可以被执行,而实现各JS函数的对应功能,但实现效果无法满足预设要求,则将″noarg″:true的不规范类型确认为第二不规范类型。在实际实施时,为保证代码的整洁性,可以将不规范类型为第一不规范类型的语法规范性信息写入一个程序段,再将不规范类型为第二不规范类型的语法规范性信息写入另一个程序段,例如,将不规范类型为第一不规范类型的语法规范性信息写入程序段″block″{...},将不规范类型为第二不规范类型的语法规范性信息写入程序段″warning″{...}
基于以上描述,本发明实施例中,若待测试JS代码中存在与语法规范性信息对应的语法设置,则将语法设置作为不规范语法,具体可以包括以下步骤。
判断语法规范性信息的不规范类型,若语法规范性信息的不规范类型为第一不规范类型,则将语法设置作为完全不规范语法,若语法规范性信息的不规范类型为第二不规范类型,则将语法设置作为完全不完全规范语法。
本发明实施例中,在获得待测试JS代码的代码语法规范性测试结果之后,还可以根据代码语法规范性测试结果生成代码语法规范性性测试报告。代码语法规范性性测试报告中可以包括各个不规范语法,以及各自对应的不规范类型。
以下将举例对基于第二配置文件测试待测试JS代码的语法规范性,获得待测试JS代码的代码语法规范性测试结果的整体过程进行进行说明。
例如,第二配置文件为:
待测试代码中设置了禁用位运算符(如^,&),且使用了使用了arguments.caller和arguments.callee。
针对第一条语法规范性信息″bitwise″:true,确认待测试JS代码的代码语法规范性测试结果为不规范,且由于语法规范性信息″bitwise″:true的不规范类型为第一不规范类型,则确认待测试JS代码中设置的禁用位运算符(如^,&)为完全不规范语法。
针对第七条语法规范性信息″noarg″:true,确认待测试JS代码的代码语法规范性测试结果为不规范,且由于语法规范性信息″noarg″:true的不规范类型为第二不规范类型,则确认待测试JS代码中使用了arguments.caller和arguments.callee为不完全规范语法。
基于与上述待发放虚拟网络资源预估方法同样的发明构思,本发明实施例还提供了一种JS代码测试装置110。请参阅图4,JS代码测试装置110包括第一配置文件获取模块111和第一测试结果获取模块112。
第一配置文件获取模块,用于获取待测试JS代码,以及与待测试JS代码对应的第一配置文件。
关于第一配置文件获取模块111的描述具体可参考上述步骤S100的详细描述,也即,步骤S100可以由第一配置文件获取模块111执行,此处不再赘述。
第一测试结果获取模块,用于基于第一配置文件同时测试待测试JS代码相对于预设浏览器集合的兼容性,获得待测试JS代码的代码兼容性测试结果。
待测试JS代码中包括至少一个目标JS函数,第一配置文件中包括至少一条用于表征JS函数相对于预设浏览器集合不兼容的函数兼容性信息。基于此,可选地,本发明实施例中,第一测试结果获取模块,具体用于:
基于至少一条函数兼容性信息,分别确定待测试JS代码中的各个目标JS函数相对于预设浏览器集合的函数兼容性测试结果;
根据待测试JS代码中的所有目标JS函数的函数兼容性测试结果,确定待测试JS代码的代码兼容性测试结果;
其中,若待测试JS代码中的所有目标JS函数均相对于预设浏览器集合兼容,则将待测试JS代码的代码兼容性测试结果确定为兼容,否则,将待测试JS代码的代码兼容性测试结果确定为不兼容。
可选地,本发明实施例中,第一测试结果获取模块,又具体用于:
针对待测试JS代码中的每个目标JS函数,分别判断第一配置文件中是否存在与目标JS函数对应的函数兼容性信息;
若第一配置文件中存在与目标JS函数对应的函数兼容性信息,则根据函数兼容性信息确定目标JS函数的函数兼容性测试结果,否则,将目标JS函数的函数兼容性测试结果确定为兼容。
函数兼容性信息包括函数标签和与函数标签对应的函数内容,每个函数标签对应一JS函数,函数内容用于表征与函数标签对应的JS函数相对于预设浏览器集合中的浏览器的兼容性。基于此,可选地,本发明实施例中,第一测试结果获取模块,又具体用于:
基于预设信息关联情况,确定函数兼容性信息的关联类型,关联类型包括第一关联类型和第二关联类型,第一关联类型用于表征在第一配置文件中不存在与函数兼容信息功能关联的函数兼容性信息,第二关联类型用于表征在第一配置文件中存在与函数兼容信息功能关联的函数兼容性信息;
若函数兼容信息的关联类型为第一关联类型,则根据函数兼容信息,确定目标JS函数的函数兼容性测试结果;
若函数兼容信息的关联类型为第二关联类型,则根据函数兼容信息的函数内容以及与函数兼容信息功能关联的函数兼容性信息的函数内容,确定目标JS函数的函数兼容性测试结果。
可选地,本发明实施例中,第一测试结果获取模块,又具体用于:
根据函数兼容信息的函数内容,获得对与函数兼容信息对应的JS函数兼容的浏览器,作为第一浏览器;
将与函数兼容信息功能关联的函数兼容性信息,作为关联函数兼容性信息,并根据关联函数兼容性信息的函数内容,获得对与关联函数兼容信息对应的JS函数兼容的浏览器,作为第二浏览器;
判断第一浏览器与第二浏览器的集合是否与预设浏览器集合相同;
若第一浏览器与第二浏览器的集合与预设浏览器集合相同,则确定目标JS函数的函数兼容性测试结果为兼容,否则,确定目标JS函数的函数兼容性测试结果为不兼容。
当目标JS函数的函数兼容性测试结果为不兼容时,可选地,本发明实施例中,第一测试结果获取模块,还具体用于:
基于预设浏览器兼容性情况,确定函数兼容性信息的不兼容类型,不兼容类型包括第一不兼容类型和第二不兼容类型,第一不兼容类型用于表征函数兼容性信息的不兼容情况为完全不兼容,第二不兼容类型用于表征函数兼容性信息的不兼容情况为不完全兼容;
若函数兼容性信息的不兼容类型为第一不兼容类型,则将目标JS函数的函数兼容性结果确定为完全不兼容;
若函数兼容性信息的不兼容类型为第二不兼容类型,则目标JS函数的函数兼容性结果确定为不完全兼容。
关于第一测试结果获取模块112的描述具体可参考上述步骤S200的详细描述,也即,步骤S200可以由第一测试结果获取模块112执行,此处不再赘述。
请参阅图5,可选地,本发明实施例中,JS代码测试装置,还包括:
第二配置文件获取模块,用于获取待测试JS代码对应的第二配置文件。
关于第二配置文件获取模块113的描述具体可参考上述步骤S300的详细描述,也即,步骤S300可以由第二配置文件获取模块113执行,此处不再赘述。
第二测试结果获取模块,用于基于第二配置文件测试待测试JS代码的语法规范性,获得待测试JS代码的代码语法规范性测试结果。
第二配置文件中包括至少一条用于表征待测试JS代码具有的语法不规范问题的语法规范性信息。基于此,可选地,本发明实施例中,第二测试结果获取模块,具体用于:
针对每条语法规范性信息,判断待测试JS代码中是否存在与语法规范性信息对应的语法设置;
若待测试JS代码中存在与语法规范性信息对应的语法设置,则将语法设置作为不规范语法;
若JS代码中存在不规范语法,则确定待测试JS代码的代码语法规范性测试结果为不规范,否则,确定待测试JS代码的代码语法规范性测试结果为规范。
可选地,本发明实施例中,第二测试结果获取模块,又具体用于:
基于预设语法规范性情况,确定语法规范性信息的不规范类型,不规范类型包括第一不规范类型和第二不规范类型,第一不规范类型用于表征语法规范性信息的语法不规范问题为完全不规范,第二不规范类型用于表征语法规范性信息的不规范问题为不完全规范;
若语法规范性信息的不规范类型为第一不规范类型,则将语法设置作为完全不规范语法;
若所述语法规范性信息的不规范类型为所述第二不规范类型,则将语法设置作为完全不完全规范语法。
关于第二测试结果获取模块114的描述具体可参考上述步骤S400的详细描述,也即,步骤S400可以由第二测试结果获取模块114执行,此处不再赘述。
综上,本发明实施例提供的JS代码测试方法、装置及电子设备能够获取待测试JS代码,以及与待测试JS代码对应的第一配置文件,并基于第一配置文件同时测试待测试JS代码相对于预设浏览器集合的兼容性,获得待测试JS代码的代码兼容性测试结果。如此,在需要对待测试JS代码进行测试时,只需基于第一配置文件就可以直接同时测试待测试JS代码相对于预设浏览器集合的兼容性,从而获得待测试JS代码的代码兼容性测试结果,因此,相较于现有技术中,通过人工测试的方式分别测试每个浏览器对待测试JS代码的兼容性的方案而言,测试效率有了较大程度的提高。
在本发明实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本公开的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本公开各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独包括,也可以两个或两个以上模块集成形成一个独立的部分。
功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本公开各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还包括另外的相同要素。
以上仅为本公开的可选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
A1.一种JS代码测试方法,其特征在于,包括:
获取待测试JS代码,以及与所述待测试JS代码对应的第一配置文件;
基于所述第一配置文件同时测试所述待测试JS代码相对于预设浏览器集合的兼容性,获得所述待测试JS代码的代码兼容性测试结果。
A2.根据权利要求A1所述的JS代码测试方法,其特征在于,所述待测试JS代码中包括至少一个目标JS函数,所述第一配置文件中包括至少一条用于表征JS函数相对于所述预设浏览器集合不兼容的函数兼容性信息;
所述基于所述第一配置文件同时测试所述待测试JS代码相对于预设浏览器集合的兼容性,获得所述待测试JS代码的代码兼容性测试结果,包括:
基于至少一条所述函数兼容性信息,分别确定所述待测试JS代码中的各个目标JS函数相对于所述预设浏览器集合的函数兼容性测试结果;
根据所述待测试JS代码中的所有目标JS函数的函数兼容性测试结果,确定所述待测试JS代码的代码兼容性测试结果;
其中,若所述待测试JS代码中的所有目标JS函数均相对于所述预设浏览器集合兼容,则将所述待测试JS代码的代码兼容性测试结果确定为兼容,否则,将所述待测试JS代码的代码兼容性测试结果确定为不兼容。
A3.根据权利要求A2所述的JS代码测试方法,其特征在于,所述基于至少一条所述函数兼容性信息,分别确定所述待测试JS代码中的各个目标JS函数相对于所述预设浏览器集合的函数兼容性测试结果,包括:
针对所述待测试JS代码中的每个目标JS函数,分别判断所述第一配置文件中是否存在与所述目标JS函数对应的函数兼容性信息;
若所述第一配置文件中存在与所述目标JS函数对应的函数兼容性信息,则根据所述函数兼容性信息确定所述目标JS函数的所述函数兼容性测试结果,否则,将所述目标JS函数的函数兼容性测试结果确定为兼容。
A4.根据权利要求A3所述的JS代码测试方法,其特征在于,所述函数兼容性信息包括函数标签和与所述函数标签对应的函数内容,每个所述函数标签对应一JS函数,所述函数内容用于表征与所述函数标签对应的JS函数相对于所述预设浏览器集合中的浏览器的兼容性;
所述根据所述函数兼容性信息确定所述目标JS函数的所述函数兼容性测试结果,包括:
基于预设信息关联情况,确定所述函数兼容性信息的关联类型,所述关联类型包括第一关联类型和第二关联类型,所述第一关联类型用于表征在所述第一配置文件中不存在与所述函数兼容信息功能关联的函数兼容性信息,所述第二关联类型用于表征在所述第一配置文件中存在与所述函数兼容信息功能关联的函数兼容性信息;
若所述函数兼容信息的关联类型为所述第一关联类型,则根据所述函数兼容信息,确定所述目标JS函数的所述函数兼容性测试结果;
若所述函数兼容信息的关联类型为所述第二关联类型,则根据所述函数兼容信息的函数内容以及与所述函数兼容信息功能关联的函数兼容性信息的函数内容,确定所述目标JS函数的所述函数兼容性测试结果。
A5.根据权利要求A4所述的JS代码测试方法,其特征在于,所述根据所述函数兼容信息的函数内容以及与所述函数兼容信息功能关联的函数兼容性信息的函数内容,确定所述目标JS函数的所述函数兼容性测试结果,包括:
根据所述函数兼容信息的函数内容,获得对与所述函数兼容信息对应的JS函数兼容的浏览器,作为第一浏览器;
将与所述函数兼容信息功能关联的函数兼容性信息,作为关联函数兼容性信息,并根据所述关联函数兼容性信息的函数内容,获得对与所述关联函数兼容信息对应的JS函数兼容的浏览器,作为第二浏览器;
判断所述第一浏览器与所述第二浏览器的集合是否与所述预设浏览器集合相同;
若所述第一浏览器与所述第二浏览器的集合与所述预设浏览器集合相同,则确定所述目标JS函数的所述函数兼容性测试结果为兼容,否则,确定所述目标JS函数的所述函数兼容性测试结果为不兼容。
A6.根据权利要求A4所述的JS代码测试方法,其特征在于,当所述目标JS函数的所述函数兼容性测试结果为不兼容时,所述根据所述函数兼容性信息确定所述目标JS函数的所述函数兼容性测试结果,还包括:
基于预设浏览器兼容性情况,确定所述函数兼容性信息的不兼容类型,所述不兼容类型包括第一不兼容类型和第二不兼容类型,所述第一不兼容类型用于表征所述函数兼容性信息的不兼容情况为完全不兼容,所述第二不兼容类型用于表征所述函数兼容性信息的不兼容情况为不完全兼容;
若所述函数兼容性信息的不兼容类型为所述第一不兼容类型,则将所述目标JS函数的函数兼容性结果确定为完全不兼容;
若所述函数兼容性信息的不兼容类型为所述第二不兼容类型,则所述目标JS函数的函数兼容性结果确定为不完全兼容。
A7.根据权利要求A1所述的JS代码测试方法,其特征在于,所述JS代码测试方法,还包括:
获取所述待测试JS代码对应的第二配置文件;
基于所述第二配置文件测试所述待测试JS代码的语法规范性,获得所述待测试JS代码的代码语法规范性测试结果。
A8.根据权利要求A7所述的JS代码测试方法,其特征在于,所述第二配置文件中包括至少一条用于表征待测试JS代码具有的语法不规范问题的语法规范性信息;
所述基于所述第二配置文件测试所述待测试JS代码的语法规范性,获得所述待测试JS代码的代码语法规范性测试结果,包括:
针对每条所述语法规范性信息,判断所述待测试JS代码中是否存在与所述语法规范性信息对应的语法设置;
若所述待测试JS代码中存在与所述语法规范性信息对应的语法设置,则将所述语法设置作为不规范语法;
若所述JS代码中存在所述不规范语法,则确定所述待测试JS代码的代码语法规范性测试结果为不规范,否则,确定所述待测试JS代码的代码语法规范性测试结果为规范。
A9.根据权利要求A8所述的JS代码测试方法,其特征在于,若所述待测试JS代码中存在与所述语法规范性信息对应的语法设置,则将所述语法设置作为不规范语法,包括:
基于预设语法规范性情况,确定所述语法规范性信息的不规范类型,所述不规范类型包括第一不规范类型和第二不规范类型,所述第一不规范类型用于表征所述语法规范性信息的语法不规范问题为完全不规范,所述第二不规范类型用于表征所述语法规范性信息的不规范问题为不完全规范;
若所述语法规范性信息的不规范类型为所述第一不规范类型,则将所述语法设置作为完全不规范语法;
若所述语法规范性信息的不规范类型为所述第二不规范类型,则将所述语法设置作为完全不完全规范语法。
B10.一种JS代码测试装置,其特征在于,包括:
第一配置文件获取模块,用于获取待测试JS代码,以及与所述待测试JS代码对应的第一配置文件;
第一测试结果获取模块,用于基于所述第一配置文件同时测试所述待测试JS代码相对于预设浏览器集合的兼容性,获得所述待测试JS代码的代码兼容性测试结果。
B11.根据权利要求B10所述的JS代码测试装置,其特征在于,所述待测试JS代码中包括至少一个目标JS函数,所述第一配置文件中包括至少一条用于表征JS函数相对于所述预设浏览器集合不兼容的函数兼容性信息;
所述第一测试结果获取模块,具体用于:
基于至少一条所述函数兼容性信息,分别确定所述待测试JS代码中的各个目标JS函数相对于所述预设浏览器集合的函数兼容性测试结果;
根据所述待测试JS代码中的所有目标JS函数的函数兼容性测试结果,确定所述待测试JS代码的代码兼容性测试结果;
其中,若所述待测试JS代码中的所有目标JS函数均相对于所述预设浏览器集合兼容,则将所述待测试JS代码的代码兼容性测试结果确定为兼容,否则,将所述待测试JS代码的代码兼容性测试结果确定为不兼容。
B12.根据权利要求B10所述的JS代码测试装置,其特征在于,所述第一测试结果获取模块,又具体用于:
针对所述待测试JS代码中的每个目标JS函数,分别判断所述第一配置文件中是否存在与所述目标JS函数对应的函数兼容性信息;
若所述第一配置文件中存在与所述目标JS函数对应的函数兼容性信息,则根据所述函数兼容性信息确定所述目标JS函数的所述函数兼容性测试结果,否则,将所述目标JS函数的函数兼容性测试结果确定为兼容。
B13.根据权利要求B12所述的JS代码测试装置,其特征在于,所述函数兼容性信息包括函数标签和与所述函数标签对应的函数内容,每个所述函数标签对应一JS函数,所述函数内容用于表征与所述函数标签对应的JS函数相对于所述预设浏览器集合中的浏览器的兼容性;
所述第一测试结果获取模块,又具体用于:
基于预设信息关联情况,确定所述函数兼容性信息的关联类型,所述关联类型包括第一关联类型和第二关联类型,所述第一关联类型用于表征在所述第一配置文件中不存在与所述函数兼容信息功能关联的函数兼容性信息,所述第二关联类型用于表征在所述第一配置文件中存在与所述函数兼容信息功能关联的函数兼容性信息;
若所述函数兼容信息的关联类型为所述第一关联类型,则根据所述函数兼容信息,确定所述目标JS函数的所述函数兼容性测试结果;
若所述函数兼容信息的关联类型为所述第二关联类型,则根据所述函数兼容信息的函数内容以及与所述函数兼容信息功能关联的函数兼容性信息的函数内容,确定所述目标JS函数的所述函数兼容性测试结果。
B14.根据权利要求B13所述的JS代码测试装置,其特征在于,所述第一测试结果获取模块,又具体用于:
根据所述函数兼容信息的函数内容,获得对与所述函数兼容信息对应的JS函数兼容的浏览器,作为第一浏览器;
将与所述函数兼容信息功能关联的函数兼容性信息,作为关联函数兼容性信息,并根据所述关联函数兼容性信息的函数内容,获得对与所述关联函数兼容信息对应的JS函数兼容的浏览器,作为第二浏览器;
判断所述第一浏览器与所述第二浏览器的集合是否与所述预设浏览器集合相同;
若所述第一浏览器与所述第二浏览器的集合与所述预设浏览器集合相同,则确定所述目标JS函数的所述函数兼容性测试结果为兼容,否则,确定所述目标JS函数的所述函数兼容性测试结果为不兼容。
B15.根据权利要求B13所述的JS代码测试装置,其特征在于,当所述目标JS函数的所述函数兼容性测试结果为不兼容时,所述第一测试结果获取模块,还具体用于:
基于预设浏览器兼容性情况,确定所述函数兼容性信息的不兼容类型,所述不兼容类型包括第一不兼容类型和第二不兼容类型,所述第一不兼容类型用于表征所述函数兼容性信息的不兼容情况为完全不兼容,所述第二不兼容类型用于表征所述函数兼容性信息的不兼容情况为不完全兼容;
若所述函数兼容性信息的不兼容类型为所述第一不兼容类型,则将所述目标JS函数的函数兼容性结果确定为完全不兼容;
若所述函数兼容性信息的不兼容类型为所述第二不兼容类型,则所述目标JS函数的函数兼容性结果确定为不完全兼容。
B16.根据权利要求B10所述的JS代码测试装置,其特征在于,所述JS代码测试装置,还包括:
第二配置文件获取模块,用于获取所述待测试JS代码对应的第二配置文件;
第二测试结果获取模块,用于基于所述第二配置文件测试所述待测试JS代码的语法规范性,获得所述待测试JS代码的代码语法规范性测试结果。
B17.根据权利要求B16所述的JS代码测试装置,其特征在于,所述第二配置文件中包括至少一条用于表征待测试JS代码具有的语法不规范问题的语法规范性信息;
所述第二测试结果获取模块,具体用于:
针对每条所述语法规范性信息,判断所述待测试JS代码中是否存在与所述语法规范性信息对应的语法设置;
若所述待测试JS代码中存在与所述语法规范性信息对应的语法设置,则将所述语法设置作为不规范语法;
若所述JS代码中存在所述不规范语法,则确定所述待测试JS代码的代码语法规范性测试结果为不规范,否则,确定所述待测试JS代码的代码语法规范性测试结果为规范。
B18.根据权利要求B17所述的JS代码测试装置,其特征在于,所述第二测试结果获取模块,又具体用于:
基于预设语法规范性情况,确定所述语法规范性信息的不规范类型,所述不规范类型包括第一不规范类型和第二不规范类型,所述第一不规范类型用于表征所述语法规范性信息的语法不规范问题为完全不规范,所述第二不规范类型用于表征所述语法规范性信息的不规范问题为不完全规范;
若所述语法规范性信息的不规范类型为所述第一不规范类型,则将所述语法设置作为完全不规范语法;
若所述语法规范性信息的不规范类型为所述第二不规范类型,则将所述语法设置作为完全不完全规范语法。
C19.一种电子设备,其特征在于,包括处理器、存储器和权利要求B10-B18所述的JS代码测试装置,所述JS代码测试装置包括一个或多个存储于所述存储器并由所述处理器执行的软件功能模块。
D20.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被执行时,可以实现权利要求A1-A9中任意一项所述的JS代码测试方法。
Claims (18)
1.一种JS代码测试方法,其特征在于,包括:
获取待测试JS代码,以及与所述待测试JS代码对应的第一配置文件;
基于所述第一配置文件同时测试所述待测试JS代码相对于预设浏览器集合的兼容性,获得所述待测试JS代码的代码兼容性测试结果;
所述待测试JS代码中包括至少一个目标JS函数,所述第一配置文件中包括至少一条用于表征JS函数相对于所述预设浏览器集合不兼容的函数兼容性信息,所述函数兼容性信息包括函数标签和函数内容,每个所述函数标签对应一所述JS函数,所述函数内容用于表征与所述函数标签对应的所述JS函数相对于所述预设浏览器集合中的浏览器兼容或不兼容;
所述基于所述第一配置文件同时测试所述待测试JS代码相对于预设浏览器集合的兼容性,获得所述待测试JS代码的代码兼容性测试结果,包括:
基于至少一条所述函数兼容性信息,分别确定所述待测试JS代码中的各个目标JS函数相对于所述预设浏览器集合的函数兼容性测试结果;
根据所述待测试JS代码中的所有目标JS函数的函数兼容性测试结果,确定所述待测试JS代码的代码兼容性测试结果;
其中,若所述待测试JS代码中的所有目标JS函数均相对于所述预设浏览器集合兼容,则将所述待测试JS代码的代码兼容性测试结果确定为兼容,否则,将所述待测试JS代码的代码兼容性测试结果确定为不兼容。
2.根据权利要求1所述的JS代码测试方法,其特征在于,所述基于至少一条所述函数兼容性信息,分别确定所述待测试JS代码中的各个目标JS函数相对于所述预设浏览器集合的函数兼容性测试结果,包括:
针对所述待测试JS代码中的每个目标JS函数,分别判断所述第一配置文件中是否存在与所述目标JS函数对应的函数兼容性信息;
若所述第一配置文件中存在与所述目标JS函数对应的函数兼容性信息,则根据所述函数兼容性信息确定所述目标JS函数的所述函数兼容性测试结果,否则,将所述目标JS函数的函数兼容性测试结果确定为兼容。
3.根据权利要求2所述的JS代码测试方法,其特征在于,所述函数兼容性信息包括函数标签和与所述函数标签对应的函数内容,每个所述函数标签对应一JS函数,所述函数内容用于表征与所述函数标签对应的JS函数相对于所述预设浏览器集合中的浏览器的兼容性;
所述根据所述函数兼容性信息确定所述目标JS函数的所述函数兼容性测试结果,包括:
基于预设信息关联情况,确定所述函数兼容性信息的关联类型,所述关联类型包括第一关联类型和第二关联类型,所述第一关联类型用于表征在所述第一配置文件中不存在与所述函数兼容性信息功能关联的函数兼容性信息,所述第二关联类型用于表征在所述第一配置文件中存在与所述函数兼容性信息功能关联的函数兼容性信息;
若所述函数兼容性信息的关联类型为所述第一关联类型,则根据所述函数兼容性信息,确定所述目标JS函数的所述函数兼容性测试结果;
若所述函数兼容性信息的关联类型为所述第二关联类型,则根据所述函数兼容性信息的函数内容以及与所述函数兼容性信息功能关联的函数兼容性信息的函数内容,确定所述目标JS函数的所述函数兼容性测试结果。
4.根据权利要求3所述的JS代码测试方法,其特征在于,所述根据所述函数兼容性信息的函数内容以及与所述函数兼容性信息功能关联的函数兼容性信息的函数内容,确定所述目标JS函数的所述函数兼容性测试结果,包括:
根据所述函数兼容性信息的函数内容,获得对与所述函数兼容性信息对应的JS函数兼容的浏览器,作为第一浏览器;
将与所述函数兼容性信息功能关联的函数兼容性信息,作为关联函数兼容性信息,并根据所述关联函数兼容性信息的函数内容,获得对与所述关联函数兼容性信息对应的JS函数兼容的浏览器,作为第二浏览器;
判断所述第一浏览器与所述第二浏览器的集合是否与所述预设浏览器集合相同;
若所述第一浏览器与所述第二浏览器的集合与所述预设浏览器集合相同,则确定所述目标JS函数的所述函数兼容性测试结果为兼容,否则,确定所述目标JS函数的所述函数兼容性测试结果为不兼容。
5.根据权利要求3所述的JS代码测试方法,其特征在于,当所述目标JS函数的所述函数兼容性测试结果为不兼容时,所述根据所述函数兼容性信息确定所述目标JS函数的所述函数兼容性测试结果,还包括:
基于预设浏览器兼容性情况,确定所述函数兼容性信息的不兼容类型,所述不兼容类型包括第一不兼容类型和第二不兼容类型,所述第一不兼容类型用于表征所述函数兼容性信息的不兼容情况为完全不兼容,所述第二不兼容类型用于表征所述函数兼容性信息的不兼容情况为不完全兼容;
若所述函数兼容性信息的不兼容类型为所述第一不兼容类型,则将所述目标JS函数的函数兼容性结果确定为完全不兼容;
若所述函数兼容性信息的不兼容类型为所述第二不兼容类型,则所述目标JS函数的函数兼容性结果确定为不完全兼容。
6.根据权利要求1所述的JS代码测试方法,其特征在于,所述JS代码测试方法,还包括:
获取所述待测试JS代码对应的第二配置文件;
基于所述第二配置文件测试所述待测试JS代码的语法规范性,获得所述待测试JS代码的代码语法规范性测试结果。
7.根据权利要求6所述的JS代码测试方法,其特征在于,所述第二配置文件中包括至少一条用于表征待测试JS代码具有的语法不规范问题的语法规范性信息;
所述基于所述第二配置文件测试所述待测试JS代码的语法规范性,获得所述待测试JS代码的代码语法规范性测试结果,包括:
针对每条所述语法规范性信息,判断所述待测试JS代码中是否存在与所述语法规范性信息对应的语法设置;
若所述待测试JS代码中存在与所述语法规范性信息对应的语法设置,则将所述语法设置作为不规范语法;
若所述JS代码中存在所述不规范语法,则确定所述待测试JS代码的代码语法规范性测试结果为不规范,否则,确定所述待测试JS代码的代码语法规范性测试结果为规范。
8.根据权利要求7所述的JS代码测试方法,其特征在于,若所述待测试JS代码中存在与所述语法规范性信息对应的语法设置,则将所述语法设置作为不规范语法,包括:
基于预设语法规范性情况,确定所述语法规范性信息的不规范类型,所述不规范类型包括第一不规范类型和第二不规范类型,所述第一不规范类型用于表征所述语法规范性信息的语法不规范问题为完全不规范,所述第二不规范类型用于表征所述语法规范性信息的不规范问题为不完全规范;
若所述语法规范性信息的不规范类型为所述第一不规范类型,则将所述语法设置作为完全不规范语法;
若所述语法规范性信息的不规范类型为所述第二不规范类型,则将所述语法设置作为不完全规范语法。
9.一种JS代码测试装置,其特征在于,包括:
第一配置文件获取模块,用于获取待测试JS代码,以及与所述待测试JS代码对应的第一配置文件;
第一测试结果获取模块,用于基于所述第一配置文件同时测试所述待测试JS代码相对于预设浏览器集合的兼容性,获得所述待测试JS代码的代码兼容性测试结果;
所述待测试JS代码中包括至少一个目标JS函数,所述第一配置文件中包括至少一条用于表征JS函数相对于所述预设浏览器集合不兼容的函数兼容性信息,所述函数兼容性信息包括函数标签和函数内容,每个所述函数标签对应一所述JS函数,所述函数内容用于表征与所述函数标签对应的所述JS函数相对于所述预设浏览器集合中的浏览器兼容或不兼容;
所述第一测试结果获取模块,具体用于:
基于至少一条所述函数兼容性信息,分别确定所述待测试JS代码中的各个目标JS函数相对于所述预设浏览器集合的函数兼容性测试结果;
根据所述待测试JS代码中的所有目标JS函数的函数兼容性测试结果,确定所述待测试JS代码的代码兼容性测试结果;
其中,若所述待测试JS代码中的所有目标JS函数均相对于所述预设浏览器集合兼容,则将所述待测试JS代码的代码兼容性测试结果确定为兼容,否则,将所述待测试JS代码的代码兼容性测试结果确定为不兼容。
10.根据权利要求9所述的JS代码测试装置,其特征在于,所述第一测试结果获取模块,又具体用于:
针对所述待测试JS代码中的每个目标JS函数,分别判断所述第一配置文件中是否存在与所述目标JS函数对应的函数兼容性信息;
若所述第一配置文件中存在与所述目标JS函数对应的函数兼容性信息,则根据所述函数兼容性信息确定所述目标JS函数的所述函数兼容性测试结果,否则,将所述目标JS函数的函数兼容性测试结果确定为兼容。
11.根据权利要求10所述的JS代码测试装置,其特征在于,所述函数兼容性信息包括函数标签和与所述函数标签对应的函数内容,每个所述函数标签对应一JS函数,所述函数内容用于表征与所述函数标签对应的JS函数相对于所述预设浏览器集合中的浏览器的兼容性;
所述第一测试结果获取模块,又具体用于:
基于预设信息关联情况,确定所述函数兼容性信息的关联类型,所述关联类型包括第一关联类型和第二关联类型,所述第一关联类型用于表征在所述第一配置文件中不存在与所述函数兼容性信息功能关联的函数兼容性信息,所述第二关联类型用于表征在所述第一配置文件中存在与所述函数兼容性信息功能关联的函数兼容性信息;
若所述函数兼容性信息的关联类型为所述第一关联类型,则根据所述函数兼容性信息,确定所述目标JS函数的所述函数兼容性测试结果;
若所述函数兼容性信息的关联类型为所述第二关联类型,则根据所述函数兼容性信息的函数内容以及与所述函数兼容性信息功能关联的函数兼容性信息的函数内容,确定所述目标JS函数的所述函数兼容性测试结果。
12.根据权利要求11所述的JS代码测试装置,其特征在于,所述第一测试结果获取模块,又具体用于:
根据所述函数兼容性信息的函数内容,获得对与所述函数兼容性信息对应的JS函数兼容的浏览器,作为第一浏览器;
将与所述函数兼容性信息功能关联的函数兼容性信息,作为关联函数兼容性信息,并根据所述关联函数兼容性信息的函数内容,获得对与所述关联函数兼容性信息对应的JS函数兼容的浏览器,作为第二浏览器;
判断所述第一浏览器与所述第二浏览器的集合是否与所述预设浏览器集合相同;
若所述第一浏览器与所述第二浏览器的集合与所述预设浏览器集合相同,则确定所述目标JS函数的所述函数兼容性测试结果为兼容,否则,确定所述目标JS函数的所述函数兼容性测试结果为不兼容。
13.根据权利要求11所述的JS代码测试装置,其特征在于,当所述目标JS函数的所述函数兼容性测试结果为不兼容时,所述第一测试结果获取模块,还具体用于:
基于预设浏览器兼容性情况,确定所述函数兼容性信息的不兼容类型,所述不兼容类型包括第一不兼容类型和第二不兼容类型,所述第一不兼容类型用于表征所述函数兼容性信息的不兼容情况为完全不兼容,所述第二不兼容类型用于表征所述函数兼容性信息的不兼容情况为不完全兼容;
若所述函数兼容性信息的不兼容类型为所述第一不兼容类型,则将所述目标JS函数的函数兼容性结果确定为完全不兼容;
若所述函数兼容性信息的不兼容类型为所述第二不兼容类型,则所述目标JS函数的函数兼容性结果确定为不完全兼容。
14.根据权利要求9所述的JS代码测试装置,其特征在于,所述JS代码测试装置,还包括:
第二配置文件获取模块,用于获取所述待测试JS代码对应的第二配置文件;
第二测试结果获取模块,用于基于所述第二配置文件测试所述待测试JS代码的语法规范性,获得所述待测试JS代码的代码语法规范性测试结果。
15.根据权利要求14所述的JS代码测试装置,其特征在于,所述第二配置文件中包括至少一条用于表征待测试JS代码具有的语法不规范问题的语法规范性信息;
所述第二测试结果获取模块,具体用于:
针对每条所述语法规范性信息,判断所述待测试JS代码中是否存在与所述语法规范性信息对应的语法设置;
若所述待测试JS代码中存在与所述语法规范性信息对应的语法设置,则将所述语法设置作为不规范语法;
若所述JS代码中存在所述不规范语法,则确定所述待测试JS代码的代码语法规范性测试结果为不规范,否则,确定所述待测试JS代码的代码语法规范性测试结果为规范。
16.根据权利要求15所述的JS代码测试装置,其特征在于,所述第二测试结果获取模块,又具体用于:
基于预设语法规范性情况,确定所述语法规范性信息的不规范类型,所述不规范类型包括第一不规范类型和第二不规范类型,所述第一不规范类型用于表征所述语法规范性信息的语法不规范问题为完全不规范,所述第二不规范类型用于表征所述语法规范性信息的不规范问题为不完全规范;
若所述语法规范性信息的不规范类型为所述第一不规范类型,则将所述语法设置作为完全不规范语法;
若所述语法规范性信息的不规范类型为所述第二不规范类型,则将所述语法设置作为不完全规范语法。
17.一种电子设备,其特征在于,包括处理器、存储器和权利要求9-16所述的JS代码测试装置,所述JS代码测试装置包括一个或多个存储于所述存储器并由所述处理器执行的软件功能模块。
18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被执行时,可以实现权利要求1-8中任意一项所述的JS代码测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811317347.3A CN109634844B (zh) | 2018-11-06 | 2018-11-06 | Js代码测试方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811317347.3A CN109634844B (zh) | 2018-11-06 | 2018-11-06 | Js代码测试方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109634844A CN109634844A (zh) | 2019-04-16 |
CN109634844B true CN109634844B (zh) | 2023-12-22 |
Family
ID=66067321
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811317347.3A Active CN109634844B (zh) | 2018-11-06 | 2018-11-06 | Js代码测试方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109634844B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112540925A (zh) * | 2020-12-16 | 2021-03-23 | 贝壳技术有限公司 | 新特性兼容性检测系统及方法、电子设备及可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102054100A (zh) * | 2010-12-17 | 2011-05-11 | 中国科学院计算技术研究所 | 一种基于静态分析的rtl设计错误检测方法和系统 |
CN103164213A (zh) * | 2011-12-19 | 2013-06-19 | 中国移动通信集团四川有限公司 | Web浏览器的兼容性检测方法、装置及系统 |
CN103942137A (zh) * | 2013-01-23 | 2014-07-23 | 腾讯科技(深圳)有限公司 | 浏览器兼容性测试方法及装置 |
CN104156307A (zh) * | 2014-07-03 | 2014-11-19 | 安徽景行信息科技有限公司 | 一种浏览器兼容性检测方法和系统 |
CN107103237A (zh) * | 2016-02-23 | 2017-08-29 | 阿里巴巴集团控股有限公司 | 一种恶意文件的检测方法及装置 |
CN107133165A (zh) * | 2017-03-22 | 2017-09-05 | 腾讯科技(深圳)有限公司 | 浏览器兼容性检测方法及装置 |
CN107729249A (zh) * | 2017-10-18 | 2018-02-23 | 北京奇虎科技有限公司 | 浏览器兼容性测试方法、装置、系统及电子设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010013043A1 (en) * | 1998-03-12 | 2001-08-09 | Richard J. Wagner | System and method for determining browser package and version compatibility of a web document |
US20110173589A1 (en) * | 2010-01-13 | 2011-07-14 | Microsoft Corporation | Cross-Browser Interactivity Testing |
US9208054B2 (en) * | 2011-02-14 | 2015-12-08 | Fujitsu Limited | Web service for automated cross-browser compatibility checking of web applications |
US20140201625A1 (en) * | 2012-04-24 | 2014-07-17 | Concepts in Data Management, SRL | System and method for generating a browser compatible document |
-
2018
- 2018-11-06 CN CN201811317347.3A patent/CN109634844B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102054100A (zh) * | 2010-12-17 | 2011-05-11 | 中国科学院计算技术研究所 | 一种基于静态分析的rtl设计错误检测方法和系统 |
CN103164213A (zh) * | 2011-12-19 | 2013-06-19 | 中国移动通信集团四川有限公司 | Web浏览器的兼容性检测方法、装置及系统 |
CN103942137A (zh) * | 2013-01-23 | 2014-07-23 | 腾讯科技(深圳)有限公司 | 浏览器兼容性测试方法及装置 |
CN104156307A (zh) * | 2014-07-03 | 2014-11-19 | 安徽景行信息科技有限公司 | 一种浏览器兼容性检测方法和系统 |
CN107103237A (zh) * | 2016-02-23 | 2017-08-29 | 阿里巴巴集团控股有限公司 | 一种恶意文件的检测方法及装置 |
CN107133165A (zh) * | 2017-03-22 | 2017-09-05 | 腾讯科技(深圳)有限公司 | 浏览器兼容性检测方法及装置 |
CN107729249A (zh) * | 2017-10-18 | 2018-02-23 | 北京奇虎科技有限公司 | 浏览器兼容性测试方法、装置、系统及电子设备 |
Non-Patent Citations (4)
Title |
---|
A Selenium based approach to automatic test script generation for refactoring JavaScript code;Ruifeng Chen等;2013 IEEE/ACIS 12th International Conference on Computer and Information Science (ICIS);第341-346页 * |
Chapter 5 - A Framework for Detecting and Diagnosing Configuration Faults in Web Applications;Cyntrica Eaton;Advances in Computers;第85卷;第137-181页 * |
基于MVC设计模式的源代码检测平台的设计与实现;王安娜;中国优秀硕士学位论文全文数据库 信息科技辑(第10期);I138-29 * |
针对JavaScript浏览器兼容性的变异测试方法;程勇 等;计算机应用;第37卷(第4期);第1143-1148+1173页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109634844A (zh) | 2019-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110162296B (zh) | 应用程序编程接口文档的生成方法、装置及终端设备 | |
CN107563201B (zh) | 基于机器学习的关联样本查找方法、装置及服务器 | |
CN110737892B (zh) | 一种针对apc注入的检测方法和相关装置 | |
CN111222137A (zh) | 一种程序分类模型训练方法、程序分类方法及装置 | |
CN111026663B (zh) | 一种软件缺陷检测方法、装置、计算机设备和存储介质 | |
CN111615688A (zh) | 一种断言验证代码绑定方法及装置 | |
CN108984328B (zh) | 一种堆栈回溯的方法及装置 | |
CN110909361A (zh) | 一种漏洞检测方法,装置和计算机设备 | |
CN107015986B (zh) | 一种爬虫爬取网页的方法及装置 | |
CN109634844B (zh) | Js代码测试方法、装置及电子设备 | |
CN110262948B (zh) | 页面数据的监听方法、装置及设备 | |
CN111984666A (zh) | 数据库访问方法、装置、计算机可读存储介质和计算机设备 | |
CN111290747B (zh) | 一种创建函数钩子的方法、系统、设备及介质 | |
CN111026604B (zh) | 一种日志文件解析方法及装置 | |
CN115437930B (zh) | 网页应用指纹信息的识别方法及相关设备 | |
CN110019295B (zh) | 数据库检索方法、装置、系统以及存储介质 | |
CN110968500A (zh) | 一种测试用例的执行方法及装置 | |
CN106487771B (zh) | 网络行为的获取方法及装置 | |
CN115688099A (zh) | 计算机病毒检索方法、装置、计算机设备及存储介质 | |
CN109710833B (zh) | 用于确定内容节点的方法与设备 | |
CN103761247A (zh) | 一种出错文件的处理方法及装置 | |
CN109710305B (zh) | 一种开发信息的获取方法、装置、存储介质及终端设备 | |
CN110955687B (zh) | 数据修改方法及装置 | |
CN108595715B (zh) | 一种文件标记和排重分析方法、终端设备及存储介质 | |
CN113312891B (zh) | 一种基于生成模型的payload自动生成方法、装置、系统 |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20231128 Address after: Room 03, 2nd Floor, Building A, No. 20 Haitai Avenue, Huayuan Industrial Zone (Huanwai), Binhai New Area, Tianjin, 300450 Applicant after: 3600 Technology Group Co.,Ltd. Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park) Applicant before: BEIJING QIHOO TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |