CN107515821B - 控件测试方法和装置 - Google Patents

控件测试方法和装置 Download PDF

Info

Publication number
CN107515821B
CN107515821B CN201610440532.6A CN201610440532A CN107515821B CN 107515821 B CN107515821 B CN 107515821B CN 201610440532 A CN201610440532 A CN 201610440532A CN 107515821 B CN107515821 B CN 107515821B
Authority
CN
China
Prior art keywords
control
operated
interface
name
belongs
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
Application number
CN201610440532.6A
Other languages
English (en)
Other versions
CN107515821A (zh
Inventor
孙营
张润琦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201610440532.6A priority Critical patent/CN107515821B/zh
Publication of CN107515821A publication Critical patent/CN107515821A/zh
Application granted granted Critical
Publication of CN107515821B publication Critical patent/CN107515821B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

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)
  • User Interface Of Digital Computer (AREA)

Abstract

本申请公开了控件测试方法和装置。该方法的一具体实施方式包括:获取应用的界面中的控件和控件的子控件的属性信息;基于属性信息,判断控件是否为已操作控件;根据判断结果,确定是否操作控件。实现了通过控件和子控件的属性信息判断控件是否为已操作控件,从而在控件所属的窗体对象和坐标相同时,依然可以正确区分出不同功能的控件,确保不同功能控件均可被操作。将控件的操作次序调整为控件的显示次序,避免了诸如因过早操作返回键控件而导致的其他控件操作不到的问题。通过将当前界面的截图和操作控件时控件所在的界面的截图进行对比判断界面是否变化,避免了因仅对比窗体对象而造成的在窗体对象相同时,无法识别出界面发生变化的问题。

Description

