CN109032705B - 应用程序的执行方法、装置、电子设备及可读存储介质 - Google Patents
应用程序的执行方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN109032705B CN109032705B CN201810729297.3A CN201810729297A CN109032705B CN 109032705 B CN109032705 B CN 109032705B CN 201810729297 A CN201810729297 A CN 201810729297A CN 109032705 B CN109032705 B CN 109032705B
- Authority
- CN
- China
- Prior art keywords
- application program
- page
- debug
- url
- browser kernel
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提出一种应用程序的执行方法、装置及电子设备,其中,方法包括:通过基于与应用程序之间预先建立的连接,获取应用程序H5页面的调试统一资源定位符Debug URL,再根据对应页面的交互指令和页面的Debug URL,向应用程序的浏览器内核发送操作请求,其中,操作请求,用于应用程序利用浏览器内核在Debug URL对应的页面内执行交互指令,得到对应的操作响应,最终根据获取的操作响应,确定应用程序执行是否正确。该方法通过直接与应用程序的X5浏览器内核进行交互,利用X5浏览器内核执行相关交互指令,避免了现有技术中通过ChromeDrvier执行导致的版本依赖问题。
Description
技术领域
本申请涉及移动终端技术领域,尤其涉及一种应用程序的执行方法、装置、电子设备以及可读存储设备。
背景技术
随着互联网技术的快速发展以及智能终端的普及,越来越多的用户***板电脑等移动终端设备上安装的应用程序(Application,APP),来访问网络并获取对应的应用服务。因此,对应用程序H5页面的测试,以测试其运行稳定性、健壮性及其重要。
现有技术中,可以采用Appium测试应用程序内H5页面,但Appium存在ChromeDrvier的版本依赖问题,Appium每次都需要指定测试机***和被测应用信息。
发明内容
本申请提出一种应用程序的执行方法、装置及电子设备,以实现通过直接与应用程序的浏览器内核进行交互,利用浏览器内核执行相关交互指令,避免了现有技术中通过ChromeDrvier执行导致的版本依赖,以及多数android UI自动化测试框架无法测试H5页面的技术问题。
本申请一方面实施例提出了一种应用程序的执行方法,包括:
基于与应用程序之间预先建立的连接,获取应用程序H5页面的调试统一资源定位符Debug URL;
根据对应所述页面的交互指令和所述页面的Debug URL,向所述应用程序的浏览器内核发送操作请求;其中,所述操作请求,用于所述应用程序利用所述浏览器内核在所述Debug URL对应的页面内执行所述交互指令,得到对应的操作响应;
获取所述操作响应;
根据所述操作响应,确定所述应用程序执行是否正确。
本申请实施例的应用程序的执行方法,通过基于与应用程序之间预先建立的连接,获取应用程序H5页面的调试统一资源定位符Debug URL,再根据对应页面的交互指令和页面的Debug URL,向应用程序的浏览器内核发送操作请求,其中,操作请求,用于应用程序利用浏览器内核在Debug URL对应的页面内执行交互指令,得到对应的操作响应,最终根据获取的操作响应,确定应用程序执行是否正确。该方法通过直接与应用程序的浏览器内核进行交互,利用浏览器内核执行相关交互指令,避免了现有技术中通过ChromeDrvier执行导致的版本依赖,以及多数android UI自动化测试框架无法测试H5页面的技术问题。
本申请又一方面实施例提出了一种应用程序的执行装置,包括:
获取模块,用于基于与应用程序之间预先建立的连接,获取应用程序H5页面的调试统一资源定位符Debug URL;
发送模块,用于根据对应所述页面的交互指令和所述页面的Debug URL,向所述应用程序的浏览器内核发送操作请求;其中,所述操作请求,用于所述应用程序利用所述浏览器内核在所述Debug URL对应的页面内执行所述交互指令,得到对应的操作响应;
所述获取模块,还用于获取所述操作响应;
处理模块,用于根据所述操作响应,确定所述应用程序执行是否正确。
所述应用程序的执行装置,还包括:
连接模块,用于根据调试端与运行所述应用程序的移动终端之间建立的调试桥,查询所述移动终端为运行所述应用程序分配的进程;根据所述调试端的预设端口号,以及为运行所述应用程序所分配进程的进程标识,生成连接请求;向所述移动终端发送所述连接请求,以建立所述调试端与应用程序之间的连接。
本申请实施例的应用程序的执行装置,通过基于与应用程序之间预先建立的连接,获取应用程序H5页面的调试统一资源定位符Debug URL,再根据对应页面的交互指令和页面的Debug URL,向应用程序的浏览器内核发送操作请求,其中,操作请求,用于应用程序利用浏览器内核在Debug URL对应的页面内执行交互指令,得到对应的操作响应,最终根据获取的操作响应,确定应用程序执行是否正确。该方法通过直接与应用程序的X5浏览器内核进行交互,利用X5浏览器内核执行相关交互指令,避免了现有技术中通过ChromeDrvier执行导致的版本依赖,以及多数android UI自动化测试框架无法测试H5页面的技术问题。
本申请又一方面实施例提出了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现上述实施例所述的应用程序的执行方法。
本申请又一方面实施例提出了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例所述的应用程序的执行方法。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例所提供的一种应用程序的执行方法的流程示意图;
图2为本申请实施例中调试端与应用程序之间的连接的流程示意图;
图3为本申请实施例所提供的产品侧的应用程序的执行方法的流程示意图;
图4为本申请实施例中测试框架的结构示意图;
图5为本申请实施例所提供的另一种应用程序的执行方法的流程示意图;
图6为本申请实施例所提供的一种应用程序的执行装置的结构示意图;以及
图7为本申请实施例所提供的另一种应用程序的执行装置的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述本申请实施例的应用程序的执行方法、装置及电子设备。
图1为本申请实施例所提供的一种应用程序的执行方法的流程示意图。
需要说明的是,本申请实施例中,运行应用程序的移动终端是Android版本的移动设备。
如图1所示,该应用程序的执行方法包括以下步骤:
步骤101,基于与应用程序之间预先建立的连接,获取应用程序H5页面的调试统一资源定位符Debug URL。
本申请实施例中,首先要在调试端与应用程序之间建立连接,具体如何建立连接参见图2,此处不再做详细介绍。
本申请实施例中,通过预先建立的与应用程序之间的连接,获取应用程序H5页面的调试统一资源定位符(Debug URL),具体地,当应用程序切换H5页面时,向应用程序发送携带端口号的获取指令;其中,获取指令用于通过端口号对应的端口获取切换后的H5页面的Debug URL。再接收应用程序发送的切换后的H5页面的Debug URL。假设端口号为xxx5,则获取指令为http://localhost:xxx5/json。
步骤102,根据对应页面的交互指令和页面的Debug URL,向应用程序的X5浏览器内核发送操作请求;其中,操作请求,用于应用程序利用X5浏览器内核在Debug URL对应的页面内执行交互指令,得到对应的操作响应。
本申请实施例中,用户在移动终端进行手动设置,使得应用程序的浏览器内核处于调试模式。其中,浏览器内核可以为X5浏览器内核,用于对H5页面进行渲染显示。由于X5浏览器内核具有防火墙,在调试模式下X5浏览器内核可以解除防火墙,从而可以与X5浏览器内核连接向移动终端发送信息。
其中,根据对应页面的交互指令和页面的Debug URL,向应用程序的X5浏览器内核操作请求。其中,操作请求,用于应用程序利用X5浏览器内核在Debug URL对应的页面内执行交互指令,得到对应的操作响应。本申请中对应页面的交互指令与应用程序的X5浏览器内核进行直接交互,利用X5浏览器内核执行相关交互指令。
本申请实施例中,向应用程序的X5浏览器内核发送操作请求的过程是同步阻塞模型,具体如下:首先利用预设的单线程池中处于可执行状态的线程,向应用程序的X5浏览器内核发送操作请求;在等待获取操作请求对应的操作响应过程中,设置线程为非可执行状态,进入阻塞状态;当获取到操作响应后,引起阻塞的原因被消除后,设置线程为可执行状态。
由于采用同步阻塞模型时,当用户通过移动终端与应用程序的X5浏览器内核进行交互时,都要创建一个线程,每个线程都会占用资源,创建线程的过程也会占据资源。为了解决同步阻塞模型中,每次交互都要创建一个线程的问题,本申请实施例中,通过预设的单线程池中处于可执行状态的线程来处理任务,不用重新创建线程,因此,本实施例的同步阻塞模型节约了服务器端的资源。步骤103,获取操作响应。
本申请实施例中,在调试端获取操作响应,以根据获取到的操作响应,进一步执行以下步骤。
步骤104,根据操作响应,确定应用程序执行是否正确。
具体地,调试端根据获取到的操作响应,确定应用程序执行是否正确。如果应用程序执行正确,则本实施例中的应用程序的执行方法正确,否则,说明本实施例中的应用程序的执行方法不正确。
作为一种可能的实现方式,在执行步骤101前,要预先建立调试端与应用程序之间的连接,参见图2,具体的连接方式包括以下步骤:
步骤201,根据调试端与运行应用程序的移动终端之间建立的调试桥,查询移动终端为运行应用程序分配的进程。
需要说明的是,调试是在PC端进行的,因此,调试端指的是PC端,首先在调试端通过USB(Universal Serial Bus,通用串行总线)以有线连接的方式与运行应用程序的移动终端建立连接,再建立调试桥,并通过调试桥查询移动终端为运行应用程序分配的进程。
其中,调试桥作为设备调试的重要工具,是一个通用命令行工具,起到连接桥的作用,该工具作为一个客户端-服务器程序,包括三个组件:客户端,该组件发送命令。客户端在调试端运行,可以通过发出调试桥命令从命令行终端调用客户端;后台程序,该组件在设备上运行命令,后台程序在每个模拟器或设备实例上作为后台进程运行;服务器,该组件管理客户端和后台程序之间的通信,服务器在调试端作为后台进程运行。
步骤202,根据调试端的预设端口号,以及为运行应用程序所分配进程的进程标识,生成连接请求。
由于调试端与移动终端之间的通信是通过端口进行的,因此,通过查询调试端开放了哪些端口号,设置预设端口号,并且预设端口号应与正在使用的端口号没有冲突,根据调试端的预设端口号,以及为运行应用程序所分配进程的进程标识,生成连接请求。
其中,进程标识,又称为进程ID,是在运行应用程序时给进程分配的唯一标识进程的一个数值。
步骤203,向移动终端发送连接请求,以建立之间的连接。
具体地,将在上述步骤202中生成的连接请求,发送至移动终端,建立与应用程序的连接。
本申请实施例的应用程序的执行方法,通过基于与应用程序之间预先建立的连接,获取应用程序H5页面的调试统一资源定位符Debug URL,再根据对应页面的交互指令和页面的Debug URL,向应用程序的X5浏览器内核发送操作请求,其中,操作请求,用于应用程序利用X5浏览器内核在Debug URL对应的页面内执行交互指令,得到对应的操作响应,最终根据获取的操作响应,确定应用程序执行是否正确。该方法通过直接与应用程序的X5浏览器内核进行交互,利用X5浏览器内核执行相关交互指令,避免了现有技术中通过ChromeDrvier执行导致的版本依赖问题。
为了更清楚的说明上述实施例的应用程序的执行方法,本实施例中,在通过在产品侧和技术侧介绍了应用程序的执行方法,实现应用程序H5自动化测试,还解决了Appium页面切换识别控件的缺点。本实施例中的应用程序的执行方法,不依赖ChromeDrvier,也不需要指定测试机的***,提高了测试框架的易用性。
该应用程序的执行方法,支持实现H5的页面跳转、控件查找、文本输入、页面滑动等常用界面操作。为了清楚说明用户如何操作,从而实现前述的方法,下面将对用户使用方法进行简要说明。在产品侧的用户使用方法如图3所示,具体的用户使用步骤如下:
步骤301,测试环境准备。
具体地,本测试方法采用Python语言开发,因此用户首先安装python环境,从网站下载python,双击运行下载的python,点击下一步,选择安装目录,进一步的选择环境变量自动配置,开始对python的安装。安装完成后,查看环境配置情况,最后在命令提示符中输入python,验证是否安装成功,若提示是无效的命令,重启计算机,再输入python验证。其中,Python是一种面向对象的解释型计算机程序设计语言,具有丰富和强大的库,能够把其他语言制作的模板很轻松的联结在一起。
进一步的安装测试框架以及调试桥环境,再将被测移动终端的应用程序X5浏览器内核设置为调试模式。由于X5浏览器内核具有防火墙,在调试模式下X5浏览器内核可以解除防火墙,从而可以与X5浏览器内核连接向移动终端发送信息。其中,X5浏览器内核,用于对H5页面进行渲染显示。
步骤302,测试用例编写。
本申请实施例中,建议用户使用python的测试框架unittest,根据项目需求调用本测试框架提供的API(应用程序编程接口,Application Programming Interface)实现具体的测试路径和检查点。其中,API就是操作***留给应用程序的一个调用接口,应用程序通过调用操作***的API而使操作***去执行应用程序的命令。
步骤303,测试执行。
具体地,用户通过执行测试框架unittest的测试用例,获取测试结果。
需要说明的是,测试框架unittest的架构采用的分层设计的思想,参见图4,本申请实施例中,测试框架分为如图4所示的三层,最上层为用户交互层(User Interface)、中间层为页面自动操作层(PageOperator)以及下层为引擎(Engine)层。
最上层的User Interface,提供给用户所有的H5界面操作API。中间层为PageOperator,主要用于接收和解析用户命令后传递给下层的Engine层。
其中,最底层的Engine层,对于任意应用程序的H5页面,X5浏览器内核都会给页面分配一个websocket debug url,所有页面都会用这一条url。该层封装了WebSocket和单线程池,通过websocket debug url和浏览器内核建立链接,然后发送json格式的协议到移动终端进行用户指定的操作。
参见图5,本申请实施例中应用程序的执行方法的执行步骤如下:
步骤401,在PC端开始应用程序的执行方法。
步骤402,在PC端通过调试桥查找应用程序tools进程标识。
其中,进程标识主要用于在PC端定位移动终端的应用程序。
步骤403,移动终端侧打开调试。
步骤404,在移动终端侧,将被测的应用程序X5浏览器内核设置为调试模式。
步骤405,在PC端设置端口,转发至移动终端端口。
本实施例中,在PC端的设置端口号,可以根据规则随意设置,但是不能与***的其他端口号相冲突。
步骤406,在PC端获取应用程序H5页面的Debug URL。
其中,PC端通过应用程序H5页面的Debug URL与移动终端的用户界面进行交互,Debug URL是PC端与移动终端用户界面的沟通工具。
步骤407,在PC端通过获取websocket debug url与移动终端建立连接。
步骤408,PC端向移动终端发送操作请求。
具体地,PC端将解析出来的用户请求发送至移动终端,以使移动终端执行响应的操作。
其中,操作请求,用于应用程序利用X5浏览器内核在Debug URL对应的页面内执行交互指令,得到对应的操作响应。
步骤409,移动终端执行接收到的操作指令。
具体地,移动终端根据对H5页面执行的交互操作以及交互操作涉及的应用程序的API接口,生成交互信息。其中,交互信息,接待交互操作信息以及调用的API接口。
进一步地,在移动终端对生成的交互信息进行解析,以将交互信息解析为遵循X5浏览器内核协议的交互指令。
步骤410,PC端收到移动终端发送的操作指令执行结果。
需要说明的是,当PC端收到移动端的操作结果后进行检查点验证,则一次操作就此结束,PC端才会继续发送下一个请求。
步骤411,应用程序的执行方法结束。
本申请实施例的应用程序的执行方法,通过将移动终端应用程序X5浏览器内核设置为调试模式,然后在PC端通过获取websocket debug url与移动终端建立连接,将解析出来的用户请求发送到移动终端执行相应的操作,最后当PC端收到移动端的操作结果后进行检查点验证,则一次操作就此结束,PC端才会继续发送下一个请求。该方法通过直接与应用程序的X5浏览器内核进行交互,利用X5浏览器内核执行相关交互指令,避免了现有技术中通过ChromeDrvier执行导致的版本依赖问题。
为了实现上述实施例,本申请还提出一种应用程序的执行装置。
图6为本申请实施例提供的一种应用程序的执行装置的结构示意图。
如图6所示,该应用程序的执行装置100包括:获取模块110、发送模块120、处理模块130。
获取模块110,用于基于与应用程序之间预先建立的连接,获取应用程序H5页面的调试统一资源定位符Debug URL。
发送模块120,用于根据对应页面的交互指令和页面的Debug URL,向应用程序的浏览器内核发送操作请求;其中,操作请求,用于应用程序利用浏览器内核在Debug URL对应的页面内执行交互指令,得到对应的操作响应。
获取模块110,还用于获取操作响应。
处理模块130,用于根据操作响应,确定应用程序执行是否正确。
作为一种可能的实现方式,参见图7,该应用程序的执行装置100,还包括:
连接模块140,用于根据调试端与运行应用程序的移动终端之间建立的调试桥,查询移动终端为运行应用程序分配的进程;根据调试端的预设端口号,以及为运行应用程序所分配进程的进程标识,生成连接请求;向移动终端发送连接请求,以建立调试端与应用程序之间的连接。
作为另一种可能的实现方式,该应用程序的执行装置100,还包括:
查询模块,用于根据调试端与运行应用程序的移动终端之间建立的调试桥,查询移动终端为运行应用程序分配的进程。
生成模块,用于根据调试端的预设端口号,以及为运行应用程序所分配进程的进程标识,生成连接请求。
发送单元,用于向移动终端发送连接请求,以建立连接。
作为另一种可能的实现方式,获取模块110,还包括:
获取单元,用于当应用程序切换H5页面时,向应用程序发送携带端口号的获取指令;其中,获取指令用于通过端口号对应的端口获取切换后的H5页面的Debug URL。
接收单元,用于接收应用程序发送的切换后的H5页面的Debug URL。
作为另一种可能的实现方式,该应用程序的执行装置100,还包括:
确定模块,用于确定应用程序的X5浏览器内核处于调试模式。
作为另一种可能的实现方式,该应用程序的执行装置,还包括:
生成模块,用于根据对H5页面执行的交互操作以及交互操作涉及的API接口,生成交互信息。
解析模块,用于对交互信息进行解析,得到交互指令。
本申请实施例的应用程序的执行装置,通过基于与应用程序之间预先建立的连接,获取应用程序H5页面的调试统一资源定位符Debug URL,再根据对应页面的交互指令和页面的Debug URL,向应用程序的浏览器内核发送操作请求,其中,操作请求,用于应用程序利用浏览器内核在Debug URL对应的页面内执行交互指令,得到对应的操作响应,最终根据获取的操作响应,确定应用程序执行是否正确。该方法通过直接与应用程序的X5浏览器内核进行交互,利用X5浏览器内核执行相关交互指令,避免了现有技术中通过ChromeDrvier执行导致的版本依赖问题。
需要说明的是,前述对应用程序的执行方法实施例的解释说明也适用于该实施例的应用程序的执行装置,此处不再赘述。
为了实现上述实施例,本申请还提出一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述实施例所述的应用程序的执行方法。
为了实现上述实施例,本申请还提出一种计算机可读存储介质,其上存储有计算机程序,当所述存储介质中的指令由处理器执行时,能够实现上述实施例所述的应用程序的执行方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行***、装置或设备(如基于计算机的***、包括处理器的***或其他可以从指令执行***、装置或设备取指令并执行指令的***)使用,或结合这些指令执行***、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行***、装置或设备或结合这些指令执行***、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种应用程序的执行方法,其特征在于,所述方法包括以下步骤:
基于与应用程序之间预先建立的连接,当所述应用程序切换H5页面时,获取应用程序H5页面的调试统一资源定位符Debug URL;
根据对应所述页面的交互指令和所述页面的Debug URL,向所述应用程序的浏览器内核发送操作请求;其中,所述操作请求,用于所述应用程序利用所述浏览器内核在所述Debug URL对应的页面内执行所述交互指令,得到对应的操作响应;
获取所述操作响应;
根据所述操作响应,确定所述应用程序执行是否正确。
2.根据权利要求1所述的执行方法,其特征在于,所述基于与应用程序之间预先建立的连接,获取应用程序H5页面的调试统一资源定位符Debug URL之前,还包括:
根据调试端与运行所述应用程序的移动终端之间建立的调试桥,查询所述移动终端为运行所述应用程序分配的进程;
根据所述调试端的预设端口号,以及为运行所述应用程序所分配进程的进程标识,生成连接请求;
向所述移动终端发送所述连接请求,以建立所述连接。
3.根据权利要求2所述的执行方法,其特征在于,所述获取应用程序H5页面的调试统一资源定位符Debug URL,包括:
当所述应用程序切换H5页面时,向所述应用程序发送携带所述端口号的获取指令;其中,所述获取指令用于通过所述端口号对应的端口获取切换后的H5页面的Debug URL;
接收所述应用程序发送的切换后的H5页面的Debug URL。
4.根据权利要求1-3任一项所述的执行方法,其特征在于,所述浏览器内核为X5浏览器内核,所述向所述应用程序的浏览器内核发送操作请求之前,还包括:
确定所述应用程序的X5浏览器内核处于调试模式。
5.根据权利要求1-3任一项所述的执行方法,其特征在于,所述向所述应用程序的浏览器内核发送操作请求,包括:
利用预设单线程池中处于可执行状态的线程,向所述应用程序的浏览器内核发送操作请求;
在等待获取所述操作请求对应的操作响应过程中,设置所述线程为非可执行状态;
当获取到所述操作响应后,设置所述线程为可执行状态。
6.根据权利要求1-3任一项所述的执行方法,其特征在于,所述
根据对所述H5页面执行的交互操作以及所述交互操作涉及的应用程序API接口,生成交互信息;
对所述交互信息进行解析,得到所述交互指令。
7.一种应用程序的执行装置,其特征在于,所述装置包括:
获取模块,用于基于与应用程序之间预先建立的连接,当所述应用程序切换H5页面时,获取应用程序H5页面的调试统一资源定位符Debug URL;
发送模块,用于根据对应所述页面的交互指令和所述页面的Debug URL,向所述应用程序的浏览器内核发送操作请求;其中,所述操作请求,用于所述应用程序利用所述浏览器内核在所述Debug URL对应的页面内执行所述交互指令,得到对应的操作响应;
所述获取模块,还用于获取所述操作响应;
处理模块,用于根据所述操作响应,确定所述应用程序执行是否正确。
8.根据权利要求7所述的执行装置,其特征在于,所述装置,还包括:
连接模块,用于根据调试端与运行所述应用程序的移动终端之间建立的调试桥,查询所述移动终端为运行所述应用程序分配的进程;根据所述调试端的预设端口号,以及为运行所述应用程序所分配进程的进程标识,生成连接请求;向所述移动终端发送所述连接请求,以建立所述调试端与应用程序之间的连接。
9.一种电子设备,其特征在于,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如权利要求1-6中任一所述的应用程序的执行方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的应用程序的执行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810729297.3A CN109032705B (zh) | 2018-07-05 | 2018-07-05 | 应用程序的执行方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810729297.3A CN109032705B (zh) | 2018-07-05 | 2018-07-05 | 应用程序的执行方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109032705A CN109032705A (zh) | 2018-12-18 |
CN109032705B true CN109032705B (zh) | 2022-02-25 |
Family
ID=65521776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810729297.3A Active CN109032705B (zh) | 2018-07-05 | 2018-07-05 | 应用程序的执行方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109032705B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110188296B (zh) * | 2019-05-13 | 2021-07-13 | 北京百度网讯科技有限公司 | 应用程序内嵌页面处理方法、浏览器、设备和存储介质 |
CN112214370A (zh) * | 2020-10-28 | 2021-01-12 | 京东数字科技控股股份有限公司 | 一种大屏终端的调试设备及方法 |
CN113421080B (zh) * | 2021-06-03 | 2023-07-14 | 中国联合网络通信集团有限公司 | 超市交易盘点方法、交易服务器及协同服务器 |
CN114490378A (zh) * | 2022-01-24 | 2022-05-13 | 北京达佳互联信息技术有限公司 | 页面调试方法、装置、电子设备以及计算机可读存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020090416A (ko) * | 2001-05-25 | 2002-12-05 | 윤용상 | 통신을 통한 원격지의 소프트웨어 실행방법 및 이 방법을수행하도록 프로그램된 소프트웨어가 수록된 매체 |
CN104486333A (zh) * | 2014-12-11 | 2015-04-01 | 北京国双科技有限公司 | 移动应用程序调试方法及装置 |
CN104965832A (zh) * | 2014-06-11 | 2015-10-07 | 腾讯科技(深圳)有限公司 | 访问浏览器的方法及装置 |
CN104978261A (zh) * | 2014-04-03 | 2015-10-14 | 腾讯科技(深圳)有限公司 | 应用程序的测试方法、装置及*** |
CN105204875A (zh) * | 2014-06-11 | 2015-12-30 | 腾讯科技(深圳)有限公司 | 网页调用native功能的方法和*** |
CN107102582A (zh) * | 2017-04-07 | 2017-08-29 | 深圳怡化电脑股份有限公司 | 一种子***命令的同步方法及装置 |
CN108076123A (zh) * | 2016-11-11 | 2018-05-25 | 腾讯科技(深圳)有限公司 | 网页调试方法、装置及*** |
CN108121650A (zh) * | 2016-11-29 | 2018-06-05 | 腾讯科技(深圳)有限公司 | 一种对于页面用户界面的测试方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007005769A1 (en) * | 2005-06-30 | 2007-01-11 | Applera Corporation | Automated quality control method and system for genetic analysis |
CN101849228B (zh) * | 2007-01-16 | 2013-05-08 | 吉兹莫克斯有限公司 | 用于创建面向IT的基于服务器的Web应用的方法和*** |
CN104932931B (zh) * | 2014-03-17 | 2019-05-03 | 腾讯科技(深圳)有限公司 | 处理信息的方法及装置 |
CN106708726A (zh) * | 2015-11-17 | 2017-05-24 | 北京京东尚科信息技术有限公司 | 一种页面兼容性测试***和方法 |
CN105975393B (zh) * | 2016-05-04 | 2020-09-15 | 腾讯科技(深圳)有限公司 | 一种页面显示的检测方法及*** |
CN107678805A (zh) * | 2017-09-08 | 2018-02-09 | 阿里巴巴集团控股有限公司 | 一种应用程序接口的调用方法和装置 |
-
2018
- 2018-07-05 CN CN201810729297.3A patent/CN109032705B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020090416A (ko) * | 2001-05-25 | 2002-12-05 | 윤용상 | 통신을 통한 원격지의 소프트웨어 실행방법 및 이 방법을수행하도록 프로그램된 소프트웨어가 수록된 매체 |
CN104978261A (zh) * | 2014-04-03 | 2015-10-14 | 腾讯科技(深圳)有限公司 | 应用程序的测试方法、装置及*** |
CN104965832A (zh) * | 2014-06-11 | 2015-10-07 | 腾讯科技(深圳)有限公司 | 访问浏览器的方法及装置 |
CN105204875A (zh) * | 2014-06-11 | 2015-12-30 | 腾讯科技(深圳)有限公司 | 网页调用native功能的方法和*** |
CN104486333A (zh) * | 2014-12-11 | 2015-04-01 | 北京国双科技有限公司 | 移动应用程序调试方法及装置 |
CN108076123A (zh) * | 2016-11-11 | 2018-05-25 | 腾讯科技(深圳)有限公司 | 网页调试方法、装置及*** |
CN108121650A (zh) * | 2016-11-29 | 2018-06-05 | 腾讯科技(深圳)有限公司 | 一种对于页面用户界面的测试方法及装置 |
CN107102582A (zh) * | 2017-04-07 | 2017-08-29 | 深圳怡化电脑股份有限公司 | 一种子***命令的同步方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109032705A (zh) | 2018-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109032705B (zh) | 应用程序的执行方法、装置、电子设备及可读存储介质 | |
US10223080B2 (en) | Method and system for automated, static instrumentation for applications designed for execution in environments with restricted resources | |
CN106802814B (zh) | 用于软件版本升级的方法及装置 | |
US20050195390A1 (en) | Method of testing open services gateway initiative service platform and test tool using the method | |
WO2018108041A1 (zh) | 一种远程调试方法及装置、计算机存储介质 | |
CN113312064B (zh) | 物理机的安装配置方法、装置以及计算机可读介质 | |
CN108228444B (zh) | 一种测试方法和装置 | |
CN106502717B (zh) | 应用程序运行方法及装置 | |
CN109492181B (zh) | 页面跳转方法、装置、计算机设备和存储介质 | |
CN111026645A (zh) | 用户界面自动化测试方法、装置、存储介质及电子设备 | |
CN106055375B (zh) | 应用程序安装方法及装置 | |
CN112232794A (zh) | 支付方法及装置、存储介质、电子设备 | |
CN113672441A (zh) | 对智能设备的测试方法及装置 | |
CN108121650B (zh) | 一种对于页面用户界面的测试方法及装置 | |
CN106648762B (zh) | 一种搭建开发环境的方法及装置 | |
CN108650507B (zh) | 终端设备的测试方法、装置、终端设备和存储介质 | |
CN112115055A (zh) | 一种多机自动化测试方法、装置及计算机设备 | |
CN112052037A (zh) | 一种应用软件开发方法、装置、设备及介质 | |
CN108023905B (zh) | 物联网应用***及方法 | |
CN106294119B (zh) | 测试调度***、方法及终端设备 | |
CN110297749B (zh) | 一种测试新功能的方法及终端 | |
CN104516743A (zh) | 基于ActiveX的嵌入式设备固件的升级方法及*** | |
CN112149033B (zh) | H5页面控件的获取方法、装置、电子设备和存储介质 | |
CN114880244A (zh) | 应用测试方法及装置、存储介质及电子设备 | |
CN115098116A (zh) | 应用程序的模拟操作方法、装置、终端及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |