CN110389886A - 一种主体应用程序的附加功能测试方法、装置及存储介质 - Google Patents
一种主体应用程序的附加功能测试方法、装置及存储介质 Download PDFInfo
- Publication number
- CN110389886A CN110389886A CN201810337846.2A CN201810337846A CN110389886A CN 110389886 A CN110389886 A CN 110389886A CN 201810337846 A CN201810337846 A CN 201810337846A CN 110389886 A CN110389886 A CN 110389886A
- Authority
- CN
- China
- Prior art keywords
- user
- information
- user interface
- main body
- application program
- 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.)
- Granted
Links
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/3664—Environments for testing or debugging software
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了主体应用程序的附加功能测试方法、装置及存储介质,应用于通信技术领域。在对主体应用程序中的附加功能进行测试时,测试装置会通过主体应用程序中附加功能的第二进程的路由信息,与第二进程之间建立通信连接,然后再创建用户操作请求,并通过建立的连接将用户操作请求发送给第二进程进行执行,且第二进程会将执行结果信息返回给测试装置进行检测。本实施的方法是通过测试装置创建用户操作请求,并通过测试装置与第二进程之间的通信,将用户操作请求发送给第二进程执行,可以模拟在第二进程提供的用户界面的人工操作,从而实现了测试装置获取用户操作请求对应执行结果信息的自动化过程。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种主体应用程序的附加功能测试方法、装置及存储介质。
背景技术
现有的很多应用程序都具有“浏览器”的功能,这样用户可以在应用程序提供的界面,触发网页的显示,而有些应用程序(以下称为主体应用程序)会通过网页形式实现另一些应用功能,比如微信小程序,就是微信程序中通过网页形式实现其它应用功能的代码的集合。这样,使得某些应用功能可以不用通过安装对应的应用端来实现,而是由其它应用端通过网页形式来实现,实现过程简单且不会占用太多空间。
而在主体应用程序的开发过程中,需要对主体应用程序中的其它应用功能(以下称为附加功能)进行测试,在现有技术中,一般都是先在用户设备端开启主体应用程序的附加功能,然后在主体应用程序中附加功能的实现过程中,由测试用户在用户设备显示的用户界面进行操作,且用户设备将根据用户操作执行的结果信息进行储存,然后测试用户可以根据用户设备储存的结果信息对主体应用程序的附加功能进行检测。这种方法需要测试用户操作用户设备,不是很方便。
发明内容
本发明实施例提供一种主体应用程序的附加功能测试方法、装置及存储介质,实现了通过测试装置对主体应用程序的附加功能进行测试。
本发明实施例第一方面提供一种主体应用程序的附加功能测试方法,包括:
获取主体应用程序中附加功能的第二进程的路由信息;
通过所述路由信息与所述第二进程之间建立通信连接;
创建用户操作请求,所述用户操作请求用于请求在所述第二进程提供的用户界面进行操作;
通过所述建立的连接将所述用户操作请求发送给所述第二进程执行;
接收所述第二进程返回的执行结果信息,以检测所述主体应用程序的附加功能。
本发明实施例第二方面提供一种测试装置,包括:
路由获取单元,用于获取主体应用程序中附加功能的第二进程的路由信息;
连接建立单元,用于通过所述路由信息与所述第二进程之间建立通信连接;
创建单元,用于创建用户操作请求,所述用户操作请求用于请求在所述第二进程提供的用户界面进行操作;
发送执行单元,用于通过所述建立的连接将所述用户操作请求发送给所述第二进程执行;
接收测试单元,用于接收所述第二进程返回的执行结果信息,以检测所述主体应用程序的附加功能。
本发明实施例第三方面提供一种存储介质,所述存储介质储存多条指令,所述指令适于由处理器加载并执行如本发明实施例第一方面所述的主体应用程序的附加功能测试方法。
本发明实施例第四方面提供一种终端设备,包括处理器和存储介质,所述处理器,用于实现各个指令;
所述存储介质用于储存多条指令,所述指令用于由处理器加载并执行如本发明实施例第一方面所述的主体应用程序的附加功能测试方法。
可见,在本实施例的方法中,在对主体应用程序中的附加功能进行测试时,测试装置会通过主体应用程序中附加功能的第二进程的路由信息,与第二进程之间建立通信连接,然后再创建用户操作请求,并通过建立的连接将用户操作请求发送给第二进程进行执行,且第二进程会将执行结果信息返回给测试装置进行检测。本实施的方法可以不用在第二进程提供的用户界面,进行人工操作,而是通过测试装置创建用户操作请求,并通过测试装置与第二进程之间的通信,将用户操作请求发送给第二进程执行,可以模拟在第二进程提供的用户界面的人工操作,从而实现了测试装置获取用户操作请求对应执行结果信息的自动化过程。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种主体应用程序的附加功能测试方法的流程图;
图2是本发明实施例中用户设备显示第二进程的用户界面的示意图;
图3是本发明应用实施例中微信小程序实现的示意图;
图4是本发明应用实施例中对微信小程序进行测试的测试装置的结构示意图;
图5是本发明应用实施例提供的一种主体应用程序的附加功能测试方法的流程图;
图6是本发明实施例提供的一种测试装置的结构示意图;
图7是本发明实施例提供的一种终端设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排它的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例提供一种主体应用程序的附加功能测试方法,主要是对主体应用程序中通过网页形式实现的附加功能进行测试,在测试过程中,需要先在用户设备启动主体应用程序中附加功能的调试模式,并将测试装置与用户设备进行连接,然后通过测试装置触发主体应用程序中附加功能的第二进程执行某些操作;最后用户设备将执行这些操作的执行结果信息发送给测试装置进行检测。具体地,测试装置可以通过如下方法进行附加功能的测试:
获取主体应用程序中附加功能的第二进程的路由信息;通过所述路由信息与所述第二进程之间建立通信连接;创建用户操作请求,所述用户操作请求用于请求在所述第二进程提供的用户界面进行操作;通过所述建立的连接将所述用户操作请求发送给所述第一进程执行;接收所述第二进程返回的执行结果信息,以检测所述主体应用程序的附加功能。
本实施的方法可以不用在第二进程提供的用户界面,进行人工操作,而是通过测试装置创建用户操作请求,并通过测试装置与第二进程之间的通信,将用户操作请求发送给第二进程执行,可以模拟在第二进程提供的用户界面的人工操作,从而实现了测试装置获取用户操作请求对应执行结果信息的自动化过程。
本发明实施例提供一种主体应用程序的附加功能测试方法,主要是由上述的测试装置所执行的方法,流程图如图1所示,包括:
步骤101,获取主体应用程序中附加功能的第二进程的路由信息。
可以理解,在主体应用程序的开发过程中,如果需要对某一主体应用程序的附加功能进行测试,则需要先将测试装置与用户设备进行连接,比如通过蓝牙协议进行连接,或者通过数据传输线进行连接等,使得测试装置与用户设备之间可以进行通信。其中,用户设备是装载主体应用程序的设备,且需要用户通过操作用户设备,使得用户设备启动主体应用程序中附加功能的第二进程,且是第二进程的调试模式。
在测试装置与用户设备连接后,用户可以通过测试装置发起本实施例的测试流程,具体地:
在一种情况下,用户可以通过测试装置提供的命令编辑模式,直接发起本实施例的流程,即可以直接在命令编辑模式下编辑命令来获取主体应用程序中附加功能的第二进程的路由信息等。这种方法需要用户了解各种触发命令,才能实现本实施例的测试。具体地,测试装置在执行本步骤时,可以先启动命令编辑模式,当接收到用户在该命令编辑模式下编辑的上述路由信息的获取命令,根据获取命令向主体应用程序的第一进程(即上述的用户设备中的进程)获取路由信息。
在另一种情况下,测试装置可以提供直观的测试界面,这样用户可以通过该测试界面中包括的触发接口来触发本实施例的流程,这样用户即可直接通过测试界面,完成本实施中的测试,而不需要用户了解触发命令的专业知识也可以实现,具有很好的推广性。具体地,测试装置在执行本步骤时,可以先显示测试界面,在测试界面上包括上述路由信息的获取接口(比如获取按钮等),当在该测试界面接收到用户对获取接口的操作信息,向主体应用程序的第一进程获取路由信息。
需要说明的是,应用程序是指一些列动作执行过程的描述信息比如代码,可以实现一定的应用功能;进程是指正在运行的应用程序,即执行对应应用程序描述的执行过程的一个模块。
且上述的主体应用程序中的附加功能,主要是在主体应用程序中通过网页形式实现,当用户通过用户设备触发了主体应用程序中的附加功能,用户设备中主体应用程序的第一进程会启动多个第二进程,以通过网页形式来实现主体应用程序中的附加功能。其中,多个第二进程中某一第二进程可以用于处理一系列逻辑事件,比如数据请求,接口调用等事件;其它第二进程可以用于根据某一第二进程的指示,渲染用户界面并通过用户设备显示给用户,且其它第二进程渲染的各个用户界面都是网页形式的页面。
上述的路由信息可以是第二进程的标识信息等信息,例如,如果主体应用程序中的附加功能具体为微信小程序实现的功能,则这里获取的路由信息具体可以为微信小程序中逻辑层的页面地址信息。
步骤102,通过上述获取的路由信息,与主体应用程序中附加功能的第二进程建立连接。
步骤103,创建用户操作请求,该用户操作请求用于请求在上述第二进程提供的用户界面进行操作,比如点击操作,或是输入信息的操作等。
在本实施例中,用户操作请求需要在测试装置一端创建,而不用用户人工来操作用户设备中第二进程提供的用户界面,且创建用户操作请求的方法,因用户操作请求的不同而不同,具体可以包括但不限于如下几种情况:
(1)用户操作请求用于点击第二进程提供的某一用户界面的某一控件,比如第一控件。
在这种情况下,测试装置在创建用户请求操作时,先获取第一控件在某一用户界面的位置信息,及获取某一用户界面的标识信息;然后根据获取的位置信息及某一用户界面的标识信息,创建用户操作请求,使得用户操作请求用于点击第二进程提供的某一用户界面的第一控件。其中,控件是指某一用户界面上包括的用户操作接口(比如按钮等),当用户点击该控件时,第二进程可以转到获取其它用户界面并显示其它用户界面。
(11)测试装置在获取第一控件在某一用户界面的位置信息时:
先获取某一像素单位下第一控件的第一位置信息,然后再根据预置的函数关系,将第一位置信息转化另一像素单位下第一控件的第二位置信息,则第二位置信息为第一控件在某一用户界面的位置信息。这里另一像素单位是测试装置采用一定方法创建上述用户操作请求时所用到的控件位置的像素单位,而有些时候测试装置在采用一定方法获取到的第一控件的第一位置信息的像素单位与另一像素单位不同,因此,需要先将第一位置信息转化为第二位置信息,才能继续进行后续创建用户操作请求的步骤。
具体地,用户可以在测试装置的命令编辑模式下输入第一控件的标识信息(比如一个字串),当测试装置接收到用户输入的标识信息,则向第二进程获取上述第一位置信息;或者,测试装置可以提供测试界面,在测试界面包括控件点击触发接口,当用户通过测试界面选择某一控件,并对选择的控件对应的控件点击触发接口进行操作,则测试装置会自动地执行向第二进程获取第一位置信息等操作。
其中,某一像素单位和另一像素单位可以是一个像素点(pixel,Px),也可以是基于屏幕分辨率的一个抽象单位,即密度独立像素点(density-independent pixels,Dp)等,且上述获取的第一位置信息和第二位置信息都可以是二维坐标信息,分别包括x轴坐标和y轴坐标。
预置的函数关系是第一位置信息与第二位置信息的函数计算关系,是事先预置在测试装置中的,具体可以包括第二位置信息为第一位置信息与对应系数的乘积,具体地,第二位置信息中的y轴坐标为第一位置信息中y轴坐标与对应系数的乘积,且第二位置信息中的x轴坐标为第一位置信息中x轴坐标与对应系数的乘积。其中,对应的系数可以是承载上述第二进程的用户设备包括的显示屏幕的密度(density)与160的商值;或者,对应的系数可以是一个比例值(scale),该比例值可以是用户设备包括的显示屏幕在另一种像素单位下的宽度与在某一像素单位下的宽度的比值,在这种情况下,可以在该函数计算关系中再加入一个误差值(比如0.5),以减少误差。
进一步地,测试装置获取的第一位置信息是在第二进程提供的用户界面参考系下,第一控件的位置信息。由于用户设备在显示承载的第二进程的用户界面时,还会显示用户设备本身系统的一些信息,例如图2所示为用户设备显示第二进程的用户界面的示意图,在最上端为用户设备的系统界面,包括时间(即11:37),电量信息及网络信号强度,在系统界面下方是第二进程的用户界面。
因此,测试装置在获取了上述第一位置信息后,还需要先将第一位置信息转化为在用户设备显示屏幕的参考系下,第一控件的位置信息,即相对位置信息;然后再将相对位置信息转化为第二位置信息,具体地:
测试装置会获取承载第二进程的用户设备的系统界面的位置及大小,并根据第一位置信息及获取的系统界面的位置及大小,获取第一控件在用户设备显示的相对位置信息。其中,例如图2所示,如果系统界面的位置是在用户设备的屏幕最上端,且系统界面的高度为h,即系统界面最上边与最下边之间的最短距离,则相对位置信息的y坐标即为第一位置信息中y坐标与该高度h的相加值,而相对位置信息的x坐标即为第一位置信息中的x坐标。
这样,测试装置在根据预置的函数关系将第一位置信息转化第二位置信息时,主要是根据预置的函数关系,将相对位置信息转化另一像素单位下第一控件的第二位置信息。
(12)测试装置在获取某一用户界面的标识信息时:
向第二进程获取当前显示的某一用户界面的代码信息,在代码信息中包括多个节点分别对应的标识,任一节点用于表示某一用户界面所包括的一个控件;然后将多个节点对应的标识的集合作为某一用户界面的标识信息。
需要说明的是,当测试装置在创建每个用户操作请求时,都可以按照上述方法来获取某一用户界面的标识信息;在另一种情况下,当第二进程从其它用户界面刚开始转到上述的某一用户界面时,即可按照上述方法获取到某一用户界面的标识信息进行储存,当后续测试装置发起创建用户操作请求的操作时,可以从测试装置中直接提取该用户界面的标识信息。
(2)用户操作请求为在第二进程提供的某一用户界面输入信息的用户输入请求。
当第二进程启动信息输入插件后,如果测试装置监听到用户输入的广播信息,将广播信息进行转码,形成用户输入请求。
需要说明的是,上述第二进程启动信息输入插件可以是第二进程根据测试装置的某一用户操作请求点击某一控件后启动的,而点击的该控件具体为第二进程提供的用户界面包括的输入框。
步骤104,通过建立的连接将用户操作请求发送给上述第二进程执行。
步骤105,接收第二进程返回的执行结果信息,以检测主体应用程序的附加功能。
需要说明的是,当测试装置在根据执行结果信息检测主体应用程序的附加功能时,如果执行结果信息中包括某个控件的属性信息,则可以判断该控件的属性信息是否与预期一致,比如判断该控件显示的主题(Text)是否与预期相符等。
另外,上述步骤103到105的步骤可以循环操作,且每次循环操作过程中,可以针对不同的用户操作请求进行操作,使得测试装置可以获取到第二进程执行各种用户操作请求的执行结果信息进行检测,这样能全面地检测主体应用程序的附加功能。
可见,在本实施例的方法中,在对主体应用程序中的附加功能进行测试时,测试装置会通过主体应用程序中附加功能的第二进程的路由信息,与第二进程之间建立通信连接,然后再创建用户操作请求,并通过建立的连接将用户操作请求发送给第二进程进行执行,且第二进程会将执行结果信息返回给测试装置进行检测。本实施的方法可以不用在第二进程提供的用户界面,进行人工操作,而是通过测试装置创建用户操作请求,并通过测试装置与第二进程之间的通信,将用户操作请求发送给第二进程执行,可以模拟在第二进程提供的用户界面的人工操作,从而实现了测试装置获取用户操作请求对应执行结果信息的自动化过程。
以下以一个具体的应用实例来说明本发明的测试方法,在本实施例中主体应用程序可以为微信程序,而其附加功能可以是微信小程序所实现的功能,在本实施例中,微信小程序可以通过如图3所示的结构来实现,具体包括:
视图(View)层和逻辑层,其中,视图层用于渲染用户界面并显示,逻辑层用于进行逻辑处理,数据请求和接口调用等操作,它们在各自的进程即网页视图(Webview)进程里运行。视图层与逻辑层之间通过承载这些进程的用户设备的系统层的脚本桥(JSBridage)进行通信,逻辑层将数据变化通知到视图层,触发视图层进行用户界面的更新,且视图层渲染的用户界面是网页形式的页面;视图层把触发的事件通知到逻辑层进行业务处理。
当用户通过用户设备启动微信小程序后,微信程序的第一进程会开启至少两个第二进程,即至少两个Webview进程,一个Webview进程运行逻辑层,其它Webview进程运行视图层,由于每一层的用户界面需要单独的Webview进程来实现,考虑到性能消耗,微信小程序中一般不允许开启超过5个层级的用户界面,即运行开启不超过5个Webview进程。而每个Webview进程对应一个页面接口调试的统一资源定位符(websocket debug url)。
在本实施例中,如果需要对任一微信小程序进行测试时,则需要通过测试装置与承载微信程序的用户设备连接,并通过测试装置与用户设备之间的通信实现微信小程序的测试。参考图4所示,在本实施例中,测试装置可以包括:
用户交互层(User Interface),页面操作层(PageOperator)及启动层(Engine),其中,用户交互层用于提供用户接口,用户可以通过用户接口发起对微信小程序的测试流程等;页面操作层主要用于接收和解析用户交互层接收的用户命令后传递给启动层;启动层,用于管理多个(一般不超过5个)页面接口调试的统一资源定位符,且通过这些统一资源定位符与微信小程序的第二进程连接。
具体地,在本实施例中,测试装置可以通过如下方法对微信小程序进行测试,流程图如图5所示,包括:
步骤201,用户通过操作用户设备,使得用户设备启动微信小程序的第二进程的调试模式,包括多个Webview进程,但一般不超过5个Webview进程,每个Webview进程对应一个页面接口调试的同一资源定位符,即websocket debug url。且用户可以操作用户设备和测试装置,使得用户设备与测试装置通信连接,比如通过蓝牙协议连接,或是通过物理的数据线连接。
步骤202,用户通过测试装置中用户交互层提供的用户接口,触发测试装置与用户设备中微信小程序的第二进程建立连接。具体地,当用户通过用户接口触发与第二进程之间建立连接,测试装置中的启动层会接收到用户触发命令,会向用户设备中微信程序的第一进程获取微信小程序的多个Webview进程的信息,每个Webview进程的信息可以包括标识信息(比如ID),及路由信息即websocket debug url等。
然后启动层根据多个Webview进程中Webview进程1的路由信息,与该Webview进程1之间建立通信连接,其中Webview进程1为运行微信小程序中逻辑层的进程。
步骤203,用户通过测试装置中用户交互层提供的接口,触发将用户操作请求发送给用户设备中的第二进程进行执行。
具体地,当用户通过用户接口触发用户交互层创建用户操作请求后,测试装置中的启动层会接收到请求发送命令,而启动层会将用户操作请求发送给用户设备的第二进程,具体为Webview进程1。而用户操作请求的创建可以包括如下几种情况:
(1)对于用户操作请求是点击微信小程序的某一用户界面的第一控件的用户操作请求。
(11)用户可以通过用户交互层提供的命令编辑界面,在该命令编辑界面输入第一控件的标识信息,由测试装置中的启动层向用户设备的第二进程获取第一控件的第一位置信息,具体是dp形式的第一位置信息。
具体地,用户可以在命令编辑界面输入第一控件对应的字串,即X路径(Xpath),这样测试装置的页面操作层会调用X路径获取元素协调(getElementCoordinateByXpath)方法,以触发启动层通过获取客户矩形边界(getBoundingClientRect)的方法,获取第一控件的坐标信息,即第一位置信息;然后由测试装置的用户交互层显示第一控件的坐标信息。
其中,由于第一位置信息是相对微信小程序的用户界面的位置信息,测试装置的启动层会根据dp形式的第一位置信息,及承载微信小程序的用户设备中系统界面的位置和大小,获取到第一控件在用户设备显示的相对位置信息,具体地,可以将第一位置信息的y坐标与系统界面的高度(即系统界面最上边与最下边之间的最短距离)之和作为相对位置信息中的y坐标,将第一位置信息的x坐标作为相对位置信息中的x坐标。其中用户设备的系统界面的高度具体可以是用户设备包括的显示屏幕的高度与第二进程提供的用户界面的高度的差值。
然后启动层会将相对位置信息转化为px形式的第二位置信息,具体地,可以根据如下公式1中预置的函数关系,得到第二位置信息,其中,scale为对应系数,0.5为误差值:
px=dp*scale+0.5 (1)
需要说明的是,在通过上述公式1得到第二位置信息时,需要根据第一位置信息中的x轴坐标及公式1的函数关系得到第二位置信息的x轴坐标,且根据第一位置信息中的y轴坐标及公式1的函数关系得到第二位置信息中y轴坐标。
(12)测试装置的启动层还会获取该用户界面的标识信息,具体为该用户界面的代码信息中各个节点的名称集合。
(13)用户可以通过用户交互层提供的命令编辑界面,在该命令编辑界面输入用户操作请求的创建命令,比如adb shell input tap x y,其中,x与y为px形式的第二位置信息,则用户交互层会创建用户操作请求,用于点击第一控件,在用户操作请求中包括该第二位置信息及上述用户界面的标识信息;由测试装置中的启动层向用户设备的第二进程发送用户操作请求进行执行。
(2)对于用户操作请求是微信小程序的某一用户界面输入信息的用户输入请求。
用户可以通过用户交互层提供的命令编辑界面,在该命令编辑界面输入adb命令,使得测试装置触发第二进程启动信息输入插件;当用户在命令编辑界面使用adb shell命令输入广播信息,当测试装置监听到广播信息,将该广播信息转码形成用户输入请求,发送给用户设备的第二进程。
步骤204,当第二进程接收用户操作请求后,根据该用户操作请求确定需要关闭或开启某一用户界面时,第二进程会将该用户界面的代码信息发送给测试装置的启动层,在代码信息中可以包括多个节点的名称,而每个节点可以表示用户界面中的一个控件。其中,主要是微信小程序中的Webview进程1向该用户界面对应的Webview进程获取了该用户界面的代码信息,且Webview进程1将获取的代码信息发送给测试装置的启动层。
之后,启动层会将该代码信息中多个节点的名称集合作为该用户界面的标识信息进行储存,该标识信息也可以标识该用户界面对应的一个Webview进程。
这样,即时用户界面中的有些内容会发生变化,但是由于一个用户界面中的控件是固定不变的,则通过将多个节点的名称集合作为用户界面的标识信息,使得每个用户界面的标识信息是不变的,可以唯一标识一个用户界面的Webview进程,即可唯一标识该Webview进程对应的websocket debug url。实现了对于微信小程序中多个Webview进程的websocket debug url的管理。
步骤205,第二进程会将用户操作请求的执行结果信息返回给测试装置的启动层,以进行微信小程序的检测。
需要说明的是,上述步骤204与步骤205之间,并没有绝对的顺序关系,可以同时进行,也可以顺序进行,图5中所示的只是其中一种具体的实现方式。
且上述步骤203到205之间可以循环运行,具体地,当测试装置接收到用户设备的第二进程的执行结果信息后,会通过用户交互层显示给用户,这样用户即可触发针对另一用户操作请求,执行上述步骤203到205,使得测试装置可以接收到各种用户操作请求对应的执行结果信息,全面地对微信小程序进行测试。
本发明实施例还提供一种测试装置,其结构示意图如图6所示,具体可以包括:
路由获取单元10,用于获取主体应用程序中附加功能的第二进程的路由信息。
具体地,路由获取单元10,具体用于启动命令编辑模式,当接收到用户在所述命令编辑模式下编辑所述路由信息的获取命令,根据所述获取命令向所述主体应用程序的第一进程获取所述路由信息;或,所述路由获取单元10,具体用于显示用户界面,所述用户界面包括所述路由信息的获取接口,当在所述用户界面接收到用户对所述获取接口的操作信息,向所述主体应用程序的第一进程获取所述路由信息。
连接建立单元11,用于通过所述路由获取单元10获取的路由信息与所述第二进程之间建立通信连接。
创建单元12,用于创建用户操作请求,所述用户操作请求用于请求在所述第二进程提供的用户界面进行操作。
该创建单元12的创建方法主要可以包括但不限于如下几种方式:
(1)所述用户操作请求用于点击所述第二进程提供的某一用户界面的第一控件。
所述创建单元12,具体用于获取所述第一控件在所述某一用户界面的位置信息,及获取所述某一用户界面的标识信息;根据所述位置信息及所述某一用户界面的标识信息,创建用户操作请求,则所述用户操作请求用于点击所述第二进程提供的某一用户界面的第一控件。
其中,创建单元12在获取第一控件在某一用户界面的位置信息时:会先获取某一像素单位下第一控件的第一位置信息;根据预置的函数关系,将所述第一位置信息转化另一像素单位下第一控件的第二位置信息,则所述第二位置信息为所述第一控件在所述某一用户界面的位置信息,所述预置的函数关系包括所述第一位置信息与第二位置信息的函数计算关系。其中,函数关系可以为:所述第二位置信息为所述第一位置信息与对应系数的乘积。
在一种情况下,创建单元12在获取第一位置信息之后,会先获取承载所述第二进程的用户设备的系统界面的位置及大小;根据所述第一位置信息及所述获取的系统界面的位置及大小,获取所述第一控件在所述用户设备显示的相对位置信息;则所述根据预置的函数关系,将所述第一位置信息转化另一像素单位下第一控件的第二位置信息时,具体是将根据预置的函数关系,将所述相对位置信息转化另一像素单位下第一控件的第二位置信息。
其中,创建单元12在获取所述某一用户界面的标识信息时,向所述第二进程获取当前显示的某一用户界面的代码信息,所述代码信息中包括多个节点分别对应的标识,任一节点用于表示所述某一用户界面所包括的一个控件;将所述多个节点对应的标识的集合作为所述某一用户界面的标识信息。
(2)用户操作请求为在第二进程提供的某一用户界面输入信息的用户输入请求。
所述创建单元12,具体用于当所述第二进程启动信息输入插件后,当监听到用户输入的广播信息,将所述广播信息进行转码,形成所述用户输入请求。
发送执行单元13,用于通过所述连接建立单元11建立的连接将所述创建单元12创建的用户操作请求发送给所述第二进程执行。
接收测试单元14,用于接收所述第二进程根据所述发送执行单元13发送的用户操作请求返回的执行结果信息,以检测所述主体应用程序的附加功能。
可见,在本实施例中,在对主体应用程序中的附加功能进行测试时,本实施例的测试装置中连接建立单元11会通过主体应用程序中附加功能的第二进程的路由信息,与第二进程之间建立通信连接,然后创建单元12再创建用户操作请求,并由发送执行单元13通过建立的连接将用户操作请求发送给第二进程进行执行,且第二进程会将执行结果信息返回给测试装置中的接收检测单元14进行检测。这样,可以不用在第二进程提供的用户界面进行人工操作,而是通过测试装置创建用户操作请求,并通过测试装置与第二进程之间的通信,将用户操作请求发送给第二进程执行,可以模拟在第二进程提供的用户界面的人工操作,从而实现了测试装置获取用户操作请求对应执行结果信息的自动化过程。
本发明实施例还提供一种终端设备,其结构示意图如图7所示,该终端设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessing units,CPU)20(例如,一个或一个以上处理器)和存储器21,一个或一个以上存储应用程序221或数据222的存储介质22(例如一个或一个以上海量存储设备)。其中,存储器21和存储介质22可以是短暂存储或持久存储。存储在存储介质22的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对语终端设备中的一系列指令操作。更进一步地,中央处理器20可以设置为与存储介质22通信,在终端设备上执行存储介质22中的一系列指令操作。
具体地,在存储介质22中储存的应用程序221包括主体应用程序的附加功能测试的应用程序,且该程序可以包括上述测试装置中的路由获取单元10,连接建立单元11,创建单元12,发送执行单元13和接收测试单元14,在此不进行赘述。更进一步地,中央处理器20可以设置为与存储介质22通信,在终端设备上执行存储介质22中储存的主体应用程序的附加功能测试的应用程序对应的一系列操作。
终端设备还可以包括一个或一个以上电源23,一个或一个以上有线或无线网络接口24,一个或一个以上输入输出接口25,和/或,一个或一个以上操作系统223,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述方法实施例中所述的由测试装置所执行的步骤可以基于该图7所示的终端设备的结构。
本发明实施例还提供一种存储介质,所述存储介质储存多条指令,所述指令适于由处理器加载并执行如上述测试装置所执行的主体应用程序的附加功能测试方法。
本发明实施例还提供一种终端设备,包括处理器和存储介质,所述处理器,用于实现各个指令;
所述存储介质用于储存多条指令,所述指令用于由处理器加载并执行如上述测试装置所执行的主体应用程序的附加功能测试方法
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM)、随机存取存储器RAM)、磁盘或光盘等。
以上对本发明实施例所提供的主体应用程序的附加功能测试方法、装置及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (15)
1.一种主体应用程序的附加功能测试方法,其特征在于,包括:
获取主体应用程序中附加功能的第二进程的路由信息;
通过所述路由信息与所述第二进程之间建立通信连接;
创建用户操作请求,所述用户操作请求用于请求在所述第二进程提供的用户界面进行操作;
通过所述建立的连接将所述用户操作请求发送给所述第二进程执行;
接收所述第二进程返回的执行结果信息,以检测所述主体应用程序的附加功能。
2.如权利要求1所述的方法,其特征在于,所述获取主体应用程序中附加功能的第二进程的路由信息,具体包括:
启动命令编辑模式,当接收到用户在所述命令编辑模式下编辑的所述路由信息的获取命令,根据所述获取命令向所述主体应用程序的第一进程获取所述路由信息;
或,显示测试界面,所述测试界面包括所述路由信息的获取接口,当在所述测试界面接收到用户对所述获取接口的操作信息,向所述主体应用程序的第一进程获取所述路由信息。
3.如权利要求2所述的方法,其特征在于,所述主体应用程序中的附加功能具体为微信小程序实现的功能,所述路由信息为所述微信小程序中逻辑层的页面地址信息。
4.如权利要求1至3任一项所述的方法,其特征在于,所述用户操作请求用于点击所述第二进程提供的某一用户界面的第一控件,则所述创建用户操作请求,具体包括:
获取所述第一控件在所述某一用户界面的位置信息,及获取所述某一用户界面的标识信息;
根据所述位置信息及所述某一用户界面的标识信息,创建所述用户操作请求,使得所述用户操作请求用于点击所述第二进程提供的某一用户界面的第一控件。
5.如权利要求4所述的方法,其特征在于,所述获取所述第一控件在所述某一用户界面的位置信息,具体包括:
获取某一像素单位下所述第一控件的第一位置信息;
根据预置的函数关系,将所述第一位置信息转化另一像素单位下所述第一控件的第二位置信息,则所述第二位置信息为所述第一控件在所述某一用户界面的位置信息,所述预置的函数关系包括所述第一位置信息与第二位置信息的函数计算关系。
6.如权利要求5所述的方法,其特征在于,所述获取某一像素单位下所述第一控件的第一位置信息之后,还包括:
获取承载所述第二进程的用户设备的系统界面的位置及大小;
根据所述第一位置信息及所述获取的系统界面的位置及大小,获取所述第一控件在所述用户设备显示的相对位置信息;
则所述根据预置的函数关系,将所述第一位置信息转化另一像素单位下所述第一控件的第二位置信息,具体包括:根据预置的函数关系,将所述相对位置信息转化另一像素单位下所述第一控件的第二位置信息。
7.如权利要求5所述的方法,其特征在于,所述预置的函数关系包括:所述第二位置信息为所述第一位置信息与对应系数的乘积。
8.如权利要求4所述的方法,其特征在于,所述获取所述某一用户界面的标识信息,具体包括:
向所述第二进程获取当前显示的某一用户界面的代码信息,所述代码信息中包括多个节点分别对应的标识,任一节点用于表示所述某一用户界面所包括的一个控件;
将所述多个节点对应的标识的集合作为所述某一用户界面的标识信息。
9.如权利要求1至3任一项所述的方法,其特征在于,所述用户操作请求为在所述第二进程提供的某一用户界面输入信息的用户输入请求,则所述创建用户操作请求,具体包括:
当所述第二进程启动信息输入插件后,如果监听到用户输入的广播信息,将所述广播信息进行转码,形成所述用户输入请求。
10.一种测试装置,其特征在于,包括:
路由获取单元,用于获取主体应用程序中附加功能的第二进程的路由信息;
连接建立单元,用于通过所述路由信息与所述第二进程之间建立通信连接;
创建单元,用于创建用户操作请求,所述用户操作请求用于请求在所述第二进程提供的用户界面进行操作;
发送执行单元,用于通过所述建立的连接将所述用户操作请求发送给所述第二进程执行;
接收测试单元,用于接收所述第二进程返回的执行结果信息,以检测所述主体应用程序的附加功能。
11.如权利要求10所述的装置,其特征在于,所述路由获取单元,具体用于启动命令编辑模式,当接收到用户在所述命令编辑模式下编辑的所述路由信息的获取命令,根据所述获取命令向所述主体应用程序的第一进程获取所述路由信息;
或,所述路由获取单元,具体用于显示用户界面,所述用户界面包括所述路由信息的获取接口,当在所述用户界面接收到用户对所述获取接口的操作信息,向所述主体应用程序的第一进程获取所述路由信息。
12.如权利要求10或11所述的装置,其特征在于,所述用户操作请求用于点击所述第二进程提供的某一用户界面的第一控件,则:
所述创建单元,具体用于获取所述第一控件在所述某一用户界面的位置信息,及获取所述某一用户界面的标识信息;根据所述位置信息及所述某一用户界面的标识信息,创建所述用户操作请求,则所述用户操作请求用于点击所述第二进程提供的某一用户界面的第一控件。
13.如权利要求10或11所述的装置,其特征在于,所述用户操作请求为在所述第二进程提供的某一用户界面输入信息的用户输入请求,则
所述创建单元,具体用于当所述第二进程启动信息输入插件后,当监听到用户输入的广播信息,将所述广播信息进行转码,形成所述用户输入请求。
14.一种存储介质,其特征在于,所述存储介质储存多条指令,所述指令适于由处理器加载并执行如权利要求1至9任一项所述的主体应用程序的附加功能测试方法。
15.一种终端设备,其特征在于,包括处理器和存储介质,所述处理器,用于实现各个指令;
所述存储介质用于储存多条指令,所述指令用于由处理器加载并执行如权利要求1至9任一项所述的主体应用程序的附加功能测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810337846.2A CN110389886B (zh) | 2018-04-16 | 2018-04-16 | 一种主体应用程序的附加功能测试方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810337846.2A CN110389886B (zh) | 2018-04-16 | 2018-04-16 | 一种主体应用程序的附加功能测试方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110389886A true CN110389886A (zh) | 2019-10-29 |
CN110389886B CN110389886B (zh) | 2021-08-03 |
Family
ID=68282818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810337846.2A Active CN110389886B (zh) | 2018-04-16 | 2018-04-16 | 一种主体应用程序的附加功能测试方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110389886B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113722020A (zh) * | 2020-05-26 | 2021-11-30 | 腾讯科技(深圳)有限公司 | 接口调用方法、装置和计算机可读存储介质 |
CN114490228A (zh) * | 2021-07-21 | 2022-05-13 | 荣耀终端有限公司 | 一种蓝牙自动化测试方法及相关装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9197599B1 (en) * | 1997-09-26 | 2015-11-24 | Verizon Patent And Licensing Inc. | Integrated business system for web based telecommunications management |
CN106776344A (zh) * | 2017-01-16 | 2017-05-31 | 上海聚宝网络科技股份有限公司 | 一种基于appium的智能快递柜的自动化测试方法 |
CN107168702A (zh) * | 2017-05-10 | 2017-09-15 | 苏州奇松软件有限公司 | 一种App、小程序和Web接口定义和代码生成方法 |
CN107678956A (zh) * | 2017-09-22 | 2018-02-09 | 郑州云海信息技术有限公司 | 一种服务器自动化测试管理系统及方法 |
CN107704396A (zh) * | 2017-10-20 | 2018-02-16 | 平安科技(深圳)有限公司 | 应用程序的测试方法及装置 |
CN107728999A (zh) * | 2017-11-14 | 2018-02-23 | 苏州奇松软件有限公司 | 一种App、小程序接口模拟的方法和系统 |
-
2018
- 2018-04-16 CN CN201810337846.2A patent/CN110389886B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9197599B1 (en) * | 1997-09-26 | 2015-11-24 | Verizon Patent And Licensing Inc. | Integrated business system for web based telecommunications management |
CN106776344A (zh) * | 2017-01-16 | 2017-05-31 | 上海聚宝网络科技股份有限公司 | 一种基于appium的智能快递柜的自动化测试方法 |
CN107168702A (zh) * | 2017-05-10 | 2017-09-15 | 苏州奇松软件有限公司 | 一种App、小程序和Web接口定义和代码生成方法 |
CN107678956A (zh) * | 2017-09-22 | 2018-02-09 | 郑州云海信息技术有限公司 | 一种服务器自动化测试管理系统及方法 |
CN107704396A (zh) * | 2017-10-20 | 2018-02-16 | 平安科技(深圳)有限公司 | 应用程序的测试方法及装置 |
CN107728999A (zh) * | 2017-11-14 | 2018-02-23 | 苏州奇松软件有限公司 | 一种App、小程序接口模拟的方法和系统 |
Non-Patent Citations (3)
Title |
---|
KEVINDO: "HTTP服务端接口模拟工具-HttpServerMockTool", 《CSDN HTTPS://BLOG.CSDN.NET/ADOAIWEN1314/ARTICLE/DETAILS/50518758 》 * |
琳念梦: "微信小程序远程调试的实现", 《百度经验 HTTPS://JINGYAN.BAIDU.COM/ARTICLE/9080802209A4ECFD91C80F27.HTML》 * |
薛定谔的猿: "微信小程序页面5层限制的一种解决方案", 《SEGMENTFAULT HTTPS://SEGMENTFAULT.COM/A/1190000012282464》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113722020A (zh) * | 2020-05-26 | 2021-11-30 | 腾讯科技(深圳)有限公司 | 接口调用方法、装置和计算机可读存储介质 |
CN114490228A (zh) * | 2021-07-21 | 2022-05-13 | 荣耀终端有限公司 | 一种蓝牙自动化测试方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110389886B (zh) | 2021-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210034336A1 (en) | Executing a process-based software application in a first computing environment and a second computing environment | |
WO2020155777A1 (zh) | Ui自动化功能测试方法、测试装置、测试设备及存储介质 | |
CA2674659C (en) | Synchronous to asynchronous web page conversion | |
US10691320B2 (en) | Simulation of cloud platform integration testing in a visual interface | |
JP5790412B2 (ja) | 対話的クライアント‐サーバー・アプリケーションのステートレスな分散式並列クロール技法 | |
US20050160431A1 (en) | Method and mechanism for debugging a series of related events within a computer system | |
KR101637371B1 (ko) | 스마트기기용 어플리케이션의 테스트 시스템 및 그 방법 | |
CN105637478A (zh) | 原生移动应用代码的计算机辅助开发 | |
CN114791846B (zh) | 一种针对云原生混沌工程实验实现可观测性的方法 | |
CN110955600A (zh) | 接口测试方法及装置 | |
CN114265680A (zh) | 一种海量数据处理方法、装置、电子设备及存储介质 | |
CN115237295A (zh) | 一种可视化拖拽生成流程图的方法、电子设备及介质 | |
CN110389886A (zh) | 一种主体应用程序的附加功能测试方法、装置及存储介质 | |
CN104166551B (zh) | 一种应用接口开发方法和开发装置 | |
KR101888472B1 (ko) | BPM 기반의 IoT DIY 시스템 및 이의 구현방법 | |
CN109542754A (zh) | 移动设备的接入方法、应用程序的调试方法、装置和系统 | |
CN111797340B (zh) | 一种自定义提取流程的服务封装系统 | |
CN104461893B (zh) | 数据处理方法与数据处理装置 | |
CN116401025A (zh) | 一种数据处理系统及数据处理方法 | |
JP2012099104A (ja) | 並列の分散環境において対話的クライアント‐サーバー・アプリケーションの効率的な部分的クロールを行う技法 | |
CN109446103A (zh) | 一种CIM Provider测试方法及装置 | |
CN109522217A (zh) | 应用程序的内存测试方法及终端设备 | |
CN110321276A (zh) | 测试用例的生成方法和装置 | |
CN113935100B (zh) | 一种云建模方法、云建模装置以及云建模系统 | |
Noguero et al. | Towards a smart applications development framework |
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 |