控件测试方法和装置
技术领域
本申请涉及计算机领域,具体涉及终端领域,尤其涉及控件测试方法和装置。
背景技术
在对应用的测试中,需要遍历应用的界面中的控件,对控件进行操作,测试控件的功能是否正常。目前,通常采用的遍历方式为:按照控件的布局中对应的次序进行遍历,对于当前遍历到的控件,通过控件所属的窗体对象与坐标判断当前遍历到的控件是否为已操作控件。
然而,当采用上述方式对控件进行遍历时,一方面,当不同功能的控件所属的窗体对象相同并且坐标重合的情况下,无法对不同功能的控件进行区分,造成不同功能的控件被当成是同一个控件,从而无法操作到全部控件。另一方面,由于呈现给用户的控件对应的次序与控件的布局中对应的次序不一致,导致出现诸如遍历控件的过程中,过早操作返回键控件,而无法操作到界面上其他控件的情况。
发明内容
本申请提供了控件测试方法和装置,用于解决上述背景技术部分存在的技术问题。
第一方面,本申请提供了控件测试方法,该方法包括:获取应用的界面中的控件和所述控件的子控件的属性信息,属性信息包括以下一项或多项:所属的窗体对象、控件名称、控件类型;基于属性信息,判断控件是否为已操作控件;根据判断结果,确定是否操作控件,以测试控件是否正常。
第二方面,本申请提供了控件测试装置,该装置包括:获取单元,配置用于获取应用的界面中的控件和所述控件的子控件的属性信息,属性信息包括以下一项或多项:所属的窗体对象、控件名称、控件类型;判断单元,配置用于基于属性信息,判断控件是否为已操作控件;确定单元,配置用于根据判断结果,确定是否操作控件,以测试控件是否正常。
本申请提供的控件测试方法和装置,通过获取应用的界面中的控件和所述控件的子控件的属性信息;基于属性信息,判断控件是否为已操作控件;根据判断结果,确定是否操作控件。实现了通过控件和子控件的属性信息判断控件是否为已操作控件,从而在控件所属的窗体对象和坐标相同时,依然可以正确区分出不同功能的控件,确保不同功能控件均可被操作。将控件的操作次序调整为控件的显示次序,避免了诸如因过早操作返回键控件而导致的其他控件操作不到的问题。通过将当前界面的截图和操作控件时控件所在的界面的截图进行对比,判断界面是否变化,避免了因仅对比窗体对象而造成的在窗体对象相同时,无法识别出界面发生变化的问题。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是可以应用于本申请的控件测试方法或控件测试装置的实施例的示例性系统架构;
图2示出了根据本申请的控件测试方法的一个实施例的流程图;
图3示出了根据本申请的控件测试方法的另一个实施例的流程图;
图4示出了判断控件是否为已操作控件的一个示例性流程图;
图5示出了判断界面是否发生变化的一个示例性流程图;
图6示出了根据本申请的控件测试方法的一个示例性流程图;
图7示出了根据本申请的控件测试装置的一个实施例的结构示意图;
图8是适于用来实现本申请实施例的控件测试装置的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的控件测试方法或控件测试装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端101,网络103和多个终端102。网络103用以在终端101和终端102之间提供传输链路的介质。网络103可以为有线传输链路,例如USB(Universal Serial Bus,通用串行)总线。
终端101、终端102可以是具有显示屏并且支持网络通信的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture Experts GroupAudio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture ExpertsGroup Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。终端101、终端102上可以安装有各种通讯应用,例如网络安全类应用、浏览器类应用、即时通信工具等。
终端101可以通过网络103与终端102进行交互。例如,终端101可以向终端102发送测试指令,以触发执行终端102上的测试脚本,对终端102上的应用中的控件进行点击操作,以测试终端102上的应用中的控件是否正常。
在本申请中的以下实施例的各个步骤中,控件可以为应用的界面中的任意一个控件。在遍历应用的界面中的控件,完成对控件的测试时,控件可以是指当前遍历到的控件。
请参考图2,其示出了根据本申请的控件测试方法的一个实施例的流程200。本申请实施例所提供的方法可以由图1中的终端102执行,相应地,控件测试装置可以设置于终端102中。该方法包括以下步骤:
步骤201,获取应用的界面中的控件和控件的子控件的属性信息。
在本实施例中,为了遍历应用的界面中的控件,完成对控件的测试,可以首先获取应用的界面中的控件和控件的子控件的属性信息。控件和控件的子控件的属性信息包括以下一项或多项:包含控件和控件的子控件的窗体对应的窗体对象、控件和控件的子控件的控件名称、控件类型。
步骤202,基于属性信息,判断控件是否为已操作控件。
在本实施例中,可以将已经被操作过的控件,例如已经进行过点击操作完成测试的控件称之为已操作控件。在通过步骤201获取应用的界面中的控件和控件的子控件的属性信息之后,可以利用控件和控件的子控件的属性信息,判断控件是否为已操作控件。例如,可以根据控件和子控件的控件名称是否与已操作控件的控件名称匹配,判断控件是否在已操作控件。当控件或子控件的名称与已操作控件的控件名称匹配时,可以确定控件已被操作过。当控件或子控件的名称与已操作控件的控件名称不匹配时,可以确定控件未被操作过。
从而,在对应用的界面中的控件的功能是否正常进行测试而遍历控件时,可以利用控件和控件的子控件的属性信息,判断当前遍历到的控件是否为已操作控件。
步骤203,根据判断结果,确定是否操作控件。
在本实施例中,在通过步骤202基于应用的界面中的控件和控件的子控件的属性信息判断控件是否为已操作控件之后,可以根据判断结果,确定是否操作控件,以测试控件是否正常。
在本实施例中,在对应用的界面中的控件的功能是否正常进行测试而遍历控件时,若当前遍历到的控件为已操作控件,则可以继续遍历界面中的下一个控件。若当前遍历到的控件不是已操作控件,即未被操作过的控件时,则可以对控件进行操作。例如点击操作,测试该控件的功能是否正常。
在本实施例中,在对控件操作之后,可以将控件标识为已操作控件,将已操作控件加入到已操作控件集合中。
请参考图3,其示出了根据本申请的控件测试方法的另一个实施例的流程300。本申请实施例所提供的控件测试方法由图1中的终端102执行。该方法包括以下步骤:
步骤301,获取安卓应用的界面中的控件和控件的子控件的属性信息。
在本实施例中,为了遍历应用的界面中的控件,完成对界面中的控件的测试,可以首先获取应用的界面中的控件和控件的子控件的属性信息。
在本实施例中,应用运行在的系统可以为Android操作系统,窗体对象可以为Android操作系统中的Activity对象。控件和子控件的属性信息可以包括以下一项或多项:控件和子控件所属的Activity对象、控件名称、控件类型。
步骤302,基于属性信息,判断控件是否为已操作控件。
在本实施例中,可以在通过步骤301获取到的应用的界面中的控件和控件的子控件的属性信息之后,遍历应用的界面中的控件,逐一判断当前遍历到的控件是否为已操作控件。
在本实施例中,在基于当前遍历到的控件和控件的子控件的属性信息,判断当前遍历到的控件是否为已操作控件时,可以首先判断当前遍历到的控件所属的Activity对象是否为已操作控件所属的Activity对象。
若当前遍历到的控件所属的Activity对象不是已操作控件所属的Activity对象,则可以确定当前遍历到的控件未被操作过,可以操作该当前遍历到的控件。例如对当前遍历到的控件进行点击操作,测试该控件的功能是否正常。
在本实施例中,若当前遍历到的控件所属的Activity对象为已操作控件所属的Activity对象时,并且当前遍历到的控件的子控件的属性信息包括控件名称时,可以判断当前遍历到的控件的子控件的控件名称是否与已操作控件的控件名称匹配。若当前遍历到的控件的子控件的控件名称与已操作控件的控件名称不匹配,则可以确定当前遍历到的控件未被操作过,可以操作该当前遍历到的控件。例如对当前遍历到的控件进行点击操作,测试该控件的功能是否正常。
在本实施例中,若当前遍历到的控件所属的Activity对象为已操作控件所属的Activity对象,并且当前遍历到的控件的子控件的属性信息不包括控件名称,控件的属性信息包括控件名称时,可以判断当前遍历到的控件的控件名称是否与已操作控件的控件名称匹配。若当前遍历到的控件的控件名称与已操作控件的控件名称不匹配,则可以确定当前遍历到的控件未被操作过,可以操作该当前遍历到的控件。例如对当前遍历到的控件进行点击操作,测试该控件的功能是否正常。
在本实施例中,若当前遍历到的控件所属的Activity对象为已操作控件所属的Activity对象,并且当前遍历到的控件的子控件的属性信息不包括控件名称,控件的属性信息不包括控件名称,可以判断当前遍历到的控件的坐标是否与预先记录的已操作控件的坐标相同。若当前遍历到的控件的坐标与预先记录的已操作控件的坐标不相同,则可以确定当前遍历到的控件未被操作过,可以操作该当前遍历到的控件。例如对当前遍历到的控件进行点击操作,测试该控件的功能是否正常。
在本实施例中,在操作当前遍历到的控件之后,可以检测当前界面对应的Activity对象是否为当前遍历到的控件所属的Activity对象。若当前界面对应的Activity对象为当前遍历到的控件所属的Activity对象,可以进一步获取当前界面与界面的截图,根据当前界面与界面的截图的匹配度,判断界面是否发生变化。
请参考图4,其示出了判断控件是否为已操作控件的一个示例性流程图。
在判断当前控件即当前遍历到的控件是否为已操作控件时,首先判断当前控件所属的Activity对象是否在已操作控件集合中。即判断当前控件所属的Activity对象是否与已操作控件集合中的已操作控件所属的Activity对象的相同。
若当前控件所属的Activity对象不在已操作集合中,则可以操作该控件。若当前控件所属的Activity对象在已操作集合中时,则可以判断当前控件的子控件是否有控件名称属性,即当前控件的子控件的属性信息是否包含控件名称。
若当前控件的子控件的有控件名称属性,可以判断子控件的控件名称是否与已操作控件的控件名称相同。若是,可以确定该控件被操作过,继续遍历下一个控件。若否,可以操作此控件。
若当前控件的子控件没有控件名称属性,可以判断当前控件是否有控件名称属性,即当前控件的属性信息是否包含控件名称。
若当前控件有控件名称属性,可以判断当前控件的控件名称是否与已操作控件的控件名称相同。若是,可以确定该控件被操作过,继续遍历下一个控件。若否,可以操作此控件。
若当前控件没有控件名称属性,可以判断当前控件的坐标是否有记录,即是否与预先记录的已操作控件的坐标相同。若是,可以确定该控件被操作过,继续遍历下一个控件。若否,可以操作此控件。
步骤303,根据判断结果,确定是否操作控件,以测试控件是否正常。
在本实施例中,在通过步骤302基于当前遍历到的控件和控件的子控件的属性信息,判断当前遍历到的控件是否为已操作控件之后,可以根据判断结果,确定是否操作控件。若当前遍历到的控件为已操作控件,可以确定该控件被操作过,继续遍历界面中的下一个控件。若当前遍历到的控件不是已操作控件时,可以操作此控件,测试当前遍历到的控件是否正常。
应用的界面上的控件布局复杂,呈现给用户的第一个控件在实际布局中可能位于界面的最靠前的位置,也可能位于界面的最靠后的位置。在前序遍历或者后续遍历界面中的控件时,如果过早地操作了界面中的用于返回上一界面的返回键控件则会导致该界面的其他控件不能被操作到。
因此,在本实施例中,在遍历应用的界面中的控件之前,可以将控件的操作次序调整为与控件的显示次序一致,即将控件的操作次序调整为与呈现给用户的次序一致。从而,可以在前序遍历或者后续遍历界面中的控件时避免因过早操作返回键控件而导致的界面中的其他控件操作不到的问题。
在本实施例中,在操作当前遍历到的控件之后,可以进一步判断界面是否发生变化。可以首先检测当前界面对应的Activity对象是否为遍历到的控件所属的Activity对象。若当前界面对应的Activity对象不是控件所属的Activity对象,即当前界面对应的Activity对象与遍历到的控件所属的Activity对象不相同,则可以确定当前界面为新界面,即在对控件操作之后,界面发生变化。若当前界面对应的Activity对象为控件所属的Activity对象,可以获取当前界面与遍历到的控件所在的界面的截图。然后,可以计算当前界面的截图与遍历到的控件所在的界面的截图之间的匹配度。若当前界面的截图与遍历到的控件所在的界面的截图之间的匹配度小于预设阈值,则可以确定当前界面为新界面,即在对控件操作之后,界面发生变化。
请参考图5,其示出了判断界面是否发生变化的一个示例性流程图。
首先判断操作遍历到的控件之后的当前界面的Activity对象是否和上一个界面即遍历到的控件所在的界面的Activity对象相同。若操作遍历到的控件之后的当前界面的Activity对象和上一个界面Activity对象相同,则可以确定界面未发生变化。若操作遍历到的控件之后的当前界面的Activity对象和上一个界面Activity对象不相同,则可以确定当前界面为新界面,即在对控件操作之后,界面发生变化。若当前界面对应的Activity对象为控件所属的Activity对象,可以分别获取当前界面和上一个界面的截图进行图像对比。计算当前界面和上一个界面的截图之间的匹配度,判断匹配度是否大于预设阈值。当前界面和上一个界面的截图之间的匹配度小于预设阈值时,可以确定界面发生变化,当前界面为新界面。
请参考图6,其示出了根据本申请的控件测试方法的一个示例性流程图。
首先获取界面所有可操作控件。然后,可以调整控件操作顺序即在测试控件是否正常时控件对应的操作次序。调整控件操作顺序之后,可以遍历控件,判断控件是否被操作过。若控件被操作过,则可以继续判断下一个控件是否被操作过。若控件未被操作过,则可以操作该控件。在操作控件之后,可以进一步判断界面是否改变。若界面发生改变,将界面改变前遍历到的控件加入已操作控件集合。若界面未发生改变,继续遍历界面中的其他控件。
请参考图7,作为对上述各图所示方法的实现,本申请提供了一种控件测试装置的一个实施例,该实施例与图2所示的方法实施例相对应,该控件测试装置具体可以应用于各种电子设备中。
如图7所示,本实施例的控件测试装置700包括:获取单元701,判断单元702,确定单元703。其中,获取单元701配置用于获取应用的界面中的控件和控件的子控件的属性信息,属性信息包括以下一项或多项:所属的窗体对象、控件名称、控件类型;判断单元702配置用于基于属性信息,判断控件是否为已操作控件;确定单元703配置用于根据判断结果,确定是否操作控件,以测试控件是否正常。
在本实施例的一些可选的实现方式中,装置700还包括:次序确定单元(未示出),配置用于将控件在界面中对应的显示次序作为控件对应的操作次序。
在本实施例的一些可选的实现方式中,判断单元702包括:对象判断子单元(未示出),配置用于当窗体对象为安卓系统中的Activity对象时,判断控件所属的Activity对象是否为已操作控件所属的Activity对象;第一已操作控件确定子单元(未示出),配置用于当控件所属的Activity对象不是已操作控件所属的Activity对象,确定控件不是已操作控件。
在本实施例的一些可选的实现方式中,判断单元702包括:第一匹配子单元(未示出),配置用于当子控件的属性信息包括控件名称,控件所属的Activity对象为已操作控件所属的Activity对象时,判断控件名称是否与已操作控件的控件名称匹配;第二已操作控件确定子单元(未示出),配置用于当控件名称与已操作控件的控件名称匹配时,确定控件为已操作控件;当控件名称与已操作控件的控件名称不匹配时,确定控件不是已操作控件。
在本实施例的一些可选的实现方式中,判断单元702包括:第二匹配子单元(未示出),配置用于当子控件的属性信息不包括控件名称,控件的属性信息包括控件名称,控件所属的Activity对象为已操作控件所属的Activity对象时,判断控件名称是否与已操作控件的控件名称匹配;第三已操作控件确定子单元(未示出),配置用于当控件名称与已操作控件的控件名称匹配时,确定控件为已操作控件;当控件名称与已操作控件的控件名称不匹配时,确定控件不是已操作控件。
在本实施例的一些可选的实现方式中,判断单元702包括:第三匹配子单元(未示出),配置用于当子控件的属性信息不包括控件名称,控件的属性信息不包括控件名称,控件所属的Activity对象为已操作控件所属的Activity对象时,判断控件的坐标是否与已操作控件的坐标相同;第四已操作控件确定子单元(未示出),配置用于当控件的坐标与已操作控件的坐标相同时,确定控件为已操作控件;当控件的坐标与已操作控件的坐标不相同时,确定控件不是已操作控件。
在本实施例的一些可选的实现方式中,装置700还包括:检测单元(未示出),配置用于检测当前界面对应的Activity对象是否为控件所属的Activity对象;获取单元(未示出),配置用于若当前界面对应的Activity对象是控件所属的Activity对象,获取当前界面与所述界面的截图;截图匹配单元(未示出),配置用于判断当前界面的截图与所述界面的截图的匹配度是否大于预设阈值;界面确定单元(未示出),配置用于若当前界面的截图与界面的截图的匹配度小于预设阈值,确定当前界面为新界面。
图8示出了适于用来实现本申请实施例的控件测试装置的计算机系统的结构示意图。
如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM803中,还存储有系统800操作所需的各种程序和数据。CPU801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述设备中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:获取应用的界面中的控件和所述控件的子控件的属性信息,所述属性信息包括以下一项或多项:所属的窗体对象、控件名称、控件类型;基于所述属性信息,判断所述控件是否为已操作控件;根据判断结果,确定是否操作所述控件,以测试所述控件是否正常。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (14)

1.一种控件测试方法,其特征在于,所述方法包括:
获取应用的界面中的控件和所述控件的子控件的属性信息,所述属性信息包括以下一项或多项:所属的窗体对象、控件名称、控件类型;
基于所述属性信息,判断所述控件是否为已操作控件;
根据判断结果,确定是否操作所述控件,以测试所述控件是否正常;
判断所述界面是否发生改变,若所述界面发生改变,将所述界面改变前遍历到的控件加入已操作控件集合。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述控件在界面中对应的显示次序作为所述控件对应的操作次序。
3.根据权利要求2所述的方法,其特征在于,所述窗体对象为安卓系统中的Activity对象;以及
基于所述属性信息,判断所述控件是否为已操作控件包括:
判断所述控件所属的Activity对象是否为已操作控件所属的Activity对象;
若否,确定所述控件不是已操作控件。
4.根据权利要求3所述的方法,其特征在于,所述子控件的属性信息包括控件名称,所述控件所属的Activity对象为已操作控件所属的Activity对象;以及
基于所述属性信息,判断所述控件是否为已操作控件包括:
判断所述控件名称是否与已操作控件的控件名称匹配;
若是,确定所述控件为已操作控件;
若否,确定所述控件不是已操作控件。
5.根据权利要求3所述的方法,其特征在于,所述子控件的属性信息不包括控件名称,所述控件的属性信息包括控件名称,所述控件所属的Activity对象为已操作控件所属的Activity对象;以及
基于所述属性信息,判断所述控件是否为已操作控件包括:
判断所述控件名称是否与已操作控件的控件名称匹配;
若是,确定所述控件为已操作控件;
若否,确定所述控件不是已操作控件。
6.根据权利要求3所述的方法,其特征在于,所述子控件的属性信息不包括控件名称,所述控件的属性信息不包括控件名称,所述控件所属的Activity对象为已操作控件所属的Activity对象;以及
基于所述属性信息,判断所述控件是否为已操作控件包括:
判断所述控件的坐标是否与已操作控件的坐标相同;
若是,确定所述控件为已操作控件;
若否,确定所述控件不是已操作控件。
7.根据权利要求3-6之一所述的方法,其特征在于,所述方法还包括:
检测当前界面对应的Activity对象是否为所述控件所属的Activity对象;
若是,获取当前界面与所述界面的截图;
判断当前界面的截图与所述界面的截图的匹配度是否大于预设阈值;
若否,确定当前界面为新界面。
8.一种控件测试装置,其特征在于,所述装置包括:
获取单元,配置用于获取应用的界面中的控件和所述控件的子控件的属性信息,所述属性信息包括以下一项或多项:所属的窗体对象、控件名称、控件类型;
判断单元,配置用于基于所述属性信息,判断所述控件是否为已操作控件;
确定单元,配置用于根据判断结果,确定是否操作所述控件,以测试所述控件是否正常;
第二判断单元,配置用于判断所述界面是否发生改变,若所述界面发生改变,将所述界面改变前遍历到的控件加入已操作控件集合。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
次序确定单元,配置用于将所述控件在界面中对应的显示次序作为所述控件对应的操作次序。
10.根据权利要求9所述的装置,其特征在于,所述判断单元包括:
对象判断子单元,配置用于当窗体对象为安卓系统中的Activity对象时,判断所述控件所属的Activity对象是否为已操作控件所属的Activity对象;
第一已操作控件确定子单元,配置用于当所述控件所属的Activity对象不是已操作控件所属的Activity对象时,确定所述控件不是已操作控件。
11.根据权利要求10所述的装置,其特征在于,所述判断单元包括:
第一匹配子单元,配置用于当所述子控件的属性信息包括控件名称,所述控件所属的Activity对象为已操作控件所属的Activity对象时,判断所述控件名称是否与已操作控件的控件名称匹配;
第二已操作控件确定子单元,配置用于当所述控件名称与已操作控件的控件名称匹配时,确定所述控件为已操作控件;当所述控件名称与已操作控件的控件名称不匹配时,确定所述控件不是已操作控件。
12.根据权利要求11所述的装置,其特征在于,所述判断单元包括:
第二匹配子单元,配置用于当所述子控件的属性信息不包括控件名称,所述控件的属性信息包括控件名称,所述控件所属的Activity对象为已操作控件所属的Activity对象时,判断所述控件名称是否与已操作控件的控件名称匹配;
第三已操作控件确定子单元,配置用于当所述控件名称与已操作控件的控件名称匹配时,确定所述控件为已操作控件;当所述控件名称与已操作控件的控件名称不匹配时,确定所述控件不是已操作控件。
13.根据权利要求12所述的装置,其特征在于,所述判断单元包括:
第三匹配子单元,配置用于当所述子控件的属性信息不包括控件名称,所述控件的属性信息不包括控件名称,所述控件所属的Activity对象为已操作控件所属的Activity对象时,判断所述控件的坐标是否与已操作控件的坐标相同;
第四已操作控件确定子单元,配置用于当所述控件的坐标与已操作控件的坐标相同时,确定所述控件为已操作控件;当所述控件的坐标与已操作控件的坐标不相同时,确定所述控件不是已操作控件。
14.根据权利要求10-13之一所述的装置,其特征在于,所述装置还包括:
检测单元,配置用于检测当前界面对应的Activity对象是否为所述控件所属的Activity对象;
获取单元,配置用于若当前界面对应的Activity对象为所述控件所属的Activity对象时,获取当前界面与所述界面的截图;
截图匹配单元,配置用于判断当前界面的截图与所述界面的截图的匹配度是否大于预设阈值;
界面确定单元,配置用于若当前界面的截图与所述界面的截图的匹配度小于预设阈值,确定当前界面为新界面。
CN201610440532.6A 2016-06-17 2016-06-17 控件测试方法和装置 Active CN107515821B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610440532.6A CN107515821B (zh) 2016-06-17 2016-06-17 控件测试方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610440532.6A CN107515821B (zh) 2016-06-17 2016-06-17 控件测试方法和装置

