一种测试方法、装置及系统与流程

文档序号:15076566发布日期:2018-08-01 01:52阅读:109来源:国知局
本申请涉及信息
技术领域
,尤其涉及一种测试方法、装置及系统。
背景技术
:随着信息技术的发展,人们越来越多的使用移动终端执行业务,进而使得用户对于移动终端提供的服务提出了越来越多的需求,而如何提供满足用户需求的服务就成了服务提供方的重点关注的问题。在现有技术中,在移动终端上运行的应用主要可分为三类,即,网页应用webapp、混合模式移动应用hybridapp以及原生应用nativeapp。其中,由于nativeapp基于原生代码编写,可以提供更丰富的功能,所以通常用于编写功能完善的应用,用于提供更丰富功能的应用以及更佳的体验,而webapp由于通常基于脚本语言(如,javascript)编写,具备编写方便且配置更加灵活的特点,所以通常用于编写简单的应用或者功能,但是webapp难以实现复杂的功能,使得webapp能够提供的用户体验相对nativeapp较低。而基于上述的nativeapp以及webapp的优点,人们发明了混合应用hybridapp,利用webapp编写方便且配置更加灵活,以及nativeapp可实现丰富功能的特点,hybridapp利用nativeapp为框架使hybridapp具有实现丰富功能的可能,并且通过webapp实现不同功能的灵活部署。但是,在工作人员(即,用户)开发应用的过程中,需要对编写好代码的应用进行测试,而无论是原生应用还是混合应用中涉及到原生代码的部分,由于原生代码无法直接运行,所以在对这类应用进行测试时通常需要先将编写好的应用的代码进行打包,得到一个可在终端设备上运行的可执行文件(即,该应用),进而通过在该终端设备上运行该可执行文件,对该应用进行测试。这就使得,用户在开发一个应用时,首先需要编写好该应用所使用的代码,再将这些代码打包成可执行文件,之后再将该可执行文件发送至终端设备,并通过该终端设备安装该可执行文件、对该可执行文件进行预处理、编译、汇编、链接等步骤,并运行该可执行文件后,才可在该终端设备上渲染出该可执行文件的界面,用户才可查看该应用的开发情况,并进行后续对该应用的测试。进一步地,当用户需要继续对该应用的代码进行修改时,在用户修改完该应用的代码后,仍然需要重复上述过程,才可以在该终端设备上查看该应用的开发情况,使得该用户无法实时查看其修改的代码所带来的渲染效果的变化。可见,在现有的app开发过程中,若涉及到原生代码级别的应用编写、修改等过程,用户无法实时的查看对应用的代码进行编写、修改后,该应用的渲染效果,而还需要等待该终端设备运行该应用对应的可执行文件,使得开发测试工作的效率降低。技术实现要素:本申请实施例提供一种测试方法,用于解决由于现有技术在原生代码级别的应用编写、修改等过程中,用户无法实时的查看对代码编写、修改后,该代码对应的渲染效果,而还需要等待该终端设备运行该应用,使得开发测试工作的效率降低的问题。本申请实施例提供一种测试装置,用于解决由于现有技术在原生代码级别的应用编写、修改等过程中,用户无法实时的查看对代码编写、修改后,该代码对应的渲染效果,而还需要等待该终端设备运行该应用,使得开发测试工作的效率降低的问题。本申请实施例提供一种测试系统,用于解决由于现有技术在原生代码级别的应用编写、修改等过程中,用户无法实时的查看对代码编写、修改后,该代码对应的渲染效果,而还需要等待该终端设备运行该应用,使得开发测试工作的效率降低的问题。本申请实施例采用下述技术方案:一种测试方法,所述方法用于开发测试阶段或程序编辑阶段,包括:接收监听指令,并监听目标文件;在接收到对所述目标文件的确认指令时,根据预先设置的代码转换文件,将所述目标文件对应的原生代码转换为脚本语言代码;通过与测试界面建立的通信通道将所述脚本语言代码发送至所述测试界面,以通过所述测试界面运行所述脚本语言代码,显示根据所述脚本语言代码渲染得到的界面。一种测试方法,所述方法用于开发测试阶段或程序编辑阶段,提供用于测试的终端设备,包括:所述终端设备与服务器建立通信通道;所述终端设备接收所述服务器发送的待渲染的目标文件,其中,所述目标文件的脚本语言代码是通过所述服务器预先设置的代码转换文件转换得到的;所述终端设备运行所述目标文件的脚本语言代码,显示渲染得到的。一种测试装置,用于开发测试阶段或程序编辑阶段,包括:监听模块,接收监听指令,并监听目标文件;转换模块,在接收到对所述目标文件的确认指令时,根据预先设置的代码转换文件,将所述目标文件对应的原生代码转换为脚本语言代码;测试模块,通过与测试界面预先建立的通信通道将所述脚本语言代码发送至所述测试界面,以通过所述测试界面运行所述脚本语言代码,显示根据所述脚本语言代码渲染得到的界面。一种测试装置,用于开发测试阶段或程序编辑阶段提供测试,包括:建立通信模块,与服务器建立通信通道;接收模块,接收所述服务器发送的待渲染的目标文件,其中,所述目标文件的脚本语言代码是通过所述服务器预先设置的代码转换文件转换得到的;测试模块,运行所述目标文件的脚本语言代码,显示渲染得到的界面。一种测试系统,所述系统用于开发测试阶段或程序编辑阶段,包括:服务器以及与所述服务器建立通信通道的终端设备,其中:所述服务器,接收监听指令,监听目标文件,并在接收到对所述目标文件的确认指令时,根据预先设置的代码转换文件,将所述目标文件对应的原生代码转换为脚本语言代码,并通过所述通信通道,将所述脚本语言代码发送至所述终端设备;所述终端设备,运行所述目标文件的脚本语言代码,显示渲染得到的界面。本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:首先,服务器根据用户的监听指令,监听目标文件,之后,根据用户的确认指令,将该目标文件对应的原生代码转换为js代码,之后在根据预先与测试界面建立的通信通道,将该目标文件对应的js代码发送至该测试界面,使得该测试界面通过运行该目标文件对应的js代码,渲染出该目标文件对应的界面。可见,用户无需等待服务器对目标文件对应的原生代码进行打包,得到可执行应用后,再传输给该测试界面,并使该测试界面通过安装该打包后的应用后,再查看该目标文件对应的原生代码的渲染效果,而可以通过该服务器转换该目标文件对应的原生代码,使得该测试界面无需安装打包后的该应用,就可以直接运行该目标文件对应的js代码,使得该测试界面可以实时的显示该目标文件渲染出的界面,可以提高测试效率。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1为本申请实施例提供的一种测试的过程;图2为本申请实施例提供的该服务器生成的二维码的示意图;图3(a)为本申请实施例提供的位于不同终端设备的测试界面与该服务器建立通讯链接的示意图;图3(b)为本申请实施例提供的位于不同终端设备的测试界面与该服务器建立通讯链接的示意图;图4为本申请实施例提供的另一种测试的过程;图5为本申请实施例提供的测试界面与该服务器建立通讯链接后的界面示意图;图6为本申请实施例提供的测试的详细过程示意图;图7为本申请实施例提供的一种测试装置的结构示意图;图8为本申请实施例提供的另一种测试装置的结构示意图;图9为本申请实施例提供的原生代码的编辑界面与测试界面位于不同设备中时测试的系统的结构示意图;图10为本申请实施例提供的原生代码的编辑界面与测试界面位于同一设备中时测试的系统的结构示意图。具体实施方式为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。以下结合附图,详细说明本申请各实施例提供的技术方案。图1为本申请实施例提供的一种测试的过程,具体可包括以下步骤:s101:接收监听指令,并监听目标文件。在现有技术中,工作人员在开发、测试应用时,需要在自己工作的终端(通常可以是个人电脑)上编写该应用的代码,并在编写好该应用的代码后,将该代码打包为可执行文件,再在对应的终端设备(通常为事先准备的用于测试的终端)上安装该可执行文件后,运行该安装后的应用,以对该应用进行测试。也就是说,工作人员通常可以自行建立一个测试环境,并在该测试环境中进行任务测试,其中,该工作人员编写该应用的代码的终端可以将所编辑的代码发送给用于测试的服务器,由服务器将这些代码转发给运行该应用的终端,即该终端设备。同理,在本申请实施例中,该用户(即,工作人员)也可将自己的个人电脑作为服务器,将预先准备的移动终端作为提供测试的终端设备,通过个人电脑与移动终端之间的数据连接进行代码测试,这里不做具体限定。另外,由于在进行应用的开发和测试时,用户也可以使用同一台设备进行应用的开发编辑以及该应用的测试,例如,通过在该服务器(例如:个人电脑)中安装模拟器的方式,模拟一个终端设备,并在该模拟的终端设备上的测试界面进行测试。同理,在本申请实施例中,该服务器上可同时运行有编辑该应用的代码的界面以及对该应用进行测试的测试界面。当然,在本申请中,并不限定该测试界面是位于该终端设备中,还是位于该服务器中。于是,在本申请实施例中该服务器可以是通过node.js编写的,由于该用户可在该服务器上编写该应用的代码,所以该服务器可以接收该用户输入的监听指令,并根据该监听指令监听目标文件,该目标文件可以是该用户编写的该应用,则当该用户对该应用的代码进行编写时,该服务器可以监听该应用的代码。其中,由于node.js提供有监听功能(watchfile),所以该服务器内可以集成有该监听功能,则当该服务器在接收到该用户输入的监听指令时,该服务器可以通过调用该监听功能,监听该服务器上的该目标文件。另外,由于通过原生代码编写的应用存在本申请中所述的,用户无法实时的查看对该应用在编写、修改后对应的渲染效果,使得开发测试工作的效率降低的问题,所以在本申请中,该目标文件可以是通过原生代码编写的应用,该原生代码可以是通过领域特定语言(domain-specificlanguages,dsl)编写的。具体的,该服务器可以接收用户输入的监听指令,该监听指令可以携带有目标地址,其中,该目标地址,可以是该服务器中的某一个文件目录的地址,或者某一个地址路径的地址,则该服务器可以根据该地址路径或者该文件目录,确定存储在该地址路径上的文件,或者确定该文件目录下的文件,并将该确定的文件作为该目标文件进行监听。并且,该监听指令可以是以获取请求的形式由该用户输入的,例如,某用户通过在该服务器上输入利用shell命令行模拟发起一次post请求,使该服务器接收该post请求,并根据该post请求监听该服务器本地址路径user/ceshikaifa/.oreo/a上的文件,即,文件a。由于通过shell命令行模拟发起针对一个地址的post请求已经是现有技术中的基本方法,所以本申请对此不再赘述。进一步地,当本申请所述的测试界面位于该服务器中时,该服务器中用于编辑该应用的代码的编辑界面可以与该测试界面建立在该服务器内部的通讯通道,并在后续步骤中进行数据的传输。而当本申请所述的测试界面所在的终端设备与该服务器是不同的设备(即,用户通过个人电脑开发移动终端的应用的情况)时,为了使该终端设备可以获取该服务器上的该用户编写的该应用的代码,并在后续测试过程中运行该应用的代码,所以该服务器还可以预先与该终端设备建立通信通道。具体的,首先,该服务器可以根据该服务器的本地互联网协议(internetprotocol,ip)地址,和/或该服务器本地的网络通信协议(transmissioncontrolprotocol/internetprotocol,tcp/ip协议)端口号,生成该服务器的访问路径。其中,该访问路径可以是统一资源定位符(uniformresourcelocator,url),该url的格式可以是二维码,该端口号可以是该服务器随机选择的一个空闲端口号,即,tcp/ip协议中以数字0~65535为标识的端口中的任一一个空闲端口对应的标识。例如,某开发人员,以其工作用的电脑作为服务器,该服务器的ip地址为30.7.91.252,该服务器随机选择的空闲端口的标识为7001,即,端口号为7001,则该服务器可以生成的url为“30.7.91.252:7001”,并且可生成对应的二维码。如图2所示。图2为本申请实施例提供的,该服务器提供的访问路径对应的二维码的示意图。当然,如何将访问路径生成为二维码已经是现有技术中较为成熟的方法,本申请对此不再赘述。其次,该服务器可将该访问路径提供给该终端设备,由于在测试环境下,该终端设备的使用者与该服务器的使用者,都是可以是该用户,并且由于该访问路径可以是二维码,所以该用户可以使用该终端设备获取该二维码,并通过该二维码建立与该服务器之间的通信连接。其中,该通讯连接可以是websocket双通道通信,具体可参考互联网协议文件(requestforcomments,rfc)第6455号,该终端设备可以通过传感器对该二维码进行扫描操作,以获取该二维码,该传感器可以是摄像头。当然,由于在现有技术中通常设备,通过该服务器的访问路径的url,可以直接访问该服务器,所以在本申请实施例中,该服务器也可将该url直接发送至该终端设备,则该终端设备通过该url可访问该服务器,并与该服务器建立通信通道。具体的,该服务器通过何种方法向该终端设备提供该访问路径,本申请并不做具体限定,只需要通过该访问路径可以使该服务器与该终端设备建立通信通道即可。于是,当该终端设备通过识别该二维码或者该url后,该服务器便可以建立与该终端设备之间的双通道通信,则该服务器后续可以根据该用户输入的确认指令,将该服务器中的目标文件传输给该终端设备。需要说明的是,该服务器可安装与该用户的设备上,该设备可以是该用户的个人电脑等设备,该服务器可以是通过node.js编写的服务器,也可以是通过其他语言编写的服务器,如,c语言,java语言等等,本申请对此不做具体限定。s102:在接收到对所述目标文件的确认指令时,根据预先设置的代码转换文件,将所述目标文件对应的原生代码转换为脚本语言代码。在本申请实施例中,该服务器在根据该监听指令监听该目标文件(即,后续需要进行测试的应用)之后,该用户还可对该应用的代码进行编写、修改等操作,直至该用户需要对该应用进行测试。但是,在该用户将该应用的代码编写完成或者修改完成之前,该应用的代码可能还是不完整的代码,所以即使将该不完整的代码打包,也难以生成一个可执行文件在该终端设备或者该服务器上安装、运行,所以通常在该应用编写完成之前,并没有进行测试的必要。于是,在本申请实施例中,在该用户对该应用的代码完成编写、修改之前,该服务器可以无需对该应用的代码进行任何操作,但是,为了使该服务器确定该用户需要对该应用进行测试,在本申请中,该服务器还可以接收该用户输入对该目标文件的确认指令后,并且确认该目标文件需要进行测试,并执行后续操作。具体的,由于脚本语言代码是可以直接执行的代码,所以通过脚本语言代码编写的应用,通常无需提供该代码的一方(如,服务器)将该代码进行打包之后,生成可执行文件,而同时运行该可执行文件的一方(如,对该应用进行测试的终端)也无需对该脚本语言代码进行预处理、编译、汇编等操作,而可直接执行,所以在本申请中,当该服务器接收到该用户输入的确认指令之后,该服务器可以根据预先设置的代码转换文件中的代码转换工具,将该目标文件(即,该应用)的原生代码转换为脚本语言代码,以便后续进行测试时,该终端设备或该服务器无需进预处理、编译、汇编等操作,而可以至接运行该应用对应的脚本语言代码,提高测试效率。其中,该服务器可以监测该用户输入的针对该目标文件的确认指令,并根据该确认指令以及预先设置的代码转换文件提供的代码转换工具的应用程序编程接口(applicationprogramminginterface,api),将该应用的原生代码发送至该代码转换工具的api,并得到转换脚本语言代码。其中,该应用的代码可以是原生代码,如,领域特定语言,该脚本语言代码可以是javascript代码,即,js代码。并且,由于在现有技术中已经存在多种的将原生代码转换为脚本语言代码的代码转换工具,例如,跨平台移动开发工具weex提供的weex文件的代码转换工具的接口(即,weextoolapi),该weextoolapi可以将该通过领域特定语言编写的原生级别的代码,转换为js代码,也就是说,可以将原生级别的应用转换为js文件。另外,由于本申请中该服务器可以集成有该weextoolapi,所以该服务器可以将weex文件转换为js文件,所以在本申请实施例中,该服务器可以先确定该目标文件为weex文件,并通过该weextoolapi将该weex文件转换为js文件,即,将该weex文件的领域特定代码,转换为对应的js代码。当然,若该服务器可集成有将java语言转换为js语言的软件工具包,则该服务器也可将java文件转换为js文件,本申请对此不做具体限定。s103:将所述脚本语言代码发送至所述测试界面。在本申请实施例中,当该服务器将该目标文件(即,该需要进行测试的应用)的原生代码转为脚本语言代码之后,该服务器还可将该目标文件对应的脚本语言代码发送至该测试界面,以使得该测试界面通过运行该脚本语言代码,渲染出该目标文件对应的界面,并进行测试。具体的,当该测试界面位于终端设备中时,如在步骤s101中所述的,该服务器可以预先与该终端设备建立双通道通信,所以该服务器在将该应用的原生代码转换为脚本语言代码之后,便可主动向该终端设备发送该脚本语言代码,而无需等待该终端设备向该服务器发出获取该应用的请求。并且,由于该服务器可以直接发送该应用对应的脚本语言代码,所以相对于现有技术,该服务器无需再对该应用的代码进行打包操作,使该应用的代码生成为可执行文件,减少了该服务器耗费的时间,也减少了该用户等待的时间。而当该测试界面位于该服务器中时,如在步骤s101中所述的,该服务器上的该应用的原生代码的编辑界面与该测试界面之间预先建立了通信通道,则该服务器中的该编辑界面可以根据调用指令将该脚本语言代码发送至该服务器中的该测试界面,并使得该测试界面运行该脚本语言代码,渲染得到该脚本语言代码对应的界面。其中,该调用指令可以是用户通过该测试界面向该编辑界面发送的,也可是该用户直接对该编辑界面输入的,由于在现有技术中在同一设备内的数据调用已经是较为成熟的技术,所以在本申请中不限定该编辑界面如何向该测试界面发送该脚本语言代码,并且对此过程也不再赘述。另外,由于该服务器发送的是该应用对应的脚本语言代码,所以该测试界面在接收到该脚本语言代码后,可以直接运行该脚本语言代码,并渲染出该脚本语言代码对应的界面(即,该应用的界面),并使该用户对该应用进行测试,使得相对于现有技术,该用户无需等待对打包后的应用进行预处理、编译等操作,而可以直接看到渲染出的该应用的界面,使得该用户可以实时的看到编写完成后的应用的界面,使该用户的工作效率提高。进一步地,由于该应用是由领域特定语言的代码编写的,是原生级别的应用,而在该测试界面上运行的是脚本语言代码,使得该测试界面渲染出的该界面能够提供的用户体验相对较低,所以为了使该脚本语言代码可以以原生级别的代码的形式运行,并提供较好的用户体验,该终端设备上还可以预先安装有客户端应用,如,该终端设备上可以预先安装有集成weex的软件开发工具包(softwaredevelopmentkit,sdk)的客户端应用,则该脚本语言代码可以在该客户端应用的weex框架中运行,并通过weex框架提供的动态渲染方案,渲染出原生级别的界面。也就是说,虽然该服务器将该应用的原生代码转换为js代码,以便该终端设备可直接运行该应用对应的js代码,但是通过该终端设备上的客户端应用,使得该终端设备通过该js代码渲染得到原生级别的界面,使该用户编写的该应用的效果可较完整的显示在该终端设备上,并使该用户继续进行测试。或者,该服务器上的测试界面是集成有该weexsdk的,则当该测试界面位于该服务器中时,该测试界面也可通过该js代码渲染得到原生级别的界面。更进一步地,该测试界面在渲染出该界面后,该用户后续就可以采用与现有技术相同的方法进行测试,本申请对具体的测试过程不做具体限定,该用户可以根据实际应用时的需要选择测试方法进行测试,本申请不再赘述。通过如图1所示的测试的方法,用户在进行应用测试时,可将编写该目标文件(即,该应用)的代码的设备作为服务器,将运行该应用的代码的测试界面所在设备作为终端设备(其中该终端设备与该服务器可以是同一个设备,也可是不同的设备),当该终端设备与该服务器不是同一设备时,通过建立该服务器与该测试界面的双通道通信,使得该服务器可以将该服务器上的该应用传输至该终端设备的测试界面中,当该终端设备与该服务器是同一设备时,则直接将该脚本语言代码发送至该测试界面中,并且,由于该服务器可通过预先设置的代码转换工具的接口,将该应用的原生代码转换为脚本语言代码,所以该服务器可以将该应用对应的脚本语言代码发送至该测试界面,使得该服务器以及该测试界面无需再进行现有技术中的打包、预处理、编译等操作过程,而使该测试界面可直接运行该脚本语言代码,并显示渲染出的界面使该用户进行测试。同时,当该测试界面集成weexsdk时,该测试界面还可以通过weex框架运行该脚本语言代码,使得该测试界面渲染出的界面达到与原生代码编写的应用渲染出的界面相应的水平。可见,通过本申请提供的测试方法,用户无需等待服务器对应用的代码进行打包,得到可执行应用后,再传输给该测试界面,并通过安装该打包后的应用后,再查看该应用的代码的渲染效果,而可以通过该服务器转换该应用的代码,使得无需安装打包后的该应用,就可以直接运行该应用的代码,使得该测试界面可以实时的显示该应用的代码渲染出的界面,在提高渲染效率的同时,提高了测试效率。另外,在本申请步骤s102中,由于该服务器使用的可以是weextoolsapi将该应用的原生代码转换为js代码,而该weex工具包通常可对文件格式为.we的文件(即,weex文件)进行代码转换,所以在本申请中,该服务器在对该目标文件的代码进行代码转换时,还可以先判断该目标文件的文件格式是否为.we格式,若是,则继续进行转换,若否,则返回错误信息,并提示该用户仅能对.we格式的文件进行代码转换。进一步地,由于用户有可能有需要对不同的应用进行开发、测试,或者对一个应用的多种编写方式分别进行测试的需要,所以该服务器可以分别为不同的终端设备提供不同的通信通道,以在多个终端设备上进行对不同的代码进行渲染。具体的,由于在本申请步骤s101中,该服务器通过一个空闲的端口号生成了该终端设备访问该服务器的访问路径,所以该服务器还可以同时对多台设备提供由不同的端口号生成的访问路径,使得该服务器可以同时为多台测试设备提供不同的通信通道,如表1所示。访问路径测试设备30.7.91.252:7001移动终端130.7.91.252:7022移动终端230.7.91.252:501移动终端330.7.91.252:99移动终端4表1通过表1可见,该移动终端1~4均与该服务器建立通信通道,并且是通过不同的访问路径与该服务器建立通信通道的,所以该服务器可以分别对各终端设备发送不同的文件,以使得不同的终端设备可运行对不同代码并进行测试任务。需要说明的是,本申请实施例所提供方法的各步骤的执行主体均可以是同一设备,即,该服务器可以是同一设备,当然,若该用户使用多台设备组成的系统编写该目标文件的代码,则本申请实施例所提供方法的各步骤的执行主体也可以是不同的设备,如,步骤s101和步骤s102的执行主体可以为设备1,步骤s103的执行主体可以为设备2;又比如,步骤s101的执行主体可以为设备1,步骤s102和步骤s103的执行主体可以为设备2;等等。另外,该终端设备可以是手机、平板电脑等设备。另外,由于在本申请实施例中,该服务器可以与该终端设备建立双通道通信,所以该服务器可以通过该双通道通信中的第一通道接收该终端设备发送的信息、请求、指令等等,并且也可通过该双通道通信中的该第一通道或者该第二通道向该终端设备发送该脚本语言代码。由于双通道通信已经是现有技术中较为成熟的技术,所以本申请对此不再做具体限定,也不再赘述,具体使用方式,可由该用户根据实际应用的需要进行设置。在本申请实施例中,测试界面可以位于一个终端设备中,也可以位于不同的终端设备中,即针对同一个原生代码的编辑界面可以由多个测试界面,且这些测试界面可以位于不同的终端设备中,这些终端设备所支持的操作系统可以相同,也可以不同,这里不做具体限定。在本申请实施例中,针对测试页面位于不同的终端设备上的情形,将所述脚本语言代码发送至所述测试界面,包括:首先,若所述测试界面位于至少一个终端设备,且所述终端设备与原生代码的编辑界面不属于同一个设备时,分别与所述测试界面位于的不同所述终端设备建立通信通道。也就是说,服务器可以分别与所述测试界面位于的不同所述终端设备建立通信通道,这里的通信通道也可以双通道。具体地,服务器可以根据互联网协议ip地址和/或网络通信协议端口号生成的访问路径,并分别将所述访问路径发送给所述测试界面位于的不同所述终端设备;通过所述访问路径与所述测试界面位于的不同所述终端设备建立通信通道。较优地,服务器在得到访问路径时,还可以根据所述访问路径得到二维码图片,所述二维码图片中携带所述服务器的ip地址和/或网络通信协议端口号;将所述二维码图片广播给所述测试界面位于的不同所述终端设备。其次,根据不同的所述通信通道,分别将所述脚本语言代码发送给所述测试界面位于的不同所述终端设备,使不同的所述终端设备运行所述脚本语言代码,并显示根据所述脚本语言代码渲染得到的界面。图3(a)为本申请实施例提供的位于不同终端设备的测试界面与编辑界面建立通讯链接的示意图。从图3(a)可以看出,开发者可以在一台用户设备提供的编辑界面中编辑原生代码,之后,可以将编辑的原生代码发送给服务器,由服务器将该原生代码经过转化得到运行的脚本语言代码发送给不同的提供测试界面的终端设备,进而在不同的终端设备上进行测试,且还可以通过终端设备上的测试界面查看测试结果,并向修改意见反馈给服务器,在由服务器将这些修改意见反馈给用户设备,使得开发者能够根据修改意见对原生代码进行修改。这种模式可以实现远程调试,使得开发变得更加灵活。图3(b)为本申请实施例提供的位于不同终端设备的测试界面与编辑界面建立通讯链接的示意图。然而图3(b)与图3(a)的区别在于:在用户设备上不仅包含编辑界面,也包含了测试界面,即脚本语言代码不仅能够通过服务器发送给不同的终端设备,开发者也可以在用户设备上直接查看测试结果,对于不同终端设备提出的修改意见,能够准确定位问题,加快修改速度,这种模式使得远程调试更加灵活。在本申请实施例中所记载的服务器可以是用于进行数据传输的服务器,也可以是能够提供编辑界面和/或测试界面的设备,这里不做具体限定。基于图1所示的测试的过程,本申请还对应提供一种终端设备执行的测试的过程,如图4所示。图4为本申请实施例提供的另一种测试的过程,具体包括以下步骤:s201:所述终端设备与服务器建立通信通道。在本申请实施例中,由于该终端设备需要运行该用户编写的应用,所以该终端设备可先与该服务器建立通信通道,以便该终端设备获得该应用,并进行后续的步骤。具体的,该终端设备可以通过预先安装的客户端应用,获取该服务器提供的该访问路径,并通过该访问路径建立与该服务器之间的通信通道,其中,该通信通道可以是双通道通信,如,websocket,该客户端应用可以是集成有weexsdk的应用。并且,由于该服务器可以提供url作为该服务器的访问路径,并且该url可以是二维码形式的,所以该客户端应用可通过调用该终端设备的传感器,扫描该服务器提供的该二维码,从而与该服务器建立通信通道。例如,该服务器可以向该终端设备提供如图2所示的二维码,则该终端设备可以通过该客户端应用调用该终端设备的摄像头,获取该服务器提供的该二维码,并通过识别该二维码建立与该服务器的双通道通信,可如图4所示。图5为本申请实施例提供的终端设备与该服务器建立通讯链接后的界面示意图。可见,该终端设备中运行的该客户端应用显示“已连接”。由于在现有技术中通过应用获取二维码,并通过对该二维码的识别,建立设备之间的通信通道已经较为成熟,所以本申请对此具体过程不再赘述。s202:所述终端设备接收所述服务器发送的待渲染的目标文件。s203:所述终端设备运行所述目标文件的脚本语言代码,显示渲染得到的界面。在本申请实施例中,由于该终端设备与该服务器可以建立双通道通信(具体可以是由该终端设备上的该客户端应用,与该服务器建立双通道通信),所以该服务器可以直接向该终端发送该待渲染文件,于是,该终端设备可运行该待渲染文件,兵在该终端设备上渲染出该待渲染文件对应的界面。其中,该待渲染文件可以是脚本语言代码编写的。具体的,由于在图1所示的渲染过程步骤s102中所述的,该服务器可以讲该目标文件(即,待渲染文件)对应的代码转换为脚本语言代码,所以该终端设备的客户端应用在接收到该待渲染文件之后,可以直接运行该待渲染文件,并在该客户端应用上显示渲染后的界面。另外,由于在步骤s201中所述的,该终端设备中安装的该客户端应用可集成weexsdk,所以在本申请中,该客户端应用可以通过该weex框架,运行该待渲染文件的脚本语言代码,并通过weex框架中的动态方案,显示渲染出的界面。需要说明的是,该终端设备可以是移动终端,如,手机、平板电脑等设备。基于图1以及图4所示的测试的过程,本申请实施例还对应提供一种渲染的详细过程示意图,如图6所示。图6为本申请实施例提供的测试的详细过程示意图。该测试的详细过程中的执行主体可包括:服务器以及终端设备,即本申请提供的测试的系统。该测试的详细过程具体可以包括一下步骤:s301:该服务器生成可识别的二维码,所述二维码中携带所述服务器的ip地址和/或网络通信协议端口号;s302:该终端设备通过获取该二维码建立与该服务器之间的双通道通信s303:该服务器接收用户输入的监听指令,并监听目标文件;s304:之后当用户在该服务器本地编写完成该目标文件的代码之后,该服务器通过接收用户输入的确认指令,将该目标文件的原生代码转换为脚本语言代码;s305:该服务器,将该脚本语言代码发送至该终端设备;s306:该终端设备通过运行该脚本语言代码,显示渲染得到的界面。其中,该步骤s301以及该步骤s302可以是该服务器以及该终端设备预先进行的,该步骤s304至该步骤s306可以是通过该服务器与该终端之间的双通道通信进行的。当然,由于本申请所涉及的场景为在该终端设备上进行测试的过程,所以通常仅需该服务器向该终端设备发送数据,并且,通过该双通道通信,该服务器可以无需等待该终端设备发送的获取请求,再向该终端设备发送该脚本语言代码。由于双通道通信已经是现有技术中较为成熟的技术,所以本申请对此不再做具体限定。基于图1所示的测试的过程,本申请实施例还对应提供一种测试的装置示意图,如图7所示。图7为本申请实施例提供的一种测试的装置结果示意图,包括:监听模块401,接收监听指令,并监听目标文件;转换模块402,在接收到对所述目标文件的确认指令时,根据预先设置的代码转换文件,将所述目标文件对应的原生代码转换为脚本语言代码;测试模块403,将所述脚本语言代码发送至所述测试界面,以通过所述测试界面运行所述脚本语言代码,显示根据所述脚本语言代码渲染得到的界面。所述监听模块401,接收用户输入的监听指令,根据所述监听指令携带的目标地址,监听所述目标地址对应的文件。所述转换模块402,在确定所述目标文件为weex文件时,根据预先设置的weex文件的代码转换工具,将所述weex文件对应的原生代码转换为脚本语言javascript代码。当原生代码的编辑界面与测试界面位于不同设备中时,所述测试模块403,与所述测试界面建立双通道通信,通过所述双通道通信的第一通道接收所述测试界面发送的获取所述脚本语言代码的请求,根据所述请求,通过所述第一通道将所述脚本语言代码发送至所述测试界面,或者,通过所述双通道通信的第二通道将所述脚本语言代码发送至所述测试界面。在本申请的另一个实施例中,所述测试模块403与所述测试界面建立双通道通信,包括:根据互联网协议ip地址和/或网络通信协议端口号生成的访问路径,并将所述访问路径发送给所述测试界面所在的设备;通过所述访问路径与所述测试界面建立双通信通道。在本申请的另一个实施例中,所述测试模块403将所述脚本语言代码发送至所述测试界面,包括:若所述测试界面位于至少一个终端设备,且所述终端设备与原生代码的编辑界面不属于同一个设备时,分别与所述测试界面位于的不同所述终端设备建立通信通道;根据不同的所述通信通道,分别将所述脚本语言代码发送给所述测试界面位于的不同所述终端设备,使不同的所述终端设备运行所述脚本语言代码,并显示根据所述脚本语言代码渲染得到的界面。在本申请的另一个实施例中,所述测试模块403分别与所述测试界面位于的不同所述终端设备建立通信通道,包括:根据互联网协议ip地址和/或网络通信协议端口号生成的访问路径,并分别将所述访问路径发送给所述测试界面位于的不同所述终端设备;通过所述访问路径与所述测试界面位于的不同所述终端设备建立通信通道。在本申请的另一个实施例中,所述测试模块403分别将所述访问路径发送给所述测试界面位于的不同所述终端设备,包括:在得到访问路径时,根据所述访问路径得到二维码图片,所述二维码图片中携带所述服务器的ip地址和/或网络通信协议端口号;将所述二维码图片广播给所述测试界面位于的不同所述终端设备。当原生代码的编辑界面与测试界面位于同一设备中时,所述测试模块403,调用提供的所述测试界面,将所述脚本语言代码发送所述测试界面。具体的,如图7所示的测试的装置可以位于服务器中,该服务器可以是个人电脑等设备,并且该服务器可以是单独的一台设备,或者是由多台设备组成的系统。基于图4所示的测试的过程,本申请实施例还对应提供一种测试的装置示意图,如图8所示。图8为本申请实施例提供的一种测试的装置结果示意图,包括:建立通信模块501,与服务器建立通信通道;接收模块502,接收所述服务器发送的待渲染的目标文件,其中,所述目标文件的脚本语言代码是通过所述服务器预先设置的代码转换文件转换得到的;测试模块503,运行所述目标文件的脚本语言代码,显示渲染得到的界面。所述建立通信模块501,接收所述服务器发送的访问路径,所述访问路径是所述服务器根据互联网协议ip地址以及网络通信协议端口号生成的,根据所述访问路径建立与所述服务器的通信通道。所述建立通信模块501,获取所述服务器提供的访问路径对应的二维码,识别所述二维码,并确定访问所述服务器的访问路径,通过所述访问路径,建立与所述服务器之间的通信通道。所述建立通信模块501,接收所述服务器发送的访问路径对应的统一资源定位符url,通过所述url,建立与所述服务器之间的通信通道。具体的,如图8所示的测试的装置可以位于移动终端中,该终端可以是手机、平板电脑等设备。另外,由于在本申请步骤s101中所述的,该终端设备与该服务器可以是同一个设备也可以是不同的设备,所以在本申请中,该测试的系统可以如图9或者图10所示。图9为本申请实施例提供的当该原生代码的编辑界面与所述测试界面位于不同设备中时,该测试的系统的结构示意图,所述系统用于开发测试阶段或程序编辑阶段,包括:服务器以及与所述服务器建立通信通道的终端设备,其中:所述服务器,接收监听指令,监听目标文件,并在接收到对所述目标文件的确认指令时,根据预先设置的代码转换文件,将所述目标文件对应的原生代码转换为脚本语言代码,并通过所述通信通道,将所述脚本语言代码发送至所述终端设备;所述终端设备,运行所述目标文件的脚本语言代码,显示渲染得到的界面。所述服务器与所述终端设备建立双通道通信;所述终端设备,通过所述双通信通道的第一通道向所述服务器发送获取所述脚本语言代码的请求;所述服务器,根据所述请求,通过所述双通信通道的第一通道向所述终端设备发送所述脚本语言代码,或者通过所述双通信通道的第二通道向所述终端设备发送所述脚本语言代码。所述服务器与所述终端设备建立双通道通信;所述服务器,在接收到对所述目标文件的确认指令时,通过所述双通信通道的第一通道向所述终端设备发送所述脚本语言代码,或者通过所述双通信通道的第二通道向所述终端设备发送所述脚本语言代码。其中,可见该测试界面位于该终端设备中,该服务器中包括原生代码的编辑界以及该服务器对应的应用,如在步骤s101中所述的该服务器可以是用户开发应用时使用的个人电脑上通过node.js编辑的服务器,也就是说,该服务器可以视为是运行在用于开发的设备上的一个服务器应用,同时该用于开发的设备上还可以同时运行该编辑界面。于是,在该用户可在该用于开发的设备的编辑界面中编辑该应用的原生代码,则该服务器可以通过该用户输入的监听指令,实时的获取该原生代码,并且,该服务器在接收到该用户的确认指令时,将该服务器监听得到的该原生代码,转换为js代码,并通过预先与该终端设备建立的双通道通信,将该js代码发送至该终端设备中,并且该终端设备可通过测试界面运行该js代码,并实时的渲染出该js代码对应的界面,其中该测试界面可集成有weex框架,则该测试界面可将该js代码渲染得到原生级别的界面。于是,该用户只需要在该用于开发的设备上的编辑界面对该应用的代码进行编写,并在编写完成后,通过输入确认指令,在该终端设备上实时的看到编写完成的代码渲染得到的界面。图10为本申请实施例提供的当该原生代码的编辑界面与所述测试界面位于同一设备中时,该测试的系统的结构示意图。其中,可见该测试界面和该原生代码的编辑界面位于同一台设备中,这一设备可以是服务器,也可以是用户设备,这里不做具体限定,图10中所示的设备以服务器为例进行说明。区别于图9所示的测试的系统,图10所示的测试的系统由于该测试界面与该原生代码的编辑界面位于同一台设备中,所以该编辑界面、该测试界面可以位于同一屏幕上,该服务器可以直接调用该测试界面,便可将该js代码发送至该测试界面。于是,用户可以在同一台设备上的编辑界面上编辑该应用的原生代码,并通过输入确认指令,使得同一设备上的测试界面渲染出该应用对应的界面。具体的,该用户可通过该编辑界面输入监听指令,则该服务器可接收该编辑界面发送的监听指令,并根据该编辑指令监听该目标文件,之后,在接收到用户通过该编辑界面输入确认指令时,该编辑界面可通过该数据传输通道发送调用指令,则该服务器可根据该调用指令调用该测试界面,进而该服务器可通过该数据传输通道,将该脚本语言代码发送该测试界面。也就是说,该服务器可以根据该用户在该编辑界面中输入的指令,确定是否需要调用该测试界面,也就是说,该服务器也可已在接收到该用户输入的监听指令后,立刻调用该测试界面,本申请实施例对于该服务器何时调用该测试界面并不作具体限定,只要在对该脚本语言代码进行测试之前,调用该测试界面即可。需要说明的是,由于该测试界面以及该编辑界面均可位于该用于开发的设备中,所以该编辑界面与该测试界面可以建立该设备内部的数据传输通道,则该服务器、该编辑界面以及该测试界面之间可以通过该数据传输通道,直接传输数据,例如,该服务器可将转换完成的该脚本语言代码,通过该数据传输通道直接发送至该测试界面。在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmablelogicdevice,pld)(例如现场可编程门阵列(fieldprogrammablegatearray,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardwaredescriptionlanguage,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmelat91sam、microchippic18f26k20以及siliconelabsc8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1