CN108399124A - 应用测试方法、装置、计算机设备和存储介质 - Google Patents
应用测试方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN108399124A CN108399124A CN201810124549.XA CN201810124549A CN108399124A CN 108399124 A CN108399124 A CN 108399124A CN 201810124549 A CN201810124549 A CN 201810124549A CN 108399124 A CN108399124 A CN 108399124A
- Authority
- CN
- China
- Prior art keywords
- control
- interface
- operated
- window
- identification
- 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/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Debugging And Monitoring (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请涉及一种应用测试方法、系统、计算机设备和存储介质。所述方法包括:对当前界面进行解析,获得所述当前界面上的控件;从所述控件中识别出具有操作可能性的待操作控件;获取所述待操作控件的操作类型,根据所述操作类型对所述待操作控件进行模拟触发操作,并检测所述待操作控件是否触发响应;若所述待操作控件未触发响应,将所述待操作控件标记为无效控件;对未被标记为无效控件的待操作控件进行测试。采用本方法能够测试效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种应用测试方法、装置、计算机设备和存储介质。
背景技术
应用产品在开发完成后、正式上线前,需要对应用程序各方面的性能进行测试,以保证产品上线后能够在客户端上正常运行。为了适应互联网的快速发展,应用产品需要进行频繁的升级和更新,从而应用测试工作也面临很大的压力。目前,在进行应用产品测试时,是对应用产品每个界面上的所有控件元素均进行测试,需要花费大量时间,导致测试效率很低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高测试效率的应用测试方法、装置、计算机设备和存储介质。
一种应用测试方法,所述方法包括:
对当前界面进行解析,获得所述当前界面上的控件;
从所述控件中识别出具有操作可能性的待操作控件;
获取所述待操作控件的操作类型,根据所述操作类型对所述待操作控件进行模拟触发操作,并检测所述待操作控件是否触发响应;
若所述待操作控件未触发响应,将所述待操作控件标记为无效控件;
对未被标记为无效控件的待操作控件进行测试。
在其中一个实施例中,还包括:
若所述待操作控件触发响应,将所述待操作控件标记为有效控件。
在其中一个实施例中,还包括:
若所述待操作控件触发响应,且所述触发响应为界面跳转响应时,判断跳转后界面是否经过控件识别;
当所述跳转后界面经过控件识别时,获取所述跳转后界面中的待操作控件;
从所述跳转后界面中的待操作控件中剔除无效控件和有效控件;
对所述跳转后界面余下的待操作控件进行模拟操作。
在其中一个实施例中,还包括:
当所述跳转后界面未经过控件识别时,则将所述跳转后界面作为当前界面,并继续执行所述对当前界面进行解析的步骤。
在其中一个实施例中,所述对当前界面进行解析的步骤之后,还包括:
获取所述当前界面的界面标识,将所述界面标识进行记录;
所述判断跳转后界面是否经过控件识别的步骤,包括:
获取所述跳转后界面的界面标识,判断所述跳转后界面的界面标识是否被记录;
当所述跳转后界面的界面标识被记录时,判定所述跳转后界面经过控件识别;当所述跳转后界面的界面标识未被记录时,判定所述跳转后界面未经过控件识别。
在其中一个实施例中,所述从所述控件中识别出具有操作可能性的待操作控件的步骤,包括:
获取所述当前界面中的窗口,并剔除黑名单窗口;
获取余下窗口中的控件的控件类型和控件属性;
根据所述控件类型和所述控件属性判断余下窗口中的控件是否具有操作可能性;
将具有操作可能性的控件识别为待操作控件。
在其中一个实施例中,所述剔除黑名单窗口的步骤,包括:
获取窗口标识及窗口黑名单;
将所述窗口标识与所述窗口黑名单中的窗口标识进行匹配;
当所述窗口标识与所述窗口黑名单中的窗口标识匹配成功时,剔除匹配成功的窗口标识对应的窗口。
一种应用测试装置,所述装置包括:
界面解析模块,用于对当前界面进行解析,获得所述当前界面上的控件;
待操作控件识别模块,用于从所述控件中识别出具有操作可能性的待操作控件;
模拟操作模块,用于获取所述待操作控件的操作类型,根据所述操作类型对所述待操作控件进行模拟触发操作,并检测所述待操作控件是否触发响应;
无效标记模块,用于若所述待操作控件未触发响应,将所述待操作控件标记为无效控件;
控件测试模块,用于对未被标记为无效控件的待操作控件进行测试。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
上述应用测试方法、装置、计算机设备和存储介质,对当前界面进行解析后,从中识别出具有操作可能性的待操作控件之后,进一步对识别出的待操作控件进行模拟触发操作,根据触发的响应结果确定控件是否真正可操作,将无触发响应的不可操作的控件进行无效标记,从而使得在对应用产品进行测试的过程中无需再对无效控件进行测试,能够减少大量不必要的测试工作,提高测试效率。
附图说明
图1为一个实施例中应用测试方法的应用场景图;
图2为一个实施例中应用测试方法的流程示意图;
图3为一个实施例中应用测试装置的结构框图;
图4为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在详细说明根据本发明的实施例前,应该注意到的是,所述的实施例主要在于与应用测试方法、装置、计算机设备及存储介质相关的步骤和系统组件的组合。因此,所属系统组件和方法步骤已经在附图中通过常规符号在适当的位置表示出来了,并且只示出了与理解本发明的实施例有关的细节,以免因对于得益于本发明的本领域普通技术人员而言显而易见的那些细节模糊了本发明的公开内容。
在本文中,诸如左和右,上和下,前和后,第一和第二之类的关系术语仅仅用来区分一个实体或动作与另一个实体或动作,而不一定要求或暗示这种实体或动作之间的任何实际的这种关系或顺序。术语“包括”、“包含”或任何其他变体旨在涵盖非排他性的包含,由此使得包括一系列要素的过程、方法、物品或者设备不仅包含这些要素,而且还包含没有明确列出的其他要素,或者为这种过程、方法、物品或者设备所固有的要素。
本申请提供的应用测试方法,可以应用于如图1所示的应用环境中。其中,测试终端通过网络与应用终端通过网络进行通信。其中,测试终端可以但不限于是计算机、电脑等终端设备,测试终端也可以用独立的服务器或者是多个服务器组成的服务器集群来实现。应用终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备等,应用终端上安装有待测试的应用程序。应用终端对安装的待测试应用的当前界面进行解析,获得当前界面上的控件,从控件中识别出具有操作可能性的待操作控件,获取待操作控件的操作类型,根据操作类型对待操作控件进行模拟触发操作,当被执行模拟触发操作的待操作控件未产生触发响应时,将待操作控件标记为无效控件。应用终端将待操作控件发送给测试终端,测试终端接收应用终端发送的待操作控件,并识别待操作控件的标记,并在测试时根据记录对待操作控件中未进行无效控件标记的控件进行测试。
在一个实施例中,测试终端所进行的控件测试工作还可以应用于数据处理能力足够强的应用终端,应用终端在进行无效控件的标记后,可以在应用终端上对未进行无效控件标记的待操作控件进行测试。如图2所示,提供了一种应用测试方法,以该方法应用于本实施例中的应用终端为例进行说明,包括以下步骤:
步骤210,对当前界面进行解析,获得当前界面上的控件。
界面为应用程序的展示界面,一个应用程序包含多个界面,每个界面上部署有多个控件。应用终端获取运行的待测试应用程序的当前显示的界面,对当前界面进行解析,解析得到当前界面上部署的控件,包括界面上直接显示的控件及隐藏的控件。
具体地,应用终端可以对通过DFS算法(Depth-First-Search,深度优先算法)对应用程序的界面进行探索性地窗口遍历,获得应用程序界面的DOM(Document Object Model,文档对象模型)结构,对获得的DOM结构上的节点进行遍历,识别出控件的控件信息。
步骤220,从控件中识别出具有操作可能性的待操作控件。
待操作控件是指待进行模拟触发操作的控件。应用终端根据识别出的控件的控件信息,判断控件是否具有操作可能性。控件信息可以包括但不限于控件标识、控件类型、控件属性等。具有操作可能性是指对控件进行触发操作后,控件有可能会产生触发响应,但是又不能完全确定控件是否一定会发生触发响应。
控件类型可以包括但不限于菜单、按钮、复选框、面板框、进度条、图标列表及文本标签等。控件属性可以包括但不包括控件的可见性、使能性,是否有子节点等属性。
在一个实施例中,应用终端根据解析出的控件的控件类型和控件属性从中识别出无操作可能性的控件,从当前界面的所有控件中剔除无操作可能性的控件,将余下的控件识别为具有操作可能性的待操作控件。如控件类型为菜单且控件的使能属性为否的控件为无操作可能性的控件,没有子节点的控件也为无操作可能性的控件,以上只是举例说明,具体根据控件操作性的事先定义判断控件是否具有操作可能性。
步骤230,获取待操作控件的操作类型,根据操作类型对待操作控件进行模拟触发操作,并检测待操作控件是否触发响应。
应用终端筛选出具有操作可能性的待操作控件之后,获取待操作控件的操作类型,根据待操作控件的操作类型对其进行相对应的模拟触发操作。
可操作控件的操作类型包括但不限于触摸、点击、滑动、滚动、拖动、返回、延时、手势密码解锁等操作。应用终端根据获取的操作类型发出相应的操作指令,对待操作控件进行与操作类型对应的模拟触发操作。
例如,在安卓操作系统下,可以通过getevent和sentevent指令模拟多种按键和触屏操作,其中,可以通过getevent指令获取当前应用终端输入设备的参数和实时事件的数据,并通过sendevent指令发送输入事件,通过这两个指令等于解放双手,可以直接调用系统底层来对手机进行操作控制,对待操作控件进行模拟触发操作。在其他操作系统下,也可以通过相应的模拟指令控制触发待操作控件,并不限于上述实施方式。
步骤240,若待操作控件未触发响应,将待操作控件标记为无效控件。
应用终端检测被执行模拟触发操作的待操作控件是否产生了相应的触发响应。触发响应与控件的操作类型相对应,触发响应可以为跳转至下一界面,返回至上一界面,返回至应用程序首页界面等响应。
当应用终端检测到被执行模拟触发操作的待操作控件未发生触发响应时,将待操作控件标记为无效控件。
在一个实施例中,应用终端获取未产生触发响应的待操作控件的控件标识和待操作控件所属窗口的窗口标识,将控件标识和窗口标识关联添加至无效控件集合,从而对待操作控件进行无效标记。其中,控件标识用于对同一界面上的控件进行唯一标识,窗口标识用于对应用程序中的窗口进行唯一标识,由于不同界面可能会存在相同的控件,为了进行区分,将待操作控件的控件标识和窗口标识进行关联存储可以唯一确定待操作控件所处的位置。
在另一个实施例中,控件标识中包含了控件所在界面的位置信息,应用终端获取未产生触发响应的待操作控件的控件标识,直接将控件标识添加至无效控件结合,对待操作控件进行无效标记。
步骤250,对未被标记为无效控件的待操作控件进行测试。
应用终端根据应用程序界面上控件的操作可能性的识别结果对控件进行测试。具体地,应用终端获取应用程序当前界面的所有待操作控件的控件标识,判断控件标识是否进行了无效标记,当待操作控件进行了无效标记时,不对待操作控件进行测试,当待操作控件未进行无效标记时,对待操作控件进行测试。在一个实施例中,当应用终端识别出应用程序中所有界面中的所有控件的操作可能性后,对未进行无效控件标记的待操作控件进行测试。在另一个实施例中,当应用程序的某一界面上的所有控件的识别工作完成后,即可对该界面上的未进行无效控件标记的待操作控件进行测试。
在本实施例中,应用终端对应用程序当前界面进行解析后,从中识别出具有操作可能性的待操作控件,并进一步对识别出的待操作控件进行模拟触发操作,根据触发的响应结果确定控件是否真正可操作,将无触发响应的不可操作的控件进行无效标记,得到控件的识别结果,在对应用程序进行测试的过程中无需再对无效控件进行测试,能够减少大量不必要的测试工作,提高测试效率。
在一个实施例中,若待操作控件触发响应,将待操作控件标记为有效控件。
当应用终端检测到被执行模拟触发操作的待操作控件发生触发响应时,将待操作控件标记为有效控件。
在一个实施例中,应用终端获取产生触发响应的待操作控件的控件标识和待操作控件所属窗口的窗口标识,将控件标识和窗口标识关联添加至有效控件集合,从而对待操作控件进行有效标记。在另一个实施例中,控件标识中包含了控件所在界面的位置信息,应用终端获取产生触发响应的待操作控件的控件标识,直接将控件标识添加至有效控件集合,对待操作控件进行有效标记。
在本实施例中,应用终端除了将无触发响应的控件进行无效标记之外,将产生触发控件的控件进行有效标记,从而对各个控件的可操作状态进行完整记录,形成当前界面的控件学习字典,以供后续识别工作使用。
在一个实施例中,方法还包括:若待操作控件触发响应,且触发响应为界面跳转响应时,判断跳转后界面是否经过控件识别;当跳转后界面经过控件识别时,获取跳转后界面中的待操作控件;从跳转后界面中的待操作控件中剔除无效控件和有效控件;对跳转后界面余下的待操作控件进行模拟操作。
在本实施例中,当应用终端对待操作控件进行模拟触发操作后,该待操作控件发生了触发响应,且发生的触发响应为界面跳转响应时,应用终端暂时停止对跳转前界面中控件的识别工作,开始对跳转后的界面进行控件识别。在其他实施例中,当发生界面跳转响应时,也可以重新调回至原始界面,继续对原始界面中控件的可操作性进行识别,当一个界面中所有控件的识别工作全部完成后再进行下一界面的工作。界面跳转可以包括跳转至另一界面、跳转回业务起始界面、跳转至首页等跳转方式发生界面跳转触发响应之后,应用终端判断跳转后的界面是否进行过控件识别工作。
在一个实施例中,对当前界面进行解析的步骤之后,还包括:获取当前界面的界面标识,将界面标识进行记录;判断跳转后界面是否经过控件识别的步骤,包括:获取跳转后界面的界面标识,判断跳转后界面的界面标识是否被记录;当跳转后界面的界面标识被记录时,判定跳转后界面经过控件识别;当跳转后界面的界面标识未被记录时,判定跳转后界面未经过控件识别。
当应用终端对应用程序的当前界面进行解析之后,获取当前界面的界面标识,界面标识用于对应用程序的界面进行唯一标识,界面标识可以为代码、字符等,根据界面标识可以对界面进行区分。应用终端将获取的界面标识进行记录,例如,可以将界面标识添加至识别界面列表中,也可以采用其他记录方式。当发生界面跳转触发响应之后,应用终端获取跳转后界面的界面标识,并判断跳转后界面的界面标识是否被记录,如判断是否能从识别界面列表中查找到该界面标识,当从列表中查找到该界面标识时,该跳转后界面被记录,查找不到时该跳转后界面未被记录。当应用终端判断跳转后界面的界面标识被记录时,判定跳转后界面进行过控件识别,当应用终端判断跳转后界面的界面标识未被记录时,判定跳转后界面未进行过控件识别,跳转后界面为新界面。
在一个实施例中,在应用终端从控件中识别出具有操作可能性的待操作控件的步骤之后还包括:应用终端获取当前界面的界面标识和待操作控件的控件标识,将控件标识添加至待操作控件集合,并将待操作控件结合与界面标识进行关联存储;在将未产生触发响应的待操作控件的控件标识添加至无效控件集合、将产生触发响应的待操作控件的控件标识添加至有效控件集合后,也分别将无效控件集合与有效控件集合与界面标识进行关联存储。
当应用终端判断跳转后界面进行过控件识别操作时,根据跳转后界面的界面标识查找与其相对应的待操作控件的控件标识、无效控件标识及有效控件标识。应用终端根据获取的无效控件标识和有效控件标识从待操作控件中剔除掉无效控件和有效控件,则余下的待操作控件为应用终端未对其进行模拟触发操作的控件,应用终端获取余下的待操作控件的操作类型,根据操作类型对余下的待操作控件进行模拟触发操作。应用终端根据模拟触发操作的响应结果对余下的待操作控件进行无效或有效标记,并对跳转后界面的无效控件集合和有效控件集合进行更新。
在一个实施例中,当跳转后界面未经过控件识别时,则将跳转后界面作为当前界面,并继续执行对当前界面进行解析的步骤。
在本实施例中,当应用终端判断跳转后的界面没有进行过控件识别工作时,应用终端将跳转后界面作为新的当前界面,并执行对当前界面进行解析的步骤,开始对当前界面中控件的识别过程。
在本实施例中,在发生界面跳转的触发响应后,当应用终端判断出跳转后界面进行过控件识别时,可以根据跳转后界面的无效控件、有效控件的学习字典迅速识别出进行过模拟触发操作的待操作控件,只对未进行过模拟触发操作的待操作控件进行模拟触发操作,从而能够加快控件可操作性的识别效率。
在一个实施例中,在应用终端从控件中识别出具有操作可能性的待操作控件之后,获取待操作控件所属的窗口标识,将窗口标识进行记录,并将待操作控件的控件标识与其所属的窗口标识进行关联存储。当应用终端对待操作控件进行模拟触发操作之后,分别将无效控件和有效控件的控件标识与其所属的窗口标识进行关联存储。当发生界面跳转的触发响应时,应用终端获取跳转后界面中的窗口标识,判断是否存在被记录的窗口标识,当存在被记录的窗口标识时,应用终端判定跳转后界面进行了控件识别,并从被记录的窗口中的待操作控件中剔除掉无效控件和有效控件,对该窗口余下的待操作控件及跳转后界面中未被记录的其他窗口中的待操作控件进行模拟触发操作。
在本实施中,将控件的有效、无效记录细化至窗口级别,方便在应用程序跳转至以识别界面时,迅速对识别过的控件进行定位,提高识别效率。
在一个实施例中,从控件中识别出具有操作可能性的待操作控件的步骤,包括:获取当前界面中的窗口,并剔除黑名单窗口;获取余下窗口中的控件的控件类型和控件属性;根据控件类型和控件属性判断余下窗口中的控件是否具有操作可能性;将具有操作可能性的控件识别为待操作控件。
应用终端获得当前界面上的控件之后,获取当前界面中的窗口,从中识别出黑名单窗口,将黑名单窗口剔除,即将黑名单窗口中包含的控件识别为不具有操作可能性的控件。
在一个实施例中,剔除黑名单窗口的步骤,包括:获取窗口标识及窗口黑名单;将窗口标识与窗口黑名单中的窗口标识进行匹配;当窗口标识与窗口黑名单中的窗口标识匹配成功时,剔除匹配成功的窗口标识对应的窗口。
应用终端中预先存储有窗口黑名单,窗口黑名单中存储了黑名单窗口的窗口标识。应用终端获取当前界面上所有窗口的窗口标识及预先存储的窗口黑名单。将窗口标识与窗口黑名单中存储的黑名单窗口的窗口标识进行匹配,当从窗口黑名单中查找到与窗口标识一致的黑名单窗口标识时,匹配成功,将匹配成功的窗口标识对应的窗口进行剔除;当从窗口黑名单中查找不到与窗口标识一致的黑名单窗口标识时,匹配失败,保留匹配失败的窗口标识对应的窗口。
在一个实施例中,剔除黑名单窗口的步骤,包括:获取当前界面中窗口的窗口类名和窗口类黑名单,将窗口类名与窗口类黑名单中的窗口标识进行匹配;当窗口类名与窗口类黑名单中的窗口类名匹配成功时,剔除匹配成功的窗口类名对应的窗口。
窗口类名为窗口的类型名称,可以为表示窗口类型的代码等。窗口类型可以分为主窗口、子窗口、面板窗口、媒体窗口、对话框窗口等等。应用终端中预先存储有窗口类黑名单,窗口黑名单中存储了属于黑名单窗口的窗口类名,对黑名单窗口中的控件进行模拟触发操作,不会产生触发响应。应用终端获取当前界面上所有窗口的窗口类名及预先存储的窗口类黑名单。将窗口类名与窗口类黑名单中存储的窗口类名进行匹配,当从窗口类黑名单中查找到与窗口类名一致的黑名单窗口类名时,匹配成功,将匹配成功的窗口类名对应的窗口进行剔除;当从窗口类黑名单中查找不到与窗口类名一致的黑名单窗口类名时,匹配失败,保留匹配失败的窗口类名对应的窗口。
应用终端将黑名单窗口剔除后,获取余下窗口中的控件的控件类型和控件属性。控件类型可以包括但不限于菜单、按钮、复选框、面板框、进度条、图标列表及文本标签等。控件属性可以包括但不包括控件的可见性、使能性,控件是否具有子节点等属性。
应用终端事先定义不具有操作可能性的控件类型和控件属性,例如,可以创建控件黑名单,控件黑名单又可以分为控件类型黑名单、控件属性黑名单及或者控件类型和控件属性的条件组合黑名单。控件类型黑名单中记录了不具有操作可能性的控件类型,如菜单项控件等,控件属性黑名单中记录了不具有操作可能性的控件属性,如控件不具有子节点等,条件组合黑名单中记录了不具有操作可能性的控件类型和控件属性的组合,如控件类型为菜单且控件属性为不使能的控件定义为不具有操作可能性的控件。
在一个实施例中,应用终端获取余下窗口中的控件的控件类型和控件属性,判断控件类型是否存在于控件类型黑名单中,当不存在时,判断控件属性是否存在于控件属性黑名单中,当不存在时,判断控件类型和控件属性是否属于条件组合黑名单中的条件组合,当不属于时,应用终端判定该控件具有操作可能性。当应用终端判断控件类型存在于控件类型黑名单中时,或者判断出控件属性存在于控件属性黑名单中时,或者判断出控件类型和控件属性的组合属于黑名单中的条件组合时,应用终端判定该控件不具有操作可能性。在本实施例中,应用终端对控件类型、控件属性及条件组合的判断顺序不做限制,可以根据需要进行调整。
在本实施例中,在对控件的操作可能性进行识别之前,通过事先定义黑名单窗口,从当前界面中剔除黑名单窗口,可以减少控件识别工作的工作量。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图3所示,提供了一种应用测试装置,包括:界面解析模块310、待操作控件识别模块320、模拟操作模块330、无效标记模块340和控件测试模块350,其中:
界面解析模块310,用于对当前界面进行解析,获得当前界面上的控件。
待操作控件识别模块320,用于从控件中识别出具有操作可能性的待操作控件。
模拟操作模块330,用于获取待操作控件的操作类型,根据操作类型对待操作控件进行模拟触发操作,并检测待操作控件是否触发响应。
无效标记模块340,用于若待操作控件未触发响应,将待操作控件标记为无效控件。
控件测试模块350,用于对未被标记为无效控件的待操作控件进行测试。
在一个实施例中,所述装置还包括:有效标记模块,用于若所述待操作控件触发响应,将待操作控件标记为有效控件。
在一个实施例中,所述装置还包括:
界面判断模块,用于若所述待操作控件触发响应,且触发响应为界面跳转响应时,判断跳转后界面是否经过控件识别。
控件获取模块,用于当跳转后界面经过控件识别时,获取跳转后界面中的待操作控件。
控件剔除模块,用于从跳转后界面中的待操作控件中剔除无效控件和有效控件。
第二操作模块,用于对跳转后界面余下的待操作控件进行模拟操作。
在一个实施例中,装置还包括:界面解析执行模块,用于当跳转后界面未经过控件识别时,则将跳转后界面作为当前界面,并继续执行对当前界面进行解析的步骤。
在一个实施例中,所述装置还包括:界面记录模块,用于获取当前界面的界面标识,将界面标识进行记录;界面判断模块包括:
界面记录判断模块,用于获取跳转后界面的界面标识,判断跳转后界面的界面标识是否被记录。
判定模块,用于当跳转后界面的界面标识被记录时,判定跳转后界面经过控件识别;当跳转后界面的界面标识未被记录时,判定跳转后界面未经过控件识别。
在一个实施例中,待操作控件识别模块320包括:
窗口剔除模块,用于获取当前界面中的窗口,并剔除黑名单窗口。
控件信息获取模块,用于获取余下窗口中的控件的控件类型和控件属性。
控件判断模块,用于根据控件类型和控件属性判断余下窗口中的控件是否具有操作可能性。
识别模块,用于将具有操作可能性的控件识别为待操作控件。
在一个实施例中,窗口剔除模块包括:
窗口标识获取模块,用于获取窗口标识及窗口黑名单。
窗口标识匹配模块,用于将窗口标识与窗口黑名单中的窗口标识进行匹配。
剔除模块,用于当窗口标识与窗口黑名单中的窗口标识匹配成功时,剔除匹配成功的窗口标识对应的窗口。
关于应用测试装置的具体限定可以参见上文中对于应用测试方法的限定,在此不再赘述。上述应用测试装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储应用程序相关数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种应用测试方法。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:对当前界面进行解析,获得当前界面上的控件;从控件中识别出具有操作可能性的待操作控件;获取待操作控件的操作类型,根据操作类型对待操作控件进行模拟触发操作,并检测待操作控件是否触发响应;若待操作控件未触发响应,将待操作控件标记为无效控件;对未被标记为无效控件的待操作控件进行测试。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:若待操作控件触发响应,将待操作控件标记为有效控件。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:若待操作控件触发响应,且触发响应为界面跳转响应时,判断跳转后界面是否经过控件识别;当跳转后界面经过控件识别时,获取跳转后界面中的待操作控件;从跳转后界面中的待操作控件中剔除无效控件和有效控件;对跳转后界面余下的待操作控件进行模拟操作。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当跳转后界面未经过控件识别时,则将跳转后界面作为当前界面,并继续执行对当前界面进行解析的步骤。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取当前界面的界面标识,将界面标识进行记录;执行判断跳转后界面是否经过控件识别的步骤时可以包括:获取跳转后界面的界面标识,判断跳转后界面的界面标识是否被记录;当跳转后界面的界面标识被记录时,判定跳转后界面经过控件识别;当跳转后界面的界面标识未被记录时,判定跳转后界面未经过控件识别。
在一个实施例中,处理器执行计算机程序时所实现的从所述控件中识别出具有操作可能性的待操作控件的步骤可以包括:获取当前界面中的窗口,并剔除黑名单窗口;获取余下窗口中的控件的控件类型和控件属性;根据控件类型和控件属性判断余下窗口中的控件是否具有操作可能性;将具有操作可能性的控件识别为待操作控件。
在一个实施例中,处理器执行计算机程序时所实现的剔除黑名单窗口的步骤可以包括:获取窗口标识及窗口黑名单;将窗口标识与窗口黑名单中的窗口标识进行匹配;当窗口标识与窗口黑名单中的窗口标识匹配成功时,剔除匹配成功的窗口标识对应的窗口。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:对当前界面进行解析,获得当前界面上的控件;从控件中识别出具有操作可能性的待操作控件;获取待操作控件的操作类型,根据操作类型对待操作控件进行模拟触发操作,并检测待操作控件是否触发响应;若待操作控件未触发响应,将待操作控件标记为无效控件;对未被标记为无效控件的待操作控件进行测试。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若待操作控件触发响应,将待操作控件标记为有效控件。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若待操作控件触发响应,且触发响应为界面跳转响应时,判断跳转后界面是否经过控件识别;当跳转后界面经过控件识别时,获取跳转后界面中的待操作控件;从跳转后界面中的待操作控件中剔除无效控件和有效控件;对跳转后界面余下的待操作控件进行模拟操作。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当跳转后界面未经过控件识别时,则将跳转后界面作为当前界面,并继续执行对当前界面进行解析的步骤。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取当前界面的界面标识,将界面标识进行记录;计算机程序被处理器执行时所实现的判断跳转后界面是否经过控件识别的步骤可以包括:获取跳转后界面的界面标识,判断跳转后界面的界面标识是否被记录;当跳转后界面的界面标识被记录时,判定跳转后界面经过控件识别;当跳转后界面的界面标识未被记录时,判定跳转后界面未经过控件识别。
在一个实施例中,计算机程序被处理器执行时所实现的从所述控件中识别出具有操作可能性的待操作控件的步骤可以包括:获取当前界面中的窗口,并剔除黑名单窗口;获取余下窗口中的控件的控件类型和控件属性;根据控件类型和控件属性判断余下窗口中的控件是否具有操作可能性;将具有操作可能性的控件识别为待操作控件。
在一个实施例中,计算机程序被处理器执行时所实现的剔除黑名单窗口的步骤可以包括:获取窗口标识及窗口黑名单;将窗口标识与窗口黑名单中的窗口标识进行匹配;当窗口标识与窗口黑名单中的窗口标识匹配成功时,剔除匹配成功的窗口标识对应的窗口。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种应用测试方法,所述方法包括:
对当前界面进行解析,获得所述当前界面上的控件;
从所述控件中识别出具有操作可能性的待操作控件;
获取所述待操作控件的操作类型,根据所述操作类型对所述待操作控件进行模拟触发操作,并检测所述待操作控件是否触发响应;
若所述待操作控件未触发响应,将所述待操作控件标记为无效控件;
对未标记为无效控件的待操作控件进行测试。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述待操作控件触发响应,将所述待操作控件标记为有效控件。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述待操作控件触发响应,且所述触发响应为界面跳转响应时,判断跳转后界面是否经过控件识别;
当所述跳转后界面经过控件识别时,获取所述跳转后界面中的待操作控件;
从所述跳转后界面中的待操作控件中剔除无效控件和有效控件;
对所述跳转后界面余下的待操作控件进行模拟操作。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当所述跳转后界面未经过控件识别时,则将所述跳转后界面作为当前界面,并继续执行所述对当前界面进行解析的步骤。
5.根据权利要求3所述的方法,其特征在于,所述对当前界面进行解析的步骤之后,还包括:
获取所述当前界面的界面标识,将所述界面标识进行记录;
所述判断跳转后界面是否经过控件识别的步骤,包括:
获取所述跳转后界面的界面标识,判断所述跳转后界面的界面标识是否被记录;
当所述跳转后界面的界面标识被记录时,判定所述跳转后界面经过控件识别;当所述跳转后界面的界面标识未被记录时,判定所述跳转后界面未经过控件识别。
6.根据权利要求1至5任意一项所述的方法,其特征在于,所述从所述控件中识别出具有操作可能性的待操作控件的步骤,包括:
获取所述当前界面中的窗口,并剔除黑名单窗口;
获取余下窗口中的控件的控件类型和控件属性;
根据所述控件类型和所述控件属性判断余下窗口中的控件是否具有操作可能性;
将具有操作可能性的控件识别为待操作控件。
7.根据权利要求6所述的方法,其特征在于,所述剔除黑名单窗口的步骤,包括:
获取窗口标识及窗口黑名单;
将所述窗口标识与所述窗口黑名单中的窗口标识进行匹配;
当所述窗口标识与所述窗口黑名单中的窗口标识匹配成功时,剔除匹配成功的窗口标识对应的窗口。
8.一种应用测试装置,其特征在于,所述装置包括:
界面解析模块,用于对当前界面进行解析,获得所述当前界面上的控件;
待操作控件识别模块,用于从所述控件中识别出具有操作可能性的待操作控件;
模拟操作模块,用于获取所述待操作控件的操作类型,根据所述操作类型对所述待操作控件进行模拟触发操作,并检测所述待操作控件是否触发响应;
无效标记模块,用于若所述待操作控件未触发响应,将所述待操作控件标记为无效控件;
控件测试模块,用于对未被标记为无效控件的待操作控件进行测试。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810124549.XA CN108399124B (zh) | 2018-02-07 | 2018-02-07 | 应用测试方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810124549.XA CN108399124B (zh) | 2018-02-07 | 2018-02-07 | 应用测试方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108399124A true CN108399124A (zh) | 2018-08-14 |
CN108399124B CN108399124B (zh) | 2021-04-13 |
Family
ID=63095408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810124549.XA Active CN108399124B (zh) | 2018-02-07 | 2018-02-07 | 应用测试方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108399124B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109144881A (zh) * | 2018-09-07 | 2019-01-04 | 东软集团股份有限公司 | Monkey测试方法、装置、终端设备及存储介质 |
CN109324741A (zh) * | 2018-09-30 | 2019-02-12 | 广州云测信息技术有限公司 | 一种操作控制方法、装置和系统 |
CN109815947A (zh) * | 2018-12-14 | 2019-05-28 | 深圳壹账通智能科技有限公司 | 应用的测试方法、装置和计算机设备 |
CN109857673A (zh) * | 2019-02-25 | 2019-06-07 | 广州云测信息技术有限公司 | 控件识别方法和装置 |
CN109920032A (zh) * | 2019-01-22 | 2019-06-21 | 深圳壹账通智能科技有限公司 | 基于字体生成图标的方法、装置、设备和存储介质 |
CN111209215A (zh) * | 2020-02-24 | 2020-05-29 | 腾讯科技(深圳)有限公司 | 应用程序的测试方法、装置、计算机设备及存储介质 |
CN111309622A (zh) * | 2020-02-27 | 2020-06-19 | 中国平安人寿保险股份有限公司 | 应用程序测试方法、装置、终端设备以及存储介质 |
CN111817916A (zh) * | 2020-07-02 | 2020-10-23 | 浙江同花顺智能科技有限公司 | 基于移动终端集群的测试方法、装置、设备和存储介质 |
CN112131111A (zh) * | 2020-09-21 | 2020-12-25 | 贝壳技术有限公司 | 一种对页面进行自动化测试的方法、装置和存储介质 |
CN113971058A (zh) * | 2020-07-22 | 2022-01-25 | 北京奇虎科技有限公司 | 控件定位方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104050076A (zh) * | 2013-03-12 | 2014-09-17 | 阿里巴巴集团控股有限公司 | 移动终端上的应用软件测试方法、装置及系统 |
CN105335283A (zh) * | 2014-08-01 | 2016-02-17 | 阿里巴巴集团控股有限公司 | 终端设备中的应用测试方法及装置 |
CN105718370A (zh) * | 2016-01-21 | 2016-06-29 | 上海斐讯数据通信技术有限公司 | 一种Android设备测试方法及测试装置 |
CN107357725A (zh) * | 2017-06-29 | 2017-11-17 | 腾讯科技(深圳)有限公司 | 应用测试方法及装置 |
CN107562619A (zh) * | 2017-08-15 | 2018-01-09 | 福建天晴数码有限公司 | 一种基于神经元模型的自动遍历控件方法及终端 |
-
2018
- 2018-02-07 CN CN201810124549.XA patent/CN108399124B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104050076A (zh) * | 2013-03-12 | 2014-09-17 | 阿里巴巴集团控股有限公司 | 移动终端上的应用软件测试方法、装置及系统 |
CN105335283A (zh) * | 2014-08-01 | 2016-02-17 | 阿里巴巴集团控股有限公司 | 终端设备中的应用测试方法及装置 |
CN105718370A (zh) * | 2016-01-21 | 2016-06-29 | 上海斐讯数据通信技术有限公司 | 一种Android设备测试方法及测试装置 |
CN107357725A (zh) * | 2017-06-29 | 2017-11-17 | 腾讯科技(深圳)有限公司 | 应用测试方法及装置 |
CN107562619A (zh) * | 2017-08-15 | 2018-01-09 | 福建天晴数码有限公司 | 一种基于神经元模型的自动遍历控件方法及终端 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109144881A (zh) * | 2018-09-07 | 2019-01-04 | 东软集团股份有限公司 | Monkey测试方法、装置、终端设备及存储介质 |
CN109144881B (zh) * | 2018-09-07 | 2022-06-03 | 东软集团股份有限公司 | Monkey测试方法、装置、终端设备及存储介质 |
CN109324741A (zh) * | 2018-09-30 | 2019-02-12 | 广州云测信息技术有限公司 | 一种操作控制方法、装置和系统 |
CN109815947A (zh) * | 2018-12-14 | 2019-05-28 | 深圳壹账通智能科技有限公司 | 应用的测试方法、装置和计算机设备 |
CN109920032A (zh) * | 2019-01-22 | 2019-06-21 | 深圳壹账通智能科技有限公司 | 基于字体生成图标的方法、装置、设备和存储介质 |
CN109857673A (zh) * | 2019-02-25 | 2019-06-07 | 广州云测信息技术有限公司 | 控件识别方法和装置 |
CN109857673B (zh) * | 2019-02-25 | 2022-02-15 | 北京云测信息技术有限公司 | 控件识别方法和装置 |
CN111209215B (zh) * | 2020-02-24 | 2021-08-24 | 腾讯科技(深圳)有限公司 | 应用程序的测试方法、装置、计算机设备及存储介质 |
CN111209215A (zh) * | 2020-02-24 | 2020-05-29 | 腾讯科技(深圳)有限公司 | 应用程序的测试方法、装置、计算机设备及存储介质 |
CN111309622A (zh) * | 2020-02-27 | 2020-06-19 | 中国平安人寿保险股份有限公司 | 应用程序测试方法、装置、终端设备以及存储介质 |
CN111817916A (zh) * | 2020-07-02 | 2020-10-23 | 浙江同花顺智能科技有限公司 | 基于移动终端集群的测试方法、装置、设备和存储介质 |
CN113971058A (zh) * | 2020-07-22 | 2022-01-25 | 北京奇虎科技有限公司 | 控件定位方法、装置、设备及存储介质 |
CN112131111A (zh) * | 2020-09-21 | 2020-12-25 | 贝壳技术有限公司 | 一种对页面进行自动化测试的方法、装置和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108399124B (zh) | 2021-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108399124A (zh) | 应用测试方法、装置、计算机设备和存储介质 | |
CN106844217B (zh) | 对应用的控件进行埋点的方法及装置、可读存储介质 | |
CN104809056B (zh) | 一种接口测试代码的生成方法和装置 | |
Muškardin et al. | AALpy: an active automata learning library | |
CN104199773B (zh) | 获取代码覆盖信息的方法及装置 | |
US9697012B2 (en) | Relation-based identification of automation objects | |
CN106649084A (zh) | 函数调用信息的获取方法及装置、测试设备 | |
CN107193743B (zh) | 一种应用测评方法、装置、计算机设备及存储介质 | |
CN108293081A (zh) | 通过用户界面事件的程序重放深度链接到移动应用状态 | |
CN106294372A (zh) | 应用程序页面快速访问方法及应用其的移动终端 | |
US20170024308A1 (en) | System and method for testing data representation for different mobile devices | |
CN110162457A (zh) | 用户界面的测试方法、装置、设备及存储介质 | |
CN107992458A (zh) | 表格规则的生成方法和装置 | |
CN111414309B (zh) | 应用程序的自动化测试方法、计算机设备和存储介质 | |
CN104699602A (zh) | 用于检测影响的方法和计算机 | |
CN109783365A (zh) | 自动化测试方法、装置、计算机设备及存储介质 | |
CN110032519A (zh) | 云函数调试方法、装置、计算机设备及存储介质 | |
US20170168913A9 (en) | Method and system for testing of applications in asset management software | |
CN108647224A (zh) | 页面显示方法、装置、存储介质和电子装置 | |
US20100221694A1 (en) | Adaptive electronic learning system and method | |
Chen et al. | Fragdroid: Automated user interface interaction with activity and fragment analysis in android applications | |
CN113342629B (zh) | 操作轨迹还原方法、装置、计算机设备和存储介质 | |
CN110232018A (zh) | 接口测试方法、装置、计算机设备 | |
CN112558966A (zh) | 深度模型可视化数据的处理方法、装置及电子设备 | |
CN108090355A (zh) | 一种apk自动触发工具 |
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 |