Publications (2)

Publication Number Publication Date
CN107515821A CN107515821A (zh) 2017-12-26
CN107515821B true CN107515821B (zh) 2021-08-31

Family

ID=60719851

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610440532.6A Active CN107515821B (zh) 2016-06-17 2016-06-17 控件测试方法和装置

Country Status (1)

Country Link
CN (1) CN107515821B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112532966A (zh) * 2019-08-27 2021-03-19 中兴通讯股份有限公司 机顶盒测试方法、装置、机顶盒及计算机可读存储介质
CN110554967B (zh) * 2019-09-10 2023-09-08 浙江中控技术股份有限公司 一种非标准控件的测试方法及装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101630286A (zh) * 2009-08-07 2010-01-20 金蝶软件(中国)有限公司 一种自动化测试方法及装置
CN103914288A (zh) * 2012-12-31 2014-07-09 鼎捷软件股份有限公司 判断控件状态的方法
CN104142793A (zh) * 2014-07-26 2014-11-12 珠海市君天电子科技有限公司 一种模拟点击终端控件的方法及装置
CN104461526A (zh) * 2014-11-27 2015-03-25 广东欧珀移动通信有限公司 一种终端应用程序的控件遍历方法及装置
CN104572430A (zh) * 2013-10-24 2015-04-29 腾讯科技(深圳)有限公司 一种终端应用界面的测试方法、装置和系统
CN105335283A (zh) * 2014-08-01 2016-02-17 阿里巴巴集团控股有限公司 终端设备中的应用测试方法及装置
CN105468529A (zh) * 2015-12-15 2016-04-06 北京奇虎科技有限公司 一种安卓应用ui控件精准遍历方法和装置
CN105512023A (zh) * 2014-09-26 2016-04-20 腾讯科技(深圳)有限公司 一种Monkey测试方法及装置
CN105511873A (zh) * 2015-12-02 2016-04-20 网易(杭州)网络有限公司 用户界面控件展示方法及装置
CN105630686A (zh) * 2016-03-24 2016-06-01 厦门美图移动科技有限公司 一种应用遍历测试方法、设备和移动终端

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1519725A (zh) * 2003-01-20 2004-08-11 英业达股份有限公司 物件的可视化测试方法
CN106527844B (zh) * 2012-08-13 2019-03-08 华为终端(东莞)有限公司 一种实现组件内容显示的方法和装置
KR20140073046A (ko) * 2012-12-06 2014-06-16 인포뱅크 주식회사 컴포넌트 디스플레이 방법 및 그 장치
CN104050076B (zh) * 2013-03-12 2018-02-13 阿里巴巴集团控股有限公司 移动终端上的应用软件测试方法、装置及系统
CN104156305B (zh) * 2013-05-15 2018-01-09 腾讯科技(深圳)有限公司 一种应用程序测试方法及装置
CN104657377B (zh) * 2013-11-20 2018-04-03 阿里巴巴集团控股有限公司 一种多路网页控件定位方法及装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101630286A (zh) * 2009-08-07 2010-01-20 金蝶软件(中国)有限公司 一种自动化测试方法及装置
CN103914288A (zh) * 2012-12-31 2014-07-09 鼎捷软件股份有限公司 判断控件状态的方法
CN104572430A (zh) * 2013-10-24 2015-04-29 腾讯科技(深圳)有限公司 一种终端应用界面的测试方法、装置和系统
CN104142793A (zh) * 2014-07-26 2014-11-12 珠海市君天电子科技有限公司 一种模拟点击终端控件的方法及装置
CN105335283A (zh) * 2014-08-01 2016-02-17 阿里巴巴集团控股有限公司 终端设备中的应用测试方法及装置
CN105512023A (zh) * 2014-09-26 2016-04-20 腾讯科技(深圳)有限公司 一种Monkey测试方法及装置
CN104461526A (zh) * 2014-11-27 2015-03-25 广东欧珀移动通信有限公司 一种终端应用程序的控件遍历方法及装置
CN105511873A (zh) * 2015-12-02 2016-04-20 网易(杭州)网络有限公司 用户界面控件展示方法及装置
CN105468529A (zh) * 2015-12-15 2016-04-06 北京奇虎科技有限公司 一种安卓应用ui控件精准遍历方法和装置
CN105630686A (zh) * 2016-03-24 2016-06-01 厦门美图移动科技有限公司 一种应用遍历测试方法、设备和移动终端

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Strategies for Web and GUI Testing;M.R. Blackburn 等;《https://www.researchgate.net/publication/303708335》;20160601;第1-23页 *
图形用户界面自动化测试的研究;张恒;《中国优秀硕士学位论文全文数据库 信息科技辑》;20110915;第I138-97页 *
面向GUI软件的自动化测试框架的研究与实现;游泽青;《中国优秀硕士学位论文全文数据库 信息科技辑》;20130215;第I138-146页 *

