用户界面的测试方法、中控服务器、测试终端及系统的制作方法

文档序号:6639665阅读:388来源:国知局
用户界面的测试方法、中控服务器、测试终端及系统的制作方法
【专利摘要】本发明公开了一种用户界面的测试方法、中控服务器、测试终端及系统,涉及自动化测试领域,能够解决UI控件测试过程复杂、繁琐的问题。本发明主要的技术方案为:中控服务器接收测试指令,该测试指令用于指示对选定的被测应用进行用户界面UI测试;中控服务器获取所述被测应用的数据包,并将该数据包下发给测试终端;测试终端根据数据包启动运行被测应用,并获取应用界面中各项控件的界面坐标;测试终端根据界面坐标对控件进行模拟点击;测试终端记录点击所述控件产生的测试结果。本发明主要用于对应用的用户界面进行测试。
【专利说明】用户界面的测试方法、中控服务器、测试终端及系统

【技术领域】
[0001]本发明涉及自动化测试领域,尤其涉及一种用户界面的测试方法、中控服务器、测试终端及系统。

【背景技术】
[0002]用户界面(User Interface,简称UI)测试一般包括布局测试、内容测试(包括文字和图片)、风格测试、控件测试等内容。对于布局、内容风格、字体等测试对象,通常采用静态方式进行测试,例如使用点检表结合人工观察的方式获得测试结果。而对于用户界面中的控件来说,由于其具有人机交互的特性,能够向用户提供诸如界面跳转、开关控制、文字输入等交互性功能,因此现有技术中往往采用动态方式对UI中的控件进行测试。
[0003]现有针对UI控件的动态测试多数需要测试人员编写测试用例,对被测试对象、测试方式、预期结果等内容进行界定,然后由测试设备(例如手机)执行该测试用例完成对Π控件的测试。
[0004]在上述测试Π控件的过程中发明人发现,测试用例的编写通常较为专业,对于普通的测试人员而言,编写一套完整、可用并且高效的测试用例并不是一件简单的事情。特别是在测试用例欠缺移植性的情况下,针对不同测试对象单独编写测试用例并不现实。


【发明内容】

[0005]有鉴于此,本发明提供一种用户界面控件的测试方法、中控服务器、测试终端及系统,能够解决UI控件测试过程复杂、繁琐的问题。
[0006]依据本发明一个方面,提出了一种用户界面控件的测试方法,该方法包括:
[0007]中控服务器接收测试指令,所述测试指令用于指示对选定的被测应用进行用户界面UI测试;
[0008]所述中控服务器获取所述被测应用的数据包,并将所述数据包下发给测试终端;
[0009]所述测试终端根据所述数据包启动运行所述被测应用,并获取应用界面中各项控件的界面坐标;
[0010]所述测试终端根据所述界面坐标对所述控件进行模拟点击;
[0011]所述测试终端记录点击所述控件产生的测试结果。
[0012]依据本发明另一个方面,提出了一种中控服务器,该中控服务器包括:
[0013]接收单元,用于接收测试指令,所述测试指令用于指示对选定的被测应用进行用户界面UI测试;
[0014]获取单元,用于根据所述接收单元接收的所述测试指令获取所述被测应用的数据包;
[0015]发送单元,用于将所述获取单元获取的所述数据包下发给测试终端,以使得所述测试终端根据所述数据包启动运行所述被测应用,对所述被测应用的UI控件进行测试。
[0016]依据本发明另一个方面,还提出了一种测试终端,该测试终端包括:
[0017]接收单元,用于接收中控服务器下发的被测应用的数据包;
[0018]执行单元,用于根据所述接收单元接收的所述数据包启动运行所述被测应用;
[0019]获取单元,用于在所述执行单元运行所述被测应用的过程中,获取应用界面中各项控件的界面坐标;
[0020]处理单元,用于根据所述获取单元获取的所述界面坐标对所述控件进行模拟点击;
[0021]记录单元,用于记录所述处理单元点击所述控件产生的测试结果。
[0022]依据本发明另一个方面,提出了一种用户界面的测试系统,该系统包括中控服务器及测试终端;
[0023]所述中控服务器,用于接收测试指令,所述测试指令用于指示对选定的被测应用进行用户界面Π测试,获取所述被测应用的数据包,并将所述数据包下发给所述测试终端;
[0024]所述测试终端,用于根据所述中控服务器下发的所述数据包启动运行所述被测应用,获取应用界面中各项控件的界面坐标,根据所述界面坐标对所述控件进行模拟点击,并记录点击所述控件产生的测试结果。
[0025]本发明所采用的一种用户界面控件的测试方法、中控服务器、测试终端及系统,是由中控服务器接收测试指令,获取被测应用的数据包,并将数据包发送给测试终端,由测试终端获取被测应用界面中的控件界面坐标,根据所获取的坐标进行模拟点击测试,并将测试结果记录下来。通过该方法所进行的UI测试,测试人员只需要对中控服务器发送测试指令,然后只需要等待中控服务器与测试终端对被测应用的自动测试,最后在测试终端上获取测试结果,相对于现有技术,测试人员可以省去对测试用例的编写,也不需要对被测试对象、测试方式、预期结果等内容进行界定,从而大幅降低了测试人员的工作强度,从根本上解决了 Π控件测试过程复杂、繁琐的问题。
[0026]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。

