一种JS代码的测试方法、存储介质、设备和系统技术方案

技术编号:21627475 阅读:28 留言:0更新日期:2019-07-17 10:38
本发明专利技术公开了一种JS代码的测试方法,涉及人机识别技术领域,包括步骤:在JS代码中集成JS引擎,并编写一用于执行JS代码的JS引擎接口,调用JS引擎接口得到JS代码的执行结果;编写与JS代码功能相同的编译型语言代码,并执行所述编译型语言代码,获得该编译型语言代码的执行结果;比较JS代码的执行结果和编译型语言代码的执行结果是否一致,并根据比较结果判断所述JS代码是否正确。本发明专利技术提供的一种JS代码的测试方法,运行速度快,可适用于测试大量的JavaScript代码,测试效率较高,而且测试性能好。

A JS Code Testing Method, Storage Media, Equipment and System

【技术实现步骤摘要】
一种JS代码的测试方法、存储介质、设备和系统
本专利技术涉及人机识别
,具体涉及一种JS代码的测试方法、存储介质、设备和系统。
技术介绍
JS,全称为JavaScript,是因特网上最流行的脚本语言,其可以在所有主要的浏览器中运行,比如InternetExplorer、Chrome、MozillaFirefox、Netscape和Opera等。目前,WEB程序的编程语言是JavaScript,其是一种动态脚本语言,发布时相当于是源码发布,造成其极易被破解,对于一些核心的JavaScript代码,则很多开发者会编写代码来生成JavaScript的代码,从而可以经常的进行更换和加强其安全性。同时,为了保障自动生成的JavaScript代码的准确性,则需要一种方法来对自动生成的JavaScript代码进行测试,以验证自动生成的代码是否准确。现有技术中,测试自动生成的JavaScript代码是否正确的方法是:将生成的JavaScript代码放到浏览器中运行从而查看运行的结果是否正确。然而,由于在生成JavaScript代码时会依据各种条件生成大量的JavaScript代码,例如,在验证登录的用户名是否正确时,由于用户名可能是全中文、全英文、字符或其他任意方式的组合等,因此,在测试时,需要分别对各种不同类型的用户名进行测试,即对应有大量测试用的JavaScript代码,若将这些大量的JavaScript代码均放到浏览器中去执行,过程繁琐,使用起来非常不便。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种JS代码的测试方法,运行速度快,可适用于测试大量的JavaScript代码,测试效率较高,而且测试性能好。为达到以上目的,本专利技术采取的技术方案是:一种JS代码的测试方法,其用于测试JS代码是否正确,包括步骤:在JS代码中集成JS引擎,并编写一用于执行JS代码的JS引擎接口,调用JS引擎接口得到JS代码的执行结果;编写与所述JS代码功能相同的编译型语言代码,并执行所述编译型语言代码,获得该编译型语言代码的执行结果;比较JS代码的执行结果和编译型语言代码的执行结果是否一致,并根据比较结果判断所述JS代码是否正确。在上述技术方案的基础上,编写一用于执行JS代码的JS引擎接口的具体步骤为:创建JS引擎的全局初始化和环境;创建隔离区;设置JS引擎独立运行的环境;管理本地的Handle对象;创建运行的上下文;创建字符串转换对象;编译原始的JS代码;执行编译好的JS代码。在上述技术方案的基础上,所述JS引擎为V8引擎。在上述技术方案的基础上,所述编译型语言代码为C语言代码。本专利技术还提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。本专利技术还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。本专利技术还提供了一种JS代码的测试系统,所述系统包括第一模块、第二模块和比较模块;所述第一模块用于在JS代码中集成JS引擎,并编写一用于执行JS代码的JS引擎接口,调用JS引擎接口得到JS代码的执行结果;所述第二模块用于编写与待测试JS代码功能相同的编译型语言代码,并执行所述编译型语言代码,获得该编译型语言代码的执行结果;所述比较模块用于比较JS代码的执行结果和编译型语言代码的执行结果是否一致,并根据比较结果判断所述JS代码是否正确。在上述技术方案的基础上,所述第一模块包括创建单元、设置单元、管理单元、编译单元和执行单元;所述创建单元用于创建JS引擎的全局初始化和环境,并创建隔离区,还用于创建运行的上下文,并创建字符串转换对象;所述设置单元用于设置JS引擎独立运行的环境;所述管理单元用于管理本地的Handle对象;所述编译单元用于编译原始的JS代码;所述执行单元用于执行编译好的JS代码。在上述技术方案的基础上,所述JS引擎为V8引擎。在上述技术方案的基础上,所述编译型语言代码为C语言代码。与现有技术相比,本专利技术的优点在于:本专利技术的JS代码的测试方法,通过在JS代码中集成JS引擎,并编写一用于执行JS代码的JS引擎接口,调用JS引擎接口得到JS代码的执行结果,同时,编写与待测试JS代码功能相同的编译型语言代码,并执行编译型语言代码,获得该编译型语言代码的执行结果,再对比两个执行结果是否一致,来判断待测试的JS代码是否正确,此种对比方法,运行速度快,可以快速测试出JS代码是否正确,从而可适用于测试大量的JavaScript代码,测试效率较高,而且测试性能好。附图说明图1为本专利技术实施例中JS代码的测试方法的流程图;图2为本专利技术实施例中电子设备的连接框图。具体实施方式以下结合附图及实施例对本专利技术作进一步详细说明。参见图1所示,本专利技术实施例提供一种JS代码的测试方法,其用于测试JS代码是否正确,在本专利技术实施例中,该待检测的JS代码为自动生成的JavaScript代码,以实现加法功能的JavaScript代码为例,该JavaScript代码如下:functionAddFunc(a,b){returna+b;}Varresult1=AddFunc(2,3);Varresult2=AddFunc(-5,3);Varresult3=AddFunc(-5,-3);Varresult4=AddFunc(0,0);Varresult5=AddFunc(4294967295,2);上述自动生成的JavaScript代码是一个加法函数,用于计算2个变量相加的结果。本专利技术实施例中一种JS代码的测试方法具体包括步骤如下:S1:在JS代码中集成JS引擎。在本专利技术实施例中,JS引擎选用的是V8引擎,由于V8引擎是开源的,可以在网上下载其相关源码进行编译,最终则可以编译出相应的库文件,从而在工程中引入库文件及相关头文件则可以使用V8引擎相应的功能,使用起来更加方便。S2:编写一用于执行JS代码的JS引擎接口,在本专利技术实施例中,需要编写V8引擎的接口来执行相应的JavaScript的代码。具体接口如下:Result=ExcuteJs(char*strJsCode,char*pName);其中,接口名称是ExcuteJs,参数char*strJsCode则是要传入的JavaScript的代码,参数char*pName则是要获取的变量名称,Result则是得到的JS代码的执行结果。编写一用于执行JS代码的JS引擎接口的具体步骤为:S201:创建JS引擎的全局初始化和环境,在本实施例中,具体为创建V8的全局初始化和环境,实现代码如下:v8::V8::InitializeICU();通过V8的接口InitializeICU来初始化V8引擎的国际化库。v8::Platform*pV8Platform=v8::platform::CreateDefaultPlatform();v8::V8::InitializePlatform(pV8Platform);v8::V8::Initialize()。S202:创建隔离区,实现代码如下:v8::Isolate*isolate=v8::Isolate::New(create_params);创建本文档来自技高网...