Also Published As

Publication number Publication date
CN107515821A (zh) 2017-12-26

Similar Documents

Publication Publication Date Title
US9519401B2 (en) Providing context menu based on predicted commands
US9317413B2 (en) Testing device and testing method thereof
CN103518393B (zh) 检测移动通信设备内容的系统和方法
CN107025174B (zh) 用于设备的用户界面异常测试的方法、装置和可读储介质
US9122341B2 (en) Resolving merged touch contacts
CN107783898B (zh) 移动应用的测试方法及测试设备
WO2018157840A1 (zh) 语音识别测试方法及测试终端、计算设备及存储介质
CN104461903B (zh) 基于浏览器的测试客户端的方法和装置
US9442832B2 (en) User workflow replication for execution error analysis
CN107967209B (zh) 一种检测前端网页代码中错误的方法、检测设备及服务器
CN104956339B (zh) 从视频生成软件测试脚本
CN110675399A (zh) 屏幕外观瑕疵检测方法及设备
CN104951393A (zh) 测试方法和测试装置
US9734047B2 (en) Method and apparatus for an improved automated test of software with a graphical user interface
US20150242380A1 (en) Checking testing coverage
US20230035104A1 (en) Verification method, apparatus and device, and storage medium
CN107515821B (zh) 控件测试方法和装置
Havranek et al. V2S: a tool for translating video recordings of mobile app usages into replayable scenarios
CN107153608B (zh) 代码检测方法以及代码检测装置
CN108604142B (zh) 一种触屏设备操作方法及触屏设备
CN106708705B (zh) 终端后台进程监控方法和系统
KR101753314B1 (ko) 이미지 매칭 학습을 이용한 어플리케이션 테스트 방법 및 이를 수행하기 위한 장치
CN111327746B (zh) 一种用于移动终端的压力异常的确定方法及设备
CN111026989B (zh) 页面加载时间的检测方法、装置和电子设备
JP6290743B2 (ja) 情報処理装置及びプログラム

Legal Events

Date Code Title Description
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