【专利附图】

【附图说明】
[0027]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0028]图1示出了本发明实施例提出的一种用户界面的测试方法流程图;
[0029]图2示出了本发明实施例提出的另一种用户界面的测试方法流程图;
[0030]图3示出了本发明实施例提出的一种中控服务器的结构示意图;
[0031]图4示出了本发明实施例提出的另一种中控服务器的结构示意图;
[0032]图5示出了本发明实施例提出的测试终端的结构示意图;
[0033]图6示出了本发明实施例提出的另一种测试终端的结构示意图;
[0034]图7示出了本发明实施例提出的一种用户界面的测试系统示意图。

【具体实施方式】
[0035]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0036]本发明实施例提供了一种用户界面的测试方法,如图1所示,该方法包括:
[0037]101、中控服务器接收测试指令,测试指令用于指示对选定的被测应用进行用户界Mui测试。
[0038]在测试人员通过测试平台中选择出作为测试对象的应用后,中控服务器接收测试平台下发的测试指令。本实施例主要针对UI控件的点击功能进行测试。
[0039]102、中控服务器获取被测应用的数据包,并将数据包下发给测试终端。
[0040]中控服务器在确定所要进行的UI测试项目后,需要获取被测应用的数据包。通常,中控服务器中保存有用于记录应用数据包存储路径的映射关系表。在获得测试指令之后,中控服务器根据该指令中携带的应用标识查找映射关系表,获得该应用数据包的存储路径,并进一步根据该存储路径获得该应用的数据包。实际应用中,数据包可以存储在中控服务器内部,也可以存储在独立于中控服务器的数据库中,无论采用何种存储方式,中控服务器都可以通过查找存储路径的方式获得应用的数据包。
[0041]本实施例主要针对安卓(Android)操作系统下的应用进行测试,因此,上述数据包往往是指对应安卓应用的安卓数据包(Android Package,简称APK)。
[0042]中控服务器在获取被测应用的数据包后,会将该数据包下发给测试终端,由测试终端进行保存并进行测试。
[0043]在本实施例的一种实现方式中,中控服务器调用ADB(Android Debug Bridge)的PUSH命令将数据包同步到测试终端中。由测试终端对该数据包进行存储,而对于存储的方式可以是存储在测试终端本地,也可以是存储在连接在该测试终端上的存储设备内,此方式主要是针对测试终端本身不具备存储空间的情况。
[0044]103、测试终端根据数据包启动运行被测应用,并获取应用界面中各项控件的界面坐标。
[0045]测试终端在得到由中控服务器发送的被测应用数据包后,将自动对该数据包进行解析处理,在获得被测应用的执行文件后启动并运行该应用,同时获取该被测应用界面中控件的界面坐标。本实施例中,测试终端除获取控件的坐标外,还会获取VIEW的坐标,并采用与测试控件相同的方式对UI中的VIEW进行测试。VIEW与控件的不同之处在于,界面控件是指可在窗体上放置的可视化图形“元件”,如按钮、文件编辑框等,具有执行功能或通过“事件”引发代码运行并完成响应的功能,而VIEW是将界面中的一个固定区块作为一个展示区,其展示的对象可以是动态或静态的图文信息,通常会链接到下一级子界面。
[0046]104、测试终端根据界面坐标对控件进行模拟点击。
[0047]测试终端通过软件模拟现实中用户点击界面中控件的情况对被测应用界面中的控件进行模拟点击,在进行模拟点击时,测试终端通过103中所获取的界面中控件的坐标来确定该控件的具体位置。实际上,测试终端并不能像用户一样通过肉眼及人类思维直观的判断出控件(当然也包括VIEW)的具体位置,本实施例中获取控件坐标的目的即是使测试终端可以在无法识别控件的情况下准确定位并点击各个控件。
[0048]105、测试终端记录点击控件产生的测试结果。
[0049]根据104中的模拟点击事件,测试终端将记录本次点击测试的结果。具体到本发明实施例,点击控件所产生的测试结果就是该被测应用在本次点击后是否会产生响应,有响应说明被测应用中的该控件可以正常执行,而无响应则说明被测应用的该控件无法正常工作,会导致应用进程的崩溃。其中,应用进程的崩溃是指应用程序报错后对应的进程突然消失或者对应的服务自动停止,造成应用进程崩溃的原因多种多样,具体到本发明实施例,是在Android操作系统中,应用的进程在执行过程中,每进行一步操作,都会在系统中产生一个相对应的线程来进行处理,在处理完成后再自动结束该线程。而当线程的处理时间较长,而在同一段时间内又开启了数量较多的线程时,该应用就会消耗系统内的大量内存资源,而根据Android系统的运行机制,系统会自动停止该进程中的一部分线程来释放内存资源用于其它应用的运行,在这个过程中,如果系统停止的线程中包含有该应用的某个核心进程时,该应用就会出现进程崩溃的现象。
[0050]本发明实施例所采用一种用户界面控件的测试方法,是由中控服务器接收测试指令,获取被测应用的数据包,并将数据包发送给测试终端,由测试终端获取被测应用界面中的控件界面坐标,根据所获取的坐标进行模拟点击测试,并将测试结果记录下来。通过该方法所进行的UI测试,测试人员只需要对中控服务器发送测试指令,然后就是等待中控服务器与测试终端对被测应用的自动测试,最后在测试终端上获取测试结果,相对于现有技术,测试人员可以省去对测试用例的编写,也不需要对被测试对象、测试方式、预期结果等内容进行界定,从而大幅降低了测试人员的工作强度,从根本上解决了 UI控件测试过程复杂、繁琐的问题。
[0051]为了进一步对上述的方法进行细化说明,本发明实施例还提供一种用户界面的测试方法,如图2所示,该方法包括:
[0052]201、中控服务器接收测试指令,测试指令用于指示对选定的被测应用进行用户界Mui测试。
[0053]测试指令的生成可以是由中控服务器通过Web页面显示包含可选应用的列表或菜单,在列表或菜单中顺序列出应用的相关属性信息,如应用的名称、提供方、应用的大小等。在测试人员选中可选应用时,中控服务器获得测试指令,并将选中的可选应用确定为被测应用。其中,中控服务器通过Web页面所显示的可选操作一般为单选模式,即不能同时选中两个应用进行Π测试。
[0054]202、中控服务器获取被测应用的数据包,并将数据包下发给测试终端。
[0055]中控服务器在根据测试指令获取被测应用的数据包后,中控服务器将所获取的数据包下发给测试终端。其中,下发给测试终端的具体方式可以是中控服务器通过无线网络传输的方式向测试终端直接发送,如利用WIFI网络进行的数据包发送,也可以是由中控服务器通过代理服务器间接发送给终端测试终端,例如中控服务器将数据包先发送给代理服务器,再由代理服务器发送给测试终端。代理服务器与测试终端可以通过USB接口连接或是通过无线网络进行连接。以上所述的下发方式,是根据具体应用场景的不同而改变的,例如,在中控服务器与测试终端距离较近或者测试应用的任务较少时就可以采用前一种方式,而对于中控服务器与测试终端距离较远,或者测试应用的任务较多需要代理服务器分担任务时,就可以采用后一种的下发方式,本发明实施例对使用何种下发方式不作具体限定。
[0056]203、测试终端根据数据包启动运行被测应用,并获取应用界面中各项控件的界面坐标。
[0057]测试终端在收到中控服务器发送的数据包后,将对该数据包进行解析,获取数据包中被测应用首界面的界面标识,该界面是被测应用执行时所显示的第一个界面,其界面标识记载了界面的名称、版本等信息。同时,得到被测应用的执行文件并且启动该被测应用。
[0058]在启动被测应用后,测试终端将根据解析出的被测应用的首界面的界面标识,识别出被测应用启动后的首界面(一个界面也称作为一个Activity)。从该首界面的控件开始,终端按照一定的顺序(例如由左至右或由上至下)依次遍历首界面以及其各级子界面中的各个控件。
[0059]在每遍历到一个控件时,测试终端都要获取该控件的界面坐标。本实施例中,测试终端通过调用Accessibility接口实现控件的遍历以及界面坐标的获取。其中,AccessibiIity是一种以程序方式访问Π元素信息或操作这些Π元素的功能服务,在本发明实施例中,测试终端可以通过AccessibiIity访问被测应用中的UI界面并获取其中控件的相关信息,包括控件类型以及控件在界面中的坐标参数等信息。通过调用Accessibility接口来遍历应用界面中的控件的具体实现方式为:测试终端根据数据包中的首界面的界面标识,定位到起始应用界面。再从起始应用界面开始,按照深度优先的规则顺次遍历各级应用界面中的控件。所谓深度优先规则是指,按照某个控件指向的逻辑路径逐级点击各个子界面,直至点击至最底层界面后再返回上一级界面点击其他界面。示例性的,以某餐饮类应用为例,首界面用于选择地区,其中包含“北京”、“上海”、“深圳”、“成都”等控件。按照由左至右、由上至下的顺序,测试终端首先点击控件“北京”,进入下一级子菜单,然后仍以前述顺序顺次点击第二级界面中的控件“烧烤类”、第三级界面中的控件“自助餐”以及最后一级界面中的控件“某某餐馆”,由此完成一次深度遍历。然后,测试终端继续点击最后一级界面中对应其他餐馆的控件,直至全部点击完毕后返回第三级菜单,继续点击“西餐”等其他控件。
[0060]在进行完一次深度遍历后,测试终端按照获取界面坐标的先后顺序对控件进行排序,就会得到一个按照深度优先原则排序的控件列表,在列表中记录了该应用中所有控件的数量以及各控件对应的界面坐标,例如“北京” 一〉“烧烤类” 一〉“自助餐” 一〉“某某餐馆”。
[0061]204、测试终端根据界面坐标对控件进行模拟点击。
[0062]在进行模拟点击时,测试终端执行shell命令,将所获取的控件界面坐标写入到input语句中并执行该input语句,由此完成一次模拟点击。
[0063]需要说明的是,对控件的模拟点击不需要在获取应用的所有控件界面坐标后再执行,而是可以根据203中获取控件界面坐标的同时就执行对该控件的模拟点击操作。
[0064]205、测试终端记录点击控件产生的测试结果。
[0065]测试终端将204中的模拟点击的结果记录下来,并生成一个控件测试结果列表,在该列表中除了记录有所点击过的控件的名称和被点击控件的数量外,还记录有控件相对于应用界面的点击路径,该点击路径是记录测试终端由被测应用首界面中的控件顺序点击到当前所点击的控件的路径信息(例如北京” 一〉“烧烤类” 一〉“自助餐” 一〉“某某餐馆”)。实际应用中,该点击路径通常用于记录导致应用进程崩溃的点击过程。
[0066]进一步的,上述的控件测试结果列表还可以与203中的按照深度优先原则排序的控件列表相结合,将测试结果与控件的点击路径记录到该表中。
[0067]206、测试终端向中控服务器上报测试结果。
[0068]在获得测试结果后,测试终端将该结果上报给中控服务器,再有中控服务器上报给测试平台,供测试人员查看。实际应用中,可以使用多个测试终端对同一应用进行UI测试,并由中控服务器对各个测试终端上报的测试结果进行汇总去重,由此可以剔除个体终端的随机性因素,获得更加稳定、准确的测试结果。
[0069]进一步的,在实际应用中,测试终端在按照深度优先原则遍历应用中的控件,获取控件的界面坐标时,有可能会陷入死循环的点击过程。通常情况下,死循环现象的产生主要有界面中的“返回”控件引起,由于存在“返回”控件,测试终端可能会在上下级界面中反复进行“进入〈一〉返回”的点击操作,由此陷入循环,不能自拔。本实施例中,为防止死循环情况的产生,测试终端可以执行如下的操作:
[0070]步骤1、测试终端对控件的模拟点击次数进行计数。
[0071]测试终端会在本地生成一个DB (data base)文件,每获取一个控件就会在该文件中为该控件建立一条记录。当模拟点击发生时,测试终端会根据计数器的读数对DB文件中的记录进行修改并保存。
[0072]步骤2、在再次进行模拟点击之前,测试终端读取计数值。
[0073]由于存在多次点击的可能,比如在同一个界面中的两个不同控件的下一级界面相同时,该下一级界面的控件就会被多次点击。而在每个控件进行模拟点击后,测试终端将通过计数器记录点击的次数,并在下一次模拟点击之前,保持该控件点击次数的计数值。
[0074]步骤3、若计数值已达到预设数量,则取消对所述控件的模拟点击操作。
[0075]测试终端在点击控件前,会读取该控件的计数值,并与预设数量进行比较,如果该计数值已达到该预设数量,测试终端将取消对控件的模拟点击操作。其中,预设数量的设定可以根据由测试人员自定义设置为不小于I的正整数。通过对点击次数的限定,就可以有效防止测试过程陷入死循环情况的出现。
[0076]进一步的,由于测试终端通过软件模拟点击控件的方式相对于实际的硬件点击测试可以节省大量的人力以及时间成本,但即便是采用模拟点击的方式,对于一些界面和控件较多,层次比较复杂的应用来说,要做完一次完整的测试也是需要很长一段时间的,为了控制测试的时间,同时还可以进一步防止测试落入死循环的情况,本发明实施例可以通过对测试时间的限定来简化测试的过程,其具体方式为:测试终端对Π测试的过程进行计时;当Π测试的耗时超过预设时长时,测试终端终止Π测试过程。其中,预设时常的设定应大于该测试由首界面中的控件点击开始到达该应用最低层界面中的控件点击过程的时长。
[0077]进一步的,在本发明的一种实现方式中,作为对前述以深度优先原则遍历方式的替换,本系统还支持monkey点击测试的方式,该方式是通过随机获取应用界面中的坐标为控件的界面坐标,之后同样是通过测试终端启动shell命令,将控件的界面坐标写入到input语句中并执行该input语句来执行模拟点击操作,得到测试结果。采用该方式进行的测试,可以通过限定随机获取界面坐标的次数来控制测试的时间,该测试方式更多的意义在于对该应用UI测试的控件点击承受压力的测试,测试应用在有限次的点击过程中会不会发生应用崩溃的情况。
[0078]进一步的,作为对上述图1或图2所示方法的实现,本发明另一实施例还提供了一种中控服务器,用以对上述图1或图2所示的方法进行实现。如图3所示,该中控服务器包括:接收单元31、获取单元32以及发送单元33,其中:
[0079]接收单元31,用于接收测试指令,测试指令用于指示对选定的被测应用进行用户界面UI测试;
[0080]获取单元32,用于根据接收单元31接收的测试指令获取被测应用的数据包;
[0081]发送单元33,用于将获取单元32获取的数据包下发给测试终端,以使得测试终端根据数据包启动运行被测应用,对被测应用的UI控件进行测试。
[0082]进一步的,如图4所示,接收单元31,包括:
[0083]处理子单元311,用于发送Web页面显示包含可选应用的列表或菜单;
[0084]确定子单元312,用于在测试人员选中可选应用时,获得测试指令,并将选中的可选应用确定为被测应用。
[0085]进一步的,接收单元31,用于接收测试终端上报的测试结果。
[0086]进一步的,作为对上述图1或图2所示方法的实现,本发明另一实施例还提供了一种测试终端,用以对上述图1或图2所示的方法进行实现。如图5所示,该测试终端包括:接收单元51、执行单元52、获取单元53、处理单元54以及记录单元55,其中:
[0087]接收单元51,用于接收中控服务器下发的被测应用的数据包;
[0088]执行单元52,用于根据接收单元51接收的数据包启动运行被测应用;
[0089]获取单元53,用于在执行单元52运行被测应用的过程中,获取应用界面中各项控件的界面坐标;
[0090]处理单元54,用于根据获取单元53获取的界面坐标对控件进行模拟点击;
[0091]记录单元55,用于记录处理单元54点击控件产生的测试结果。
[0092]进一步的,获取单元53,用于调用Accessibility接口遍历应用界面中的控件,并获得各项控件的界面坐标。
[0093]进一步的,获取单元53,用于:
[0094]获取所述被测应用的首界面的界面标识,并根据所述界面标识定位到起始应用界面;
[0095]从起始应用界面开始,按照深度优先的规则顺次遍历各级应用界面中的控件。
[0096]进一步的,处理单元54,用于启动shell命令,将界面坐标写入到input语句中并执行input语句。
[0097]进一步的,记录单元55,用于:
[0098]记录各级应用界面中控件的点击路径;
[0099]当发生进程崩溃时,根据点击路径确定导致进程崩溃的点击过程。
[0100]进一步的,如图6所示,该测试终端进一步包括:
[0101]计数单元56,用于对处理单元54点击控件的模拟点击次数进行计数;
[0102]处理单元54,用于在再次进行模拟点击之前,读取计数单元56记录的计数值,若计数值已达到预设数量,则取消对控件的模拟点击操作。
[0103]进一步的,如图6所示,该测试终端进一步包括:
[0104]计时单元57,用于对执行单元52执行的UI测试的过程进行计时;
[0105]执行单元52,用于当计时单元57记录的UI测试的耗时超过预设时长时,终止Π测试过程。
[0106]进一步的,如图6所示,该测试终端进一步包括:
[0107]发送单元58,用于在记录单元55记录点击控件产生的测试结果之后,向中控服务器上报记录单元55记录的测试结果。
[0108]进一步的,作为对上述图1或图2所示方法的实现,本发明另一实施例还提供了一种用户界面的测试系统。如图7所示,该系统包括中控服务器71及测试终端72 ;
[0109]中控服务器71,用于接收测试指令,测试指令用于指示对选定的被测应用进行用户界面Π测试,获取被测应用的数据包,并将数据包下发给测试终端72 ;
[0110]测试终端72,用于根据中控服务器71下发的数据包启动运行被测应用,获取应用界面中各项控件的界面坐标,根据界面坐标对控件进行模拟点击,并记录点击控件产生的测试结果。
[0111]综上所述,本发明实施例所采用的中控服务器、测试终端及系统,能够由中控服务器接收测试指令,接收被测应用的数据包,并将数据包发送给测试终端,由测试终端获取被测应用界面中的控件界面坐标,根据所获取的坐标进行模拟点击测试,同时将测试结果记录下来,并将该结果再上报给中控服务器。通过该方法所进行的UI测试,测试人员只需要对中控服务器发送测试指令,然后只需要等待中控服务器与测试终端对被测应用的自动测试,最后由测试终端获取测试结果并上报给中控服务器,测试人员可以通过中控服务器获取最终的测试结果用以分析给被测应用的可靠性,相对于现有技术,使用本方案可以省去测试人员对测试用例的编写,也不需要对被测试对象、测试方式、预期结果等内容进行界定,并且通过对Π界面中控件的模拟点击次数的计数,以及限制测试的总时长还起到了简单有效的防止测试进入死循环状况出现的作用,同时大幅降低了测试人员的工作强度,从根本上解决了 UI控件测试过程复杂、繁琐的问题。
[0112]进一步的,本发明还公开了:
[0113]Al、一种用户界面的测试方法,所述方法包括:
[0114]中控服务器接收测试指令,所述测试指令用于指示对选定的被测应用进行用户界面UI测试;
[0115]所述中控服务器获取所述被测应用的数据包,并将所述数据包下发给测试终端;
[0116]所述测试终端根据所述数据包启动运行所述被测应用,并获取应用界面中各项控件的界面坐标;
[0117]所述测试终端根据所述界面坐标对所述控件进行模拟点击;
[0118]所述测试终端记录点击所述控件产生的测试结果。
[0119]A2、根据Al所述的方法,所述中控服务器接收测试指令,包括:
[0120]所述中控服务器通过Web页面显示包含可选应用的列表或菜单;
[0121]在测试人员选中所述可选应用时,所述中控服务器获得所述测试指令,并将选中的所述可选应用确定为所述被测应用。
[0122]A3、根据Al所述的方法,所述测试终端获取应用界面中各项控件的界面坐标,包括:
[0123]所述测试终端调用Accessibility接口遍历所述应用界面中的控件,并获得各项控件的界面坐标。
[0124]A4、根据A3所述的方法,所述测试终端调用Accessibility接口遍历所述应用界面中的控件,包括:
[0125]所述测试终端获取所述被测应用的首界面的界面标识,并根据所述界面标识定位到起始应用界面;
[0126]所述测试终端从所述起始应用界面开始,按照深度优先的规则顺次遍历各级应用界面中的控件。
[0127]A5、根据Al所述的方法,所述测试终端根据所述界面坐标对所述控件进行模拟点击,包括:
[0128]所述测试终端启动shell命令,将所述界面坐标写入到input语句中并执行所述input语句。
[0129]A6、根据Al所述的方法,所述测试终端记录点击所述控件产生的测试结果,包括:
[0130]所述测试终端记录各级应用界面中控件的点击路径;
[0131]当发生进程崩溃时,所述测试终端根据所述点击路径确定导致进程崩溃的点击过程。
[0132]A7、根据Al所述的方法,所述方法进一步包括:
[0133]所述测试终端对所述控件的模拟点击次数进行计数;
[0134]在再次进行模拟点击之前,所述测试终端读取所述计数值;
[0135]若所述计数值已达到预设数量,则取消对所述控件的模拟点击操作。
[0136]A8、根据Al所述的方法,所述方法进一步包括:
[0137]所述测试终端对所述UI测试的过程进行计时;
[0138]当所述Π测试的耗时超过预设时长时,所述测试终端终止所述Π测试过程。
[0139]A9、根据Al所述的方法,在所述测试终端记录点击所述控件产生的测试结果之后,所述方法进一步包括:
[0140]所述测试终端向所述中控服务器上报所述测试结果。
[0141]B10、一种中控服务器,所述中控服务器包括:
[0142]接收单元,用于接收测试指令,所述测试指令用于指示对选定的被测应用进行用户界面UI测试;
[0143]获取单元,用于根据所述接收单元接收的所述测试指令获取所述被测应用的数据包;
[0144]发送单元,用于将所述获取单元获取的所述数据包下发给测试终端,以使得所述测试终端根据所述数据包启动运行所述被测应用,对所述被测应用的UI控件进行测试。
[0145]B11、根据BlO所述的中控服务器,所述接收单元,包括:
[0146]处理子单元,用于发送Web页面显示包含可选应用的列表或菜单;
[0147]确定子单元,用于在测试人员选中所述可选应用时,获得所述测试指令,并将选中的所述可选应用确定为所述被测应用。
[0148]B12、根据BlO所述的中控服务器,所述接收单元,用于接收所述测试终端上报的测试结果。
[0149]C13、一种测试终端,所述测试终端包括:
[0150]接收单元,用于接收中控服务器下发的被测应用的数据包;
[0151]执行单元,用于根据所述接收单元接收的所述数据包启动运行所述被测应用;
[0152]获取单元,用于在所述执行单元运行所述被测应用的过程中,获取应用界面中各项控件的界面坐标;
[0153]处理单元,用于根据所述获取单元获取的所述界面坐标对所述控件进行模拟点击;
[0154]记录单元,用于记录所述处理单元点击所述控件产生的测试结果。
[0155]C14、根据C13所述的测试终端,所述获取单元,用于调用Accessibility接口遍历所述应用界面中的控件,并获得各项控件的界面坐标。
[0156]C15、根据C14所述的测试终端,所述获取单元,用于:
[0157]获取所述被测应用的首界面的界面标识,并根据所述界面标识定位到起始应用界面;
[0158]从所述起始应用界面开始,按照深度优先的规则顺次遍历各级应用界面中的控件。
[0159]C16、根据C13所述的测试终端,所述处理单元,用于启动shell命令,将所述界面坐标写入到input语句中并执行所述input语句。
[0160]C17、根据C13所述的测试终端,所述记录单元,用于:
[0161]记录各级应用界面中控件的点击路径;
[0162]当发生进程崩溃时,根据所述点击路径确定导致进程崩溃的点击过程。
[0163]C18、根据C13所述的测试终端,所述测试终端进一步包括:
[0164]计数单元,用于对所述处理单元点击所述控件的模拟点击次数进行计数;
[0165]所述处理单元,用于在再次进行模拟点击之前,读取所述计数单元记录的所述计数值,若所述计数值已达到预设数量,则取消对所述控件的模拟点击操作。
[0166]C19、根据C13所述的测试终端,所述测试终端进一步包括:
[0167]计时单元,用于对所述执行单元执行的所述UI测试的过程进行计时;
[0168]所述执行单元,用于当所述计时单元记录的所述UI测试的耗时超过预设时长时,终止所述Π测试过程。
[0169]C20、根据C13所述的测试终端,所述测试终端进一步包括:
[0170]发送单元,用于在所述记录单元记录点击所述控件产生的测试结果之后,向所述中控服务器上报所述记录单元记录的所述测试结果。
[0171]D21、一种用户界面的测试系统,所述系统包括中控服务器及测试终端;
[0172]所述中控服务器,用于接收测试指令,所述测试指令用于指示对选定的被测应用进行用户界面Π测试,获取所述被测应用的数据包,并将所述数据包下发给所述测试终端;
[0173]所述测试终端,用于根据所述中控服务器下发的所述数据包启动运行所述被测应用,获取应用界面中各项控件的界面坐标,根据所述界面坐标对所述控件进行模拟点击,并记录点击所述控件产生的测试结果。
[0174]在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0175]可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
[0176]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0177]在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0178]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0179]类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身都作为本发明的单独实施例。
[0180]本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0181]此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0182]本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的发明名称(如确定网站内链接等级的装置)中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0183] 应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
【权利要求】
1.一种用户界面的测试方法,其特征在于,所述方法包括: 中控服务器接收测试指令,所述测试指令用于指示对选定的被测应用进行用户界面UI测试; 所述中控服务器获取所述被测应用的数据包,并将所述数据包下发给测试终端; 所述测试终端根据所述数据包启动运行所述被测应用,并获取应用界面中各项控件的界面坐标; 所述测试终端根据所述界面坐标对所述控件进行模拟点击; 所述测试终端记录点击所述控件产生的测试结果。
2.根据权利要求1所述的方法,其特征在于,所述中控服务器接收测试指令,包括: 所述中控服务器通过Web页面显示包含可选应用的列表或菜单; 在测试人员选中所述可选应用时,所述中控服务器获得所述测试指令,并将选中的所述可选应用确定为所述被测应用。
3.根据权利要求1所述的方法,其特征在于,所述测试终端获取应用界面中各项控件的界面坐标,包括: 所述测试终端调用Accessibility接口遍历所述应用界面中的控件,并获得各项控件的界面坐标。
4.根据权利要求3所述的方法,其特征在于,所述测试终端调用Accessibility接口遍历所述应用界面中的控件,包括: 所述测试终端获取所述被测应用的首界面的界面标识,并根据所述界面标识定位到起始应用界面; 所述测试终端从所述起始应用界面开始,按照深度优先的规则顺次遍历各级应用界面中的控件。
5.根据权利要求1所述的方法,其特征在于,所述测试终端根据所述界面坐标对所述控件进行模拟点击,包括: 所述测试终端启动shell命令,将所述界面坐标写入到input语句中并执行所述input语句。
6.根据权利要求1所述的方法,其特征在于,所述测试终端记录点击所述控件产生的测试结果,包括: 所述测试终端记录各级应用界面中控件的点击路径; 当发生进程崩溃时,所述测试终端根据所述点击路径确定导致进程崩溃的点击过程。
7.根据权利要求1所述的方法,其特征在于,所述方法进一步包括: 所述测试终端对所述控件的模拟点击次数进行计数; 在再次进行模拟点击之前,所述测试终端读取所述计数值; 若所述计数值已达到预设数量,则取消对所述控件的模拟点击操作。
8.一种中控服务器,其特征在于,所述中控服务器包括: 接收单元,用于接收测试指令,所述测试指令用于指示对选定的被测应用进行用户界面UI测试; 获取单元,用于根据所述接收单元接收的所述测试指令获取所述被测应用的数据包; 发送单元,用于将所述获取单元获取的所述数据包下发给测试终端,以使得所述测试终端根据所述数据包启动运行所述被测应用,对所述被测应用的Π控件进行测试。
9.一种测试终端,其特征在于,所述测试终端包括: 接收单元,用于接收中控服务器下发的被测应用的数据包; 执行单元,用于根据所述接收单元接收的所述数据包启动运行所述被测应用; 获取单元,用于在所述执行单元运行所述被测应用的过程中,获取应用界面中各项控件的界面坐标; 处理单元,用于根据所述获取单元获取的所述界面坐标对所述控件进行模拟点击; 记录单元,用于记录所述处理单元点击所述控件产生的测试结果。
10.一种用户界面的测试系统,其特征在于,所述系统包括中控服务器及测试终端; 所述中控服务器,用于接收测试指令,所述测试指令用于指示对选定的被测应用进行用户界面Π测试,获取所述被测应用的数据包,并将所述数据包下发给所述测试终端;所述测试终端,用于根据所述中控服务器下发的所述数据包启动运行所述被测应用,获取应用界面中各项控件的界面坐标,根据所述界面坐标对所述控件进行模拟点击,并记录点击所述控件产生的测试结果。
【文档编号】G06F11/36GK104461900SQ201410805346
【公开日】2015年3月25日 申请日期:2014年12月19日 优先权日:2014年12月19日
【发明者】田野, 张辉, 韩竞竞 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1