【技术保护点】
1.一种JS代码的测试方法,其用于测试JS代码是否正确,其特征在于,包括步骤:在JS代码中集成JS引擎,并编写一用于执行JS代码的JS引擎接口,调用JS引擎接口得到JS代码的执行结果;编写与所述JS代码功能相同的编译型语言代码,并执行所述编译型语言代码,获得该编译型语言代码的执行结果;比较JS代码的执行结果和编译型语言代码的执行结果是否一致,并根据比较结果判断所述JS代码是否正确。

【技术特征摘要】
1.一种JS代码的测试方法,其用于测试JS代码是否正确,其特征在于,包括步骤:在JS代码中集成JS引擎,并编写一用于执行JS代码的JS引擎接口,调用JS引擎接口得到JS代码的执行结果;编写与所述JS代码功能相同的编译型语言代码,并执行所述编译型语言代码,获得该编译型语言代码的执行结果;比较JS代码的执行结果和编译型语言代码的执行结果是否一致,并根据比较结果判断所述JS代码是否正确。2.如权利要求1所述的JS代码的测试方法,其特征在于:编写一用于执行JS代码的JS引擎接口的具体步骤为:创建JS引擎的全局初始化和环境;创建隔离区;设置JS引擎独立运行的环境;管理本地的Handle对象;创建运行的上下文;创建字符串转换对象;编译原始的JS代码;执行编译好的JS代码。3.如权利要求1所述的JS代码的测试方法,其特征在于:所述JS引擎为V8引擎。4.如权利要求1所述的JS代码的测试方法,其特征在于:所述编译型语言代码为C语言代码。5.一种存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现上述权利要求1至4中任一项所述方法的步骤。6.一种电子设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,其特征在于:所述...

【专利技术属性】
技术研发人员:周志刚张文明陈少杰
申请(专利权)人:武汉斗鱼网络科技有限公司
类型:发明
国别省市:湖北,42

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

1