CN106033393B - 一种应用程序测试方法及系统以及移动终端 - Google Patents
一种应用程序测试方法及系统以及移动终端 Download PDFInfo
- Publication number
- CN106033393B CN106033393B CN201510112478.8A CN201510112478A CN106033393B CN 106033393 B CN106033393 B CN 106033393B CN 201510112478 A CN201510112478 A CN 201510112478A CN 106033393 B CN106033393 B CN 106033393B
- Authority
- CN
- China
- Prior art keywords
- control
- interface
- operation interface
- controls
- 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.)
- Active
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种应用程序测试方法及系统以及移动终端,属于移动终端测试技术领域;方法包括:步骤S1,于移动终端上启动待测试的应用程序,获取并保存对应于应用程序的当前操作界面的所有控件的相关属性;步骤S2,根据当前操作界面的所有控件的相关属性,判断当前操作界面的类型;步骤S3,针对步骤S2中的判断结果,对当前操作界面中的所有控件进行相应操作,遍历操作应用程序的所有操作界面中的所有控件,以得到并保存对应于每个被操作的控件的结果界面;系统包括:控件获取单元、界面判断单元和控件操作单元。上述技术方案的有益效果是:较便捷地自动测试应用程序的各种操作状况,便于使用者准确了解应用程序各种功能的运行状态。
Description
技术领域
本发明涉及移动终端测试技术领域,尤其涉及一种应用程序测试方法及系统以及移动终端。
背景技术
现有技术中,对于移动终端上运行的应用程序通常需要进行测试操作。所谓应用程序的测试操作,主要供测试人员全方位了解该应用程序在移动终端上的运行状态,从而根据测试结果相应调整应用程序的功能和适用度,以达到较佳的使用体验。
现有技术中,对应用程序的测试操作通常需要手工进行,测试的准确度较低,测试效率也比较低下。
发明内容
根据现有技术中存在的问题,现提供一种应用程序测试方法及系统以及移动终端的技术方案,旨在实现对应用程序进行比较便捷的遍历测试的目的。
上述技术方案具体包括:
一种应用程序测试方法,适用于移动终端;其中,具体包括:
步骤S1,于所述移动终端上启动待测试的应用程序,获取并保存对应于所述应用程序的当前操作界面的所有控件的相关属性;
步骤S2,根据所述当前操作界面的所有所述控件的相关属性,判断所述当前操作界面的类型;
步骤S3,针对所述步骤S2中的判断结果,对所述当前操作界面中的所有所述控件进行相应操作,遍历操作所述应用程序的所有操作界面中的所有所述控件,以得到并保存对应于每个被操作的所述控件的结果界面。
优选的,该应用程序测试方法,其中,所述步骤S1中,将所述当前操作界面中的所有所述控件的相关属性以文本形式表示保存,以文本中的一行表示一个对应的所述控件的相关属性。
优选的,该应用程序测试方法,其中,所述步骤S1中,提供相应的控件信息获取接口,以获取所述控件的相关属性。
优选的,该应用程序测试方法,其中,所述步骤S2具体包括:
步骤S21,预设多个关键字信息;
步骤S22,分别将所述当前操作界面中获取的所有所述控件的相关属性与所述关键字信息进行匹配,以确定并输出所述当前操作界面的界面类型。
优选的,该应用程序测试方法,其中,所述步骤S22中,若根据预设的所述关键字信息无法判断所述当前操作界面的界面类型,则上报判断失败的消息,以供使用者处理。
优选的,该应用程序测试方法,其中,所述步骤S3中,对控件进行遍历操作的方法具体包括:
步骤S31,对一个被选择的所述控件执行相应操作,将操作后形成的画面作为相应的所述控件的结果画面并保存;
步骤S32,若对所述控件进行操作后跳转至相应的另一个操作界面,则将跳转至的所述操作界面作为所述当前操作界面,遍历查找所述当前操作界面中的下一个控件是否已被操作过,选择下一个尚未被操作过的所述控件并返回所述步骤S31;
所述步骤S3中,当所述应用程序的所有操作界面上的所有控件均被操作过后,输出所有被保存的所述结果界面。
优选的,该应用程序测试方法,其中,形成一保存有所述应用程序的操作界面的存储队列,所述存储队列采用先进后出的存储方式保存所述操作界面;
所述步骤S32中,判断对相应的所述控件执行操作后跳转至的操作界面是否包括在所述存储队列中,并将未包括在所述存储队列中的操作界面按序保存于所述存储队列中;
若一个预设的操作界面上所有所述控件均被操作完毕,则将相应的所述操作界面从所述存储队列中去除;
所述步骤S3中,当所述存储队列被清空时,确认对所述应用程序遍历操作完毕,并输出所有被保存的所述结果界面。
优选的,该应用程序测试方法,其中,所述步骤S3中,当所述存储队列中的一个预设的操作界面被去除时,将保存于所述存储队列中的最后一个操作界面作为所述当前操作界面。
优选的,该应用程序测试方法,其中,所述步骤S32中,若对相应的所述控件执行操作后未跳转至相应的操作界面,则遍历查找所述当前操作界面中下一个尚未被操作过的所述控件,以执行相应操作。
优选的,该应用程序测试方法,其中,所述步骤S3中,采用顺序遍历或者随机遍历的方式遍历操作所述应用程序的所有操作界面中的所有所述控件。
优选的,该应用程序测试方法,其中,采用顺序遍历进行操作的实现方法包括:
对所述当前操作界面中的所有所述控件,按照从上到下、从左到右的遍历顺序执行相应操作。
优选的,该应用程序测试方法,其中,采用随即遍历进行操作的实现方法包括:
对所述当前操作界面中的所有所述控件,按照随机顺序遍历执行相应操作。
优选的,该应用程序测试方法,其中,所述步骤S3中,若对所述控件进行相应操作后跳转至另一个应用程序的操作界面,则重新将保存于所述存储队列中的最后一个操作界面作为所述当前操作界面,以继续执行针对所述当前操作界面中包括的控件的遍历操作。
一种应用程序测试系统,适用于移动终端;其中,于所述移动终端上启动待测试的应用程序;
所述应用程序测试系统中包括:
控件获取单元,用于获取所述应用程序的所述当前操作界面中包括的所有控件的相关属性并保存;
界面判断单元,连接所述控件获取单元,用于根据所述当前操作界面中包括的所有所述控件的相关属性,判断所述当前操作界面的类型,输出相应的判断结果;
控件操作单元,连接所述界面判断单元,用于根据所述判断结果,遍历所述当前操作界面中的所有所述控件并分别执行相应的操作,将所述控件经过操作后出现的界面记录为相应的结果界面保存;
所述控件操作单元将所述应用程序的所有操作界面中包括的所有所述控件均遍历操作完毕后,输出保存的所有所述结果界面。
优选的,该应用程序测试系统,其中,所述控件获取单元中包括:
接口提供模块,用于提供相应的控件信息获取接口;
获取模块,连接所述接口提供模块,用于通过所述控件信息获取接口获取相应的所述控件的相关属性;
第一存储模块,连接所述获取模块,用于将所述控件的相关属性以文本形式保存,以文本中的一行表示一个预设的所述控件的相关属性。
优选的,该应用程序测试系统,其中,所述界面判断单元中包括:
第二存储模块,其中预设有多个关键字信息;
界面判断模块,连接所述第二存储模块,用于分别将所述当前操作界面中包括的每个所述控件的相关属性与预设的所述关键字信息进行匹配,并根据匹配结果确定所述当前操作界面的类型;
若经过匹配无法判断所述当前操作界面的类型,则所述界面判断单元上报判断失败的消息,以供使用者处理。
优选的,该应用程序测试系统,其中,所述控件操作单元中包括:
操作判断模块,用于根据所述界面判断单元的判断结果,选择所述当前操作界面中所述控件的操作方式并输出;
控件操作模块,连接所述操作判断模块,用于根据输出的相应的所述操作方式,遍历操作所述当前操作界面中包括的所有所述控件;
暂存模块,其中预设有一用于存储待测试的所述应用程序的操作界面的存储队列,所述存储队列采用先进后出的存储方式保存所述操作界面;
操作控制模块,分别连接所述暂存模块和所述控件操作模块,用于判断待测试的所述应用程序的操作界面中包括的所有所述控件是否均被操作完毕,并将所有所述控件均被操作完毕的所述操作界面从所述存储队列中去除,并控制所述控件操作模块返回至保存于所述存储队列中的最后一个操作界面并继续对控件进行遍历操作;
所述控件操作单元于所述存储队列被清空时确认待测试的所述应用程序的所有操作界面中包括的所有所述控件均被操作完毕,并输出保存的所有所述结果界面。
优选的,该应用程序测试系统,其中,所述控件操作单元还用于判断对所述控件进行操作后是否跳转至另一个应用程序,并在跳转至另一个应用程序时控制所述控件操作单元返回至保存于所述存储队列中的最后一个操作界面,并继续对控件进行遍历操作。
优选的,该应用程序测试系统,其中,所述控件操作单元采用顺序遍历或者随机遍历的方式对包括于所述当前操作界面中的所述控件进行遍历操作。
一种移动终端,其中,采用上述的应用程序测试方法。
一种移动终端,其中,包括上述的应用程序测试系统。
上述技术方案的有益效果是:
1)采用遍历操作控件的方式对应用程序进行测试,可以较便捷地自动测试应用程序的各种操作状况,使用者可以比较准确地了解应用程序的运行状态和各种运行功能;
2)提供用于实现上述应用程序测试方法的应用程序测试系统,为方法实现提供功能模块的支持。
附图说明
图1是本发明的较佳的实施例中,一种应用程序测试方法的总体流程示意图;
图2-3是本发明的较佳的实施例中,一种应用程序测试方法的分步流程示意图;
图4是本发明的较佳的实施例中,一种应用程序测试系统的总体结构示意图;
图5-7是本发明的较佳的实施例中,一种应用程序测试系统的分模块结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
现有技术中,对于应用程序(Application,APP)进行的测试,通常只能通过手工点击控件进行,这种方法比较费力,并且测试时间较长,无法应对需要测试上百种app的情况。
现有技术中,同样也存在一些自动化测试app的方案。但是这些自动化测试方案通常都基于云端实现,即需要将待测试的app提交到云端服务器,并依托云端服务器进行相应的自动化测试。
相应地,现有技术中,对应用程序的各功能进行遍历测试的效果也并不理想,在遇到一些具有特殊功能的操作界面时(例如登录界面),就会出现无法测试的情况,从而导致在测试过程中遇到类似的功能模块测试,会出现死循环或者直接导致测试结束的情况发生,从而无法达到预期的遍历应用程序操作界面进行测试的目的。
基于现有技术中存在的上述问题,本发明的较佳的实施例中,提供一种应用程序测试方法。该方法适用于移动终端。本发明的较佳的实施例中,如图1所示,上述应用程序测试方法具体包括:
步骤S1,于移动终端上启动待测试的应用程序,获取并保存对应于应用程序的当前操作界面的所有控件的相关属性;
获取应用程序当前操作界面上的控件属性的方式可以有多种,以下提供两种获取方式:
1)本发明的一个较佳的实施例中,以安卓系统(Andriod)为例,采用安卓系统中的控件获取工具hierarchyviewer获取当前操作界面中的控件属性。
2)本发明的另一个较佳的实施例中,同样以安卓系统为例,采用安卓系统中的另一个控件获取工具uiautomatorviewer获取当前操作界面中的控件属性。本发明的其他实施例中,还可以采用其他控件获取工具实现当前操作界面的控件的相关属性的获取。
本发明的其他实施例中,上述控件获取工具不限于应用在安卓系统中的工具,也可应用于其他例如ios系统或者windows phone系统等。
本发明的较佳的实施例中,测试人员事先选择好相应的获取方式后(即事先选择相应的控件获取工具后),会提供一个相应的控件获取接口,以供上述控件获取工具获取控件的相关属性。例如,若以hierarchyviewer工具获取控件时,利用ViewServer(视图服务)的方式,以socket(套接字)通信的方式获取控件的相关属性,并提供相应的API接口;又例如,若以uiautomatorviewer工具获取控件时,可以通过xml文件的方式获取控件的相关属性,并提供相应的API接口。
本发明的一个较佳的实施例中,上述步骤S1中获取的控件的相关属性以文本形式被记录。具体地,本发明的较佳的实施例中,相关于同一个操作界面中的控件的相关属性,被记录于同一个文本中。本发明的较佳的实施例中,在文本形式的文件中,以文本中的一行表示一个控件的相关属性。在同一行中,以空格间隔同一控件中不同的属性。
本发明的较佳的实施例中,以文本形式记录控件的相关属性的方式并不限于上文中所述的方式,还可以包括其他方式,例如采用分隔符区分同一控件中不同的属性等。
本发明的其他实施例中,还可以采用其他形式记录控件的相关属性。
本发明的较佳的实施例中,上述控件的相关属性以链表的形式被保存。换言之,操作界面与控件、控件与相关属性之间被相互关联。例如,将操作界面与该操作界面中相应的所有控件以相互关联的链表形式保存,以及将控件与该控件下的所有相关属性以相互关联的链表形式保存。本发明的较佳的实施例中,上述“以链表形式保存”的描述与“以文本形式保存”的描述并不冲突,以链表形式保存的描述是为了说明操作界面与控件、控件与其相关属性之间的关联关系。
综上所述,本发明技术方案中,采用相应的控件获取工具(即选择相应的控件获取方法),通过提供的API接口,获取当前操作界面上的控件的相关属性,并将获取到的内容以相应形式存储(例如上文中所述的以文本形式保存,并以链表形式关联保存等)。
步骤S2,根据当前操作界面的所有控件的相关属性,判断当前操作界面的类型;
本发明的较佳的实施例中,如图2所示,上述步骤S2具体包括:
步骤S21,预设多个关键字信息;
步骤S22,分别将当前操作界面中获取的所有控件的相关属性与关键字信息进行匹配,以确定并输出当前操作界面的界面类型。
本发明的较佳的实施例中,所谓控件的相关属性,是指用于表示控件属性的信息。例如控件对应的操作类型(例如点击、滑动以及输入等),和/或控件对应的操作内容的类型(例如登录控件、信息控件以及通话控件等),和/或控件实时的操作状态(例如未被操作过或者已被操作过),和/或控件位于当前操作界面上的序列标号等等。
则本发明的较佳的实施例中,对于当前操作界面类型的判断,通常会用到控件相关属性中的操作内容的类型。例如,判断是否为登录界面,则需要对该操作界面中的所有空间进行判断,以判断其中是否包括登录控件,和/或包括用户身份验证信息的输入文本框控件。换言之,本发明的较佳的实施例中,当对当前操作界面中的所有控件根据相关属性进行判断后才能得知相应的当前操作界面为何种类型的界面。
具体地,本发明的较佳的实施例中,预设多个关键字信息。所谓关键字信息,实际用于对控件相关属性进行匹配,从而支持判断当前操作界面的类型。
本发明的一个较佳的实施例中,对于判断一个界面是否为登录界面而言,由于对于不同的应用程序而言,有关登录的关键字描述可能并不相同,例如相应的登录控件可能为“登录”,或者“log in”,或者“进入”,或者其他通用可用于表示登录含义的关键字,则相应地可以将这些信息均预设为关键字信息。在实际对当前操作界面进行匹配判断时,若该界面中的相应的控件的属性符合上述关键字信息的匹配时,则可以判断该控件为登录类型的控件。
同样在上述实施例中,还可以根据预设的关键字信息判断某个控件是否为供测试人员输入身份验证信息的输入文本框。则在一个包括两个控件的操作界面中,若该两个控件分别被判断为输入文本框和登录点击控件,则该操作界面就可以被判断为是登录界面。
本发明的其他实施例中,可以采用预设的关键字信息判断所有操作界面的类型,从而根据判断出的类型对其中包括的控件执行相应的操作。例如对于登录界面中的输入文本框,执行文本输入操作;对于登录界面中的登录点击控件,在上述文本输入操作完毕后执行点击操作等等。
本发明的较佳的实施例中,若根据匹配无法确定当前操作界面的类型,即在预设的关键字信息中找不到与当前操作界面中控件的相关属性匹配的信息的,则上报判断失败的消息,以供测试人员处理。测试人员可以通过添加相应的关键字信息的方式对该失败消息进行处理,以完善整个关键字字库。
步骤S3,针对步骤S2中的判断结果,对当前操作界面中的所有控件进行相应操作,遍历操作应用程序的所有操作界面中的所有控件,以得到并保存对应于每个被操作的控件的结果界面。
本发明的较佳的实施例中,所谓结果界面,即一个控件被操作之后形成的界面,可以为控件被操作后跳转至的一个新的操作界面,也可以为控件被操作后不引起跳转而显示的原界面等。
本发明的较佳的实施例中,上述步骤S3中,最终对应用程序的所有操作界面中包括的所有控件均遍历操作完毕,则输出被保存的所有结果界面。
本发明的较佳的实施例中,如图3所示,上述步骤S3中,对当前操作界面进行遍历操作的实现方法具体包括:
步骤S31,对一个被选择的控件执行相应操作,将操作后形成的画面作为相应的控件的结果画面并保存;
步骤S32,若对控件进行操作后跳转至相应的另一个操作界面,则将跳转至的操作界面作为当前操作界面,遍历查找当前操作界面中的下一个控件是否已被操作过,选择下一个尚未被操作过的控件并返回步骤S31;
下文中对上述实现方法做详细描述。
本发明的较佳的实施例中,首先形成一保存有应用程序的操作界面的存储队列,存储队列采用先进后出(First In Last Out,FILO)的存储方式保存操作界面。
具体地,本发明的较佳的实施例中,上述FILO的顺序实际为选择当前操作界面的顺序。例如,当前操作界面为界面A,且该界面A出现时已被列入存储队列中,当对界面A中的某个控件进行操作后,跳转至相应的界面B,则将该界面B保存于存储队列中。则此时界面B比界面A后进入队列,因此此时的当前操作界面为界面B。当界面B被从存储队列中去除时,相应的位于存储队列最末尾的即为界面A,此时的当前操作界面即为界面A。
又例如,当前操作界面为界面A,且该界面A已被列入存储队列中。当对界面A中的某个控件进行操作后,跳转至相应的界面B,但该界面B也已经保存于存储队列中,且该界面B保存的位置较界面A更靠前,即界面B于存储队列中的存储位置较界面A靠前。因此,当该界面B被从存储队列中去除时,将当前操作界面设定为存储队列中最靠后的界面A。
因此,本发明的较佳的实施例中,首先对当前操作界面中的第一个控件执行相应的操作,相应的操作由该控件的相关属性判断决定,例如对控件进行点击、滑动或者拖动等。在对控件执行相应操作后,判断是否跳转至某个界面,并在跳转至另一个操作界面时首先判断该操作界面是否包括在上述存储队列中,即该操作界面是否曾经出现过,并将尚未出现过的全新的操作界面保存入上述存储队列中。本发明的较佳的实施例中,由于对操作界面中的所有控件进行遍历操作(遍历方式在下文中会详述),因此对于每个操作界面中的每个控件的相关属性中均包括操作状态的属性。当判断某个操作界面中的所有控件均被操作完毕后,则将该操作界面从存储队列中去除,并将当前操作界面跳转至存储队列中最后一个的界面(通常为被去除的操作界面的上一个界面)。
以一个预设的应用程序的登录界面判断并操作为例:
现有技术中,无法对一些具有特殊功能的操作界面进行测试,其中就包括登录界面。现有技术中,在对登录界面进行测试时,通常无法测试出其功能,而会导致测试陷入死循环,影响测试的流畅度。
而在本发明技术方案中,在对当前操作界面进行判断时,若根据其中包括的控件的相关属性判断出该当前操作界面为登录界面时(例如其中包括登录点击控件,以及身份信息输入文本框等),对其中相应的控件执行相应的操作。例如对于输入文本框,将预设的身份验证信息输入到文本框中,而对于登录点击控件,在上述身份验证信息输入完毕后,点击该登录点击控件,以完成整个登录界面的控件测试过程。因此,应用本发明技术方案中的应用程序测试方法,可以有效避免因测试一些具有特殊功能的界面时导致的测试陷入死循环的问题,对这些界面同样可以完成测试。
本发明的较佳的实施例中,对于一个预设的操作界面而言,其上包括的每个控件均有相应的序列标号,因此意味着一个预设的操作界面中的所有控件具有一定的顺序。则上述步骤S3中,对于遍历操作的方式,可以有几种实现方法:
1)顺序遍历:所谓顺序遍历,是指在一个预设的操作界面上,按照一定的执行顺序对控件进行相应操作。本发明的一个较佳的实施例中,对于一个预设的操作界面,采用从上至下、从左至右的遍历方式对其中包括的所有控件执行相应操作。
2)随机遍历:所谓随机遍历,是指在一个预设的操作界面中,随机选择其中包括的一个尚未经过操作的控件并执行相应操作,从而遍历完成该操作界面中包括的所有控件的操作。本发明的一个较佳的实施例中,对于一个预设的操作界面,采用上述随机遍历的方式对其中包括的所有控件执行相应操作。
本发明的较佳的实施例中,对遍历方式的选择在测试开始前即由测试人员做出。换言之,在对一个应用程序进行测试之前,首先预先选择相应的遍历方式。本发明的较佳的实施例中,选择遍历方式的过程可以与选择控件获取方式的过程一起在测试开始前预先做出。
本发明的较佳的实施例中,遍历操作控件的规则包括:
1)对同一个操作界面,选择一个遍历方式遍历操作其中所包括的所有控件;
2)对操作一个预设的控件而跳转至的一个新的操作界面,判断其是否包括在上述存储队列中:
若该操作界面未包括在上述存储队列中,则将该操作界面加入到存储队列中暂存;
若该操作界面已包括在上述存储队列中,则继续判断该操作界面中包括的所有控件是否均被操作完毕:
若该操作界面中包括的所有控件均被操作完毕,则将该操作界面从存储队列中去除,随后将存储队列中最后的一个操作界面设定为当前操作界面;
若该操作界面中包括尚未被操作完毕的控件,则根据相应选择的遍历方式,选择一个控件进行操作。
本发明的较佳的实施例中,上述步骤S3中,若对某个控件进行操作后,若跳转至的界面为另一个应用程序的界面(即非正在测试的应用程序的界面),则重新将保存于存储队列中的最后一个操作界面作为当前操作界面,以继续进行控件的遍历操作。上述过程设定为了防止因为跳转至新的应用程序导致的死循环或者石碑程序的出现,保证应用程序测试运行的流畅度。本发明的较佳的实施例中,可以判断操作界面的标记,从而判断其是否为被测试的应用程序的操作界面。
综上所述,本发明技术方案中,首先根据预先选择的控件获取方式获取被测试的应用程序的当前操作界面的控件的相关属性,随后根据当前操作界面中包括的所有控件的相关属性,匹配预设的关键字信息,以判断当前操作界面的类型,并根据判断结果决定对其中包括的控件执行何种操作。
相应地,预先选择一个遍历操作的方式,以对当前操作界面中包括的控件执行相应的操作。本发明技术方案中,形成一个用于保存应用程序的操作界面的FILO存储队列。存储队列的存储原则是:采用先进后出的存储方式,将从未出现过的操作界面按序保存于存储队列中,并将其中包括的所有控件均被操作完毕的操作界面从存储队列中去除。对于测试过程而言,若当前操作界面被去除,则相应跳转至存储队列中保存的最后一个操作界面,并将该操作界面作为当前操作界面,以继续执行对其中包括的控件的遍历操作。
本发明技术方案中,当应用程序的所有操作界面的所有控件均被操作完毕后(即存储队列被清空时),输出被保存的所有结果界面。
本发明的较佳的实施例中,提供一种应用程序测试系统,其结构具体如图4所示,包括:
控件获取单元1。本发明的较佳的实施例中,控件获取单元1用于获取应用程序的当前操作界面中包括的所有控件的相关属性并保存。
本发明的较佳的实施例中,如图5所示,上述控件获取单元1中进一步包括:
接口提供模块11。本发明的较佳的实施例中,接口提供模块11用于提供相应的控件信息获取接口;
获取模块12,连接接口提供模块11。本发明的较佳的实施例中,获取模块12用于通过控件信息获取接口获取相应的控件的相关属性;
第一存储模块13,连接获取模块12。本发明的较佳的实施例中,第一存储模块13将控件的相关属性以文本形式保存,并以文本中的一行表示一个对应的控件的相关属性,以空格或者其他间隔符分隔相邻的两个相关属性等。
本发明的较佳的实施例中,仍然如图4所示,上述应用程序测试系统中还包括:
界面判断单元2,连接控件获取单元1。本发明的较佳的实施例中,界面判断单元2用于根据当前操作界面中包括的所有控件的相关属性,判断当前操作界面的类型,输出相应的判断结果。
本发明的较佳的实施例中,如图6所示,上述界面判断单元2具体包括:
第二存储模块21,其中预设有多个关键字信息;
界面判断模块22,连接第二存储模块21。本发明的较佳的实施例中,界面判断模块22用于分别将当前操作界面中包括的每个控件的相关属性与预设的关键字信息进行匹配,并根据匹配结果确定当前操作界面的类型;
若经过匹配无法判断当前操作界面的类型,则界面判断单元2上报判断失败的消息,以供使用者处理。
本发明的较佳的实施例中,仍然如图4所示,上述应用程序测试系统还包括:
控件操作单元3,连接界面判断单元2。本发明的较佳的实施例中,控件操作单元3用于根据判断结果,遍历当前操作界面中的所有控件并分别执行相应的操作,将控件经过操作后出现的界面记录为相应的结果界面保存。
本发明的较佳的实施例中,如图7所示,上述控件操作单元3具体包括:
操作判断模块31,用于根据界面判断单元的判断结果,选择当前操作界面中控件的操作方式并输出;
控件操作模块32,连接操作判断模块31。本发明的较佳的实施例中,控件操作模块32用于根据输出的相应的操作方式,遍历操作当前操作界面中包括的所有控件;
暂存模块33,其中预设有一用于存储待测试的应用程序的操作界面的存储队列,存储队列采用先进后出(FILO)的存储方式保存操作界面;
操作控制模块34,分别连接暂存模块33和控件操作模块32。本发明的较佳的实施例中,操作控制模块34用于判断待测试的应用程序的操作界面中包括的所有控件是否均被操作完毕,并将所有控件均被操作完毕的操作界面从存储队列中去除,并控制控件操作模块32返回至保存于存储队列中的最后一个操作界面并继续对控件进行遍历操作;
本发明的较佳的实施例中,上述控件操作单元3于存储队列被清空时确认待测试的应用程序的所有操作界面中包括的所有控件均被操作完毕,并输出保存的所有结果界面。
本发明的较佳的实施例中,上述控件操作单元3还用于判断对控件进行操作后是否跳转至另一个应用程序,并在跳转至另一个应用程序时控制控件操作单元返回至保存于存储队列中的最后一个操作界面,并继续对控件进行遍历操作。
本发明的较佳的实施例中,上述控件获取方式如上文中所述,可以采用以hierarchyviewer工具或者uiautomatorviewer工具获取控件相关属性的实现方式,或者其他可行的实现方式,并根据不同的控件获取方式提供相应的api接口。
本发明的较佳的实施例中,上述遍历操作方式如上文中所述,可以采用顺序遍历或者随机遍历的实现方式,或者其他可行的遍历操作实现方式。
本发明的较佳的实施例中,上述控件获取方式和遍历操作实现方式均可在测试开始前预先设定。
本发明的较佳的实施例中,还提供一种移动终端,其中采用上文中所述的应用程序测试方法。
本发明的较佳的实施例中,还提供一种移动终端,其中包括上文中所述的应用程序测试系统。
以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。
Claims (21)
1.一种应用程序测试方法,适用于移动终端;其特征在于,具体包括:
步骤S1,于所述移动终端上启动待测试的应用程序,获取并保存对应于所述应用程序的当前操作界面的所有控件的相关属性;
步骤S2,根据所述当前操作界面的所有所述控件的相关属性,判断所述当前操作界面的类型;
步骤S3,针对所述步骤S2中的判断结果,对所述当前操作界面中的所有所述控件进行相应操作,遍历操作所述应用程序的所有操作界面中的所有所述控件,以得到并保存对应于每个被操作的所述控件的结果界面。
2.如权利要求1所述的应用程序测试方法,其特征在于,所述步骤S1中,将所述当前操作界面中的所有所述控件的相关属性以文本形式表示保存,以文本中的一行表示一个对应的所述控件的相关属性。
3.如权利要求1所述的应用程序测试方法,其特征在于,所述步骤S1中,提供相应的控件信息获取接口,以获取所述控件的相关属性。
4.如权利要求1所述的应用程序测试方法,其特征在于,所述步骤S2具体包括:
步骤S21,预设多个关键字信息;
步骤S22,分别将所述当前操作界面中获取的所有所述控件的相关属性与所述关键字信息进行匹配,以确定并输出所述当前操作界面的界面类型。
5.如权利要求4所述的应用程序测试方法,其特征在于,所述步骤S22中,若根据预设的所述关键字信息无法判断所述当前操作界面的界面类型,则上报判断失败的消息,以供使用者处理。
6.如权利要求1所述的应用程序测试方法,其特征在于,所述步骤S3中,对控件进行遍历操作的方法具体包括:
步骤S31,对一个被选择的所述控件执行相应操作,将操作后形成的画面作为相应的所述控件的结果画面并保存;
步骤S32,若对所述控件进行操作后跳转至相应的另一个操作界面,则将跳转至的所述操作界面作为所述当前操作界面,遍历查找所述当前操作界面中的下一个控件是否已被操作过,选择下一个尚未被操作过的所述控件并返回所述步骤S31;
所述步骤S3中,当所述应用程序的所有操作界面上的所有控件均被操作过后,输出所有被保存的所述结果界面。
7.如权利要求6所述的应用程序测试方法,其特征在于,形成一保存有所述应用程序的操作界面的存储队列,所述存储队列采用先进后出的存储方式保存所述操作界面;
所述步骤S32中,判断对相应的所述控件执行操作后跳转至的操作界面是否包括在所述存储队列中,并将未包括在所述存储队列中的操作界面按序保存于所述存储队列中;
若一个预设的操作界面上所有所述控件均被操作完毕,则将相应的所述操作界面从所述存储队列中去除;
所述步骤S3中,当所述存储队列被清空时,确认对所述应用程序遍历操作完毕,并输出所有被保存的所述结果界面。
8.如权利要求7所述的应用程序测试方法,其特征在于,所述步骤S3中,当所述存储队列中的一个预设的操作界面被去除时,将保存于所述存储队列中的最后一个操作界面作为所述当前操作界面。
9.如权利要求6所述的应用程序测试方法,其特征在于,所述步骤S32中,若对相应的所述控件执行操作后未跳转至相应的操作界面,则遍历查找所述当前操作界面中下一个尚未被操作过的所述控件,以执行相应操作。
10.如权利要求1所述的应用程序测试方法,其特征在于,所述步骤S3中,采用顺序遍历或者随机遍历的方式遍历操作所述应用程序的所有操作界面中的所有所述控件。
11.如权利要求10所述的应用程序测试方法,其特征在于,采用顺序遍历进行操作的实现方法包括:
对所述当前操作界面中的所有所述控件,按照从上到下、从左到右的遍历顺序执行相应操作。
12.如权利要求10所述的应用程序测试方法,其特征在于,采用随机遍历进行操作的实现方法包括:
对所述当前操作界面中的所有所述控件,按照随机顺序遍历执行相应操作。
13.如权利要求7所述的应用程序测试方法,其特征在于,所述步骤S3中,若对所述控件进行相应操作后跳转至另一个应用程序的操作界面,则重新将保存于所述存储队列中的最后一个操作界面作为所述当前操作界面,以继续执行针对所述当前操作界面中包括的控件的遍历操作。
14.一种应用程序测试系统,适用于移动终端;其特征在于,于所述移动终端上启动待测试的应用程序;
所述应用程序测试系统中包括:
控件获取单元,用于获取所述应用程序的当前操作界面中包括的所有控件的相关属性并保存;
界面判断单元,连接所述控件获取单元,用于根据所述当前操作界面中包括的所有所述控件的相关属性,判断所述当前操作界面的类型,输出相应的判断结果;
控件操作单元,连接所述界面判断单元,用于根据所述判断结果,遍历所述当前操作界面中的所有所述控件并分别执行相应的操作,将所述控件经过操作后出现的界面记录为相应的结果界面保存;
所述控件操作单元将所述应用程序的所有操作界面中包括的所有所述控件均遍历操作完毕后,输出保存的所有所述结果界面。
15.如权利要求14所述的应用程序测试系统,其特征在于,所述控件获取单元中包括:
接口提供模块,用于提供相应的控件信息获取接口;
获取模块,连接所述接口提供模块,用于通过所述控件信息获取接口获取相应的所述控件的相关属性;
第一存储模块,连接所述获取模块,用于将所述控件的相关属性以文本形式保存,以文本中的一行表示一个预设的所述控件的相关属性。
16.如权利要求14所述的应用程序测试系统,其特征在于,所述界面判断单元中包括:
第二存储模块,其中预设有多个关键字信息;
界面判断模块,连接所述第二存储模块,用于分别将所述当前操作界面中包括的每个所述控件的相关属性与预设的所述关键字信息进行匹配,并根据匹配结果确定所述当前操作界面的类型;
若经过匹配无法判断所述当前操作界面的类型,则所述界面判断单元上报判断失败的消息,以供使用者处理。
17.如权利要求14所述的应用程序测试系统,其特征在于,所述控件操作单元中包括:
操作判断模块,用于根据所述界面判断单元的判断结果,选择所述当前操作界面中所述控件的操作方式并输出;
控件操作模块,连接所述操作判断模块,用于根据输出的相应的所述操作方式,遍历操作所述当前操作界面中包括的所有所述控件;
暂存模块,其中预设有一用于存储待测试的所述应用程序的操作界面的存储队列,所述存储队列采用先进后出的存储方式保存所述操作界面;
操作控制模块,分别连接所述暂存模块和所述控件操作模块,用于判断待测试的所述应用程序的操作界面中包括的所有所述控件是否均被操作完毕,并将所有所述控件均被操作完毕的所述操作界面从所述存储队列中去除,并控制所述控件操作模块返回至保存于所述存储队列中的最后一个操作界面并继续对控件进行遍历操作;
所述控件操作单元于所述存储队列被清空时确认待测试的所述应用程序的所有操作界面中包括的所有所述控件均被操作完毕,并输出保存的所有所述结果界面。
18.如权利要求17所述的应用程序测试系统,其特征在于,所述控件操作单元还用于判断对所述控件进行操作后是否跳转至另一个应用程序,并在跳转至另一个应用程序时控制所述控件操作单元返回至保存于所述存储队列中的最后一个操作界面,并继续对控件进行遍历操作。
19.如权利要求14所述的应用程序测试系统,其特征在于,所述控件操作单元采用顺序遍历或者随机遍历的方式对包括于所述当前操作界面中的所述控件进行遍历操作。
20.一种移动终端,其特征在于,采用如权利要求1-13中任意一项所述的应用程序测试方法。
21.一种移动终端,其特征在于,包括如权利要求14-19中任意一项所述的应用程序测试系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510112478.8A CN106033393B (zh) | 2015-03-13 | 2015-03-13 | 一种应用程序测试方法及系统以及移动终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510112478.8A CN106033393B (zh) | 2015-03-13 | 2015-03-13 | 一种应用程序测试方法及系统以及移动终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106033393A CN106033393A (zh) | 2016-10-19 |
CN106033393B true CN106033393B (zh) | 2019-08-23 |
Family
ID=57150018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510112478.8A Active CN106033393B (zh) | 2015-03-13 | 2015-03-13 | 一种应用程序测试方法及系统以及移动终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106033393B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776294B (zh) * | 2016-11-29 | 2020-06-16 | 任子行网络技术股份有限公司 | 安卓手机自动化测试方法和系统 |
CN108132940B (zh) * | 2016-12-01 | 2020-10-02 | 北京金山云网络技术有限公司 | 一种应用程序数据提取方法及装置 |
CN108415822B (zh) * | 2017-02-10 | 2022-09-20 | 阿里巴巴集团控股有限公司 | 一种随机测试方法和装置 |
CN107122295B (zh) * | 2017-03-30 | 2020-12-29 | 腾讯科技(深圳)有限公司 | 测试用例脚本的生成方法和装置 |
CN108874668A (zh) * | 2018-06-04 | 2018-11-23 | 北京潘达互娱科技有限公司 | 一种应用测试方法及装置 |
CN109324857B (zh) * | 2018-09-07 | 2021-10-08 | 腾讯科技(武汉)有限公司 | 一种用户引导实现方法、装置和存储介质 |
CN109542431A (zh) * | 2018-09-28 | 2019-03-29 | 中国平安人寿保险股份有限公司 | 控件属性分析方法、装置、电子设备及存储介质 |
CN109614325B (zh) * | 2018-12-05 | 2022-06-07 | 上海科梁信息科技股份有限公司 | 一种确定控件属性的方法及装置、电子设备和存储介质 |
CN109739764A (zh) * | 2018-12-29 | 2019-05-10 | 中国联合网络通信集团有限公司 | 一种应用程序测试方法和装置 |
CN110580221A (zh) * | 2019-08-21 | 2019-12-17 | 东软集团股份有限公司 | 控件测试方法、装置、存储介质及电子设备 |
CN112532966A (zh) * | 2019-08-27 | 2021-03-19 | 中兴通讯股份有限公司 | 机顶盒测试方法、装置、机顶盒及计算机可读存储介质 |
CN111522737B (zh) * | 2020-03-26 | 2023-07-07 | 浙江口碑网络技术有限公司 | 一种前端界面的自动化测试校验方法、装置及存储介质 |
CN113094257B (zh) * | 2021-03-08 | 2024-04-05 | 上海硬通网络科技有限公司 | 应用测试方法、装置及电子设备 |
CN117971641A (zh) * | 2023-11-24 | 2024-05-03 | 北京东舟技术股份有限公司 | 应用界面的遍历测试方法及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1484790A (zh) * | 2001-01-04 | 2004-03-24 | �Ҵ���˾ | 测试带有图形用户界面的未知程序的方法和装置 |
CN104216828A (zh) * | 2013-06-03 | 2014-12-17 | 刘伟 | 一种对被测应用程序进行功能遍历的测试方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7900089B2 (en) * | 2006-06-12 | 2011-03-01 | International Business Machines Corporation | Method for creating error tolerant and adaptive graphical user interface test automation |
-
2015
- 2015-03-13 CN CN201510112478.8A patent/CN106033393B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1484790A (zh) * | 2001-01-04 | 2004-03-24 | �Ҵ���˾ | 测试带有图形用户界面的未知程序的方法和装置 |
CN104216828A (zh) * | 2013-06-03 | 2014-12-17 | 刘伟 | 一种对被测应用程序进行功能遍历的测试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106033393A (zh) | 2016-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106033393B (zh) | 一种应用程序测试方法及系统以及移动终端 | |
CN104598380B (zh) | 一种基于控件的自动化测试方法及系统 | |
CN103995715B (zh) | 应用程序的修复方法、装置及服务器 | |
CN106528395B (zh) | 测试用例的生成方法及装置 | |
CN106844217A (zh) | 对应用的控件进行埋点的方法及装置、可读存储介质 | |
CN107562769A (zh) | 一种在线答题题目推荐方法及装置 | |
CN103744787A (zh) | 一种手机自动化测试方法 | |
CN105373478B (zh) | 自动化测试方法和系统 | |
CN105579976B (zh) | 网页自动化测试方法及装置 | |
CN104375934B (zh) | 一种Android手机软件可靠性测试方法 | |
CN106897207A (zh) | 用户界面测试方法与装置 | |
CN105487970B (zh) | 一种界面展示方法及装置 | |
CN108959067A (zh) | 搜索引擎的测试方法、装置及计算机可读存储介质 | |
CN103049451B (zh) | 网络内容更新的跟踪方法和装置 | |
CN110489324A (zh) | 测试页面跳转的方法、装置、存储介质、电子装置 | |
CN106708528A (zh) | 脚本生成方法及装置 | |
CN109376074A (zh) | 获取日志的方法及装置、存储介质、电子装置 | |
CN109902251A (zh) | 基于决策树的方案选择方法、装置、终端及可读存储介质 | |
WO2018036529A1 (zh) | 一种可视化测试报告生成方法 | |
CN104765792B (zh) | 一种维度数据存储的方法、装置及系统 | |
CN104424099B (zh) | 软件测试方法及系统 | |
CN110597706A (zh) | 一种用于应用程序接口数据异常测试的方法和装置 | |
CN106201790B (zh) | 一种基于dsdt表的调试方法及调试系统 | |
CN104239212A (zh) | 测试用例的查询方法及装置、测试用例的建立方法及装置 | |
CN104572464B (zh) | 一种Android平台的自动化测试状态保存方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |