一种应用弹窗识别方法和装置与流程

文档序号:13248508阅读:153来源:国知局
技术领域本发明的实施方式涉及应用测试技术领域,更具体地,本发明的实施方式涉及一种应用弹窗识别方法和装置。

背景技术:
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。随着移动通信技术的飞速发展和移动互联网时代的到来,手机等移动终端作为人们必备的移动通信工具,已从简单的通话工具向智能化发展。为了满足用户日益增长和多种多样的业务需求,基于移动终端的互联网应用越来越多。基于移动终端的互联网应用在被提供给用户使用之前,互联网应用的提供商需要对该应用提供的功能进行测试。而在基于Andriod(安卓)操作系统开发的互联网应用测试过程中,尤其是自动化测试过程中,由于测试框架的不足或者测试方法不当,不可避免的会出现一些应用弹窗。图1a-1d为一些弹窗示例。如图1a所示,其为被测试应用内部的升级提示框,如图1b所示,其为被测试应用内部长按呼出右键菜单弹窗;图1c为被测试应用内部声明使用系统权限弹窗;图1d为跨应用(即除被测试应用之外的其它应用)弹出的系统权限提醒弹窗。

技术实现要素:
但是,出于在应用测试过程中出现的弹窗可能是被测试应用需要被测试的功能之一,也有可能是不需要被测试的功能的原因,现有技术中在测试应用过程中无法避免弹窗弹出。而由于测试执行过程中,当有弹窗弹出时,会获取当前屏幕的操作焦点,如果弹出的弹窗不是被测试应用需要被测试的功能之一,如果不及时对弹窗进行处理,则将导致测试无法被正常执行,从而对测试结果造成影响,这是非常令人烦恼的过程。为此,非常需要一种应用弹窗识别方法,以使弹窗能够及时处理,避免由于测试之外的弹窗弹出影响测试进程和测试结果。在本上下文中,本发明的实施方式期望提供一种应用弹窗识别方法和装置。在本发明实施方式的第一方面中,提供了一种应用弹窗识别方法,包括:获取被测设备当前置顶应用的应用信息和当前焦点窗口的第一窗口信息,所述应用信息中包含有第一包名信息,所述第一窗口信息中包含有第二包名信息,所述被测设备用于运行被测试应用;如果所述第一包名信息和所述第二包名信息不同,则确定检测到应用弹窗。可选的,本发明实施方式提供的应用弹窗识别方法,还包括:如果所述第一包名信息和所述第二包名信息相同,则获取所述被测设备当前运行所有窗口的第二窗口信息;根据获取的第二窗口信息中包含的第三包名信息,统计与所述第一包名信息相同的第三包名信息的数量N,所述N为自然数;如果N大于等于2,则确定检测到应用弹窗。进一步的,本发明实施方式提供的应用弹窗识别方法中,确定检测到应用弹窗之后,还包括:判断检测到的应用弹窗的窗口信息与针对当前测试场景预先定义的任一窗口信息是否相同;如果不同,则向所述被测设备下发弹窗处理指令。可选的,本发明实施方式提供的应用弹窗识别方法,向所述被测设备下发弹窗处理指令之前,还包括:获取检测到的应用弹窗中包含的所有控件元素的控件元素信息;针对每一控件元素,如果根据其对应的控件元素信息确定该控件元素为需要点击的控件元素,则读取该控件元素对应的控件元素信息中包含的控件元素位置信息;以及向所述被测设备下发弹窗处理指令,具体包括:向所述被测设备下发点击操作指令,所述点击操作指令中包含有需要点击的控件元素的位置信息。其中,针对每一控件元素,按照以下方法判断该控件元素是否为需要点击的控件元素:读取该控件元素对应的控件元素信息中的控件元素类型信息;判断读取的控件元素类型信息是否为按钮BUTTON;如果是,则确定该控件元素是需要点击的控件元素;如果否,则确定该控件元素不是需要点击的控件元素。可选的,本发明实施方式提供的应用弹窗识别方法,获取检测到的应用弹窗中包含的所有控件元素的控件元素信息之后,还包括:针对每一控件元素,如果根据其对应的控件元素信息确定该控件元素为可勾选的控件元素,则读取该控件元素对应的控件元素信息中包含的该控件元素的控件元素勾选信息;如果读取的控件元素勾选信息为假FALSE,则读取该控件元素对应的控件元素信息中包含的控件元素位置信息;以及向所述被测设备下发弹窗处理指令,具体包括:向所述被测设备下发点击操作指令,所述点击操作指令中包含有需要勾选的控件元素的位置信息。其中,针对每一控件元素,按照以下方法判断该控件元素是否为可勾选的控件元素:读取该控件元素对应的控件元素信息中的控件元素类型信息;判断读取的控件元素类型信息是否为复选框CHECKBOX;如果是,则确定该控件元素是可勾选的控件元素;如果否,则确定该控件元素不是可勾选的控件元素。较佳的,本发明实施方式提供的应用弹窗识别方法中,获取检测到的应用弹窗中包含的所有控件元素的控件元素信息,具体包括:向所述被测设备发送获取检测到的应用弹窗中包含的所有控件元素的控件元素信息的第一信息获取指令;接收所述被测设备针对第一信息获取指令返回的、包含有检测到的应用弹窗中包含的所有控件元素的控件元素信息的文件;解析接收到的文件得到检测到的应用弹窗中包含的所有控件元素的控件元素信息。较佳的,本发明实施方式提供的应用弹窗识别方法中,获取被测设备当前置顶应用的应用信息和当前焦点窗口的第一窗口信息,具体包括:分别向所述被测设备发送获取被测设备当前置顶应用的应用信息的第二信息获取指令和获取被测设备当前焦点窗口的第一窗口信息的第三信息获取指令;以及接收所述被测设备分别针对第二信息获取指令返回的、被测设备当前置顶应用的应用信息和针对第三信息获取指令返回的、被测设备当前焦点窗口的第一窗口信息。较佳的,本发明实施方式提供的应用弹窗识别方法中,获取所述被测设备当前运行所有窗口的第二窗口信息,具体包括:向所述被测设备发送获取被测设备当前运行所有窗口的第二窗口信息的第四信息获取指令;接收所述被测设备针对所述第四信息获取指令返回的第二窗口信息。较佳的,所述被测试应用为基于安卓Andriod操作系统开发的,以及所述第一信息获取指令、第二信息获取指令、第三信息获取指令或者第四信息获取指令为安卓调试桥ADB指令。其中,所述ADB指令由独立于所述被测设备的第二设备发送,所述应用弹窗识别方法由所述第二设备执行。在本发明实施方式的第二方面中,提供了一种应用弹窗识别装置,包括:第一获取单元,用于获取被测设备当前置顶应用的应用信息和当前焦点窗口的第一窗口信息,所述应用信息中包含有第一包名信息,所述第一窗口信息中包含有第二包名信息,所述被测设备用于运行被测试应用;弹窗检测单元,用于如果所述第一包名信息和所述第二包名信息不同,则确定检测到应用弹窗。可选的,本发明实施方式提供的应用弹窗识别装置还包括统计单元,其中:所述第一获取单元,还用于如果所述第一包名信息和所述第二包名信息相同,则获取所述被测设备当前运行所有窗口的第二窗口信息;所述统计单元,用于根据获取的第二窗口信息中包含的第三包名信息,统计与所述第一包名信息相同的第三包名信息的数量N,所述N为自然数;所述弹窗检测单元,还用于如果N大于等于2,则确定检测到应用弹窗。可选的,本发明实施方式提供的应用弹窗识别装置还包括判断单元和弹窗处理单元,其中:所述判断单元,用于在所述弹窗检测单元确定检测到弹窗之后,判断检测到的应用弹窗的窗口信息与针对当前测试场景预先定义的任一窗口信息是否相同;所述弹窗处理单元,用于如果所述判断单元的判断结果为否,则向所述被测设备下发弹窗处理指令。可选的,本发明实施方式提供的应用弹窗识别装置还包括第二获取单元和第一读取单元,其中:所述第二获取单元,用于所述弹窗处理单元向所述被测设备下发弹窗处理指令之前,获取检测到的应用弹窗中包含的所有控件元素的控件元素信息;所述第一读取单元,用于针对每一控件元素,如果根据其对应的控件元素信息确定该控件元素为需要点击的控件元素,则读取该控件元素对应的控件元素信息中包含的控件元素位置信息;所述弹窗处理单元,具体用于向所述被测设备下发点击操作指令,所述点击操作指令中包含有需要点击的控件元素的位置信息。较佳的,所述第一读取单元,包括:第一读取子单元,用于针对每一控件元素,读取该控件元素对应的控件元素信息中的控件元素类型信息;第一判断子单元,用于判断读取的控件元素类型信息是否为按钮BUTTON;第一确定子单元,用于如果所述第一判断子单元的判断结果为是,则确定该控件元素是需要点击的控件元素;如果所述第一判断子单元的判断结果为否,则确定该控件元素不是需要点击的控件元素。可选的,本发明实施方式提供的应用弹窗识别装置还包括第二读取单元和第三读取单元,其中:所述第二读取单元,用于针对每一控件元素,如果根据其对应的控件元素信息确定该控件元素为可勾选的控件元素,则读取该控件元素对应的控件元素信息中包含的该控件元素的控件元素勾选信息;所述第三读取单元,用于如果读取的控件元素勾选信息为假FALSE,则读取该控件元素对应的控件元素信息中包含的控件元素位置信息;所述弹窗处理单元,用于向所述被测设备下发点击操作指令,所述点击操作指令中包含有需要勾选的控件元素的位置信息。较佳的,所述第二读取单元,包括:第二读取子单元,用于读取该控件元素对应的控件元素信息中的控件元素类型信息;第二判断子单元,用于判断读取的控件元素类型信息是否为复选框CHECKBOX;第二确定子单元,用于如果所述第二判断子单元的判断结果为是,则确定该控件元素是可勾选的控件元素;如果所述第二判断子单元的判断结果为否,则确定该控件元素不是可勾选的控件元素。较佳的,所述第二获取单元包括:第一发送子单元,用于向所述被测设备发送获取检测到的应用弹窗中包含的所有控件元素的控件元素信息的第一信息获取指令;第一接收子单元,用于接收所述被测设备针对第一信息获取指令返回的、包含有检测到的应用弹窗中包含的所有控件元素的控件元素信息的文件;解析子单元,用于解析接收到的文件得到检测到的应用弹窗中包含的所有控件元素的控件元素信息。较佳的,所述第一获取单元,包括:第二发送子单元,用于分别向所述被测设备发送获取被测设备当前置顶应用的应用信息的第一信息获取指令和获取被测设备当前焦点窗口的第一窗口信息的第三信息获取指令;第二接收子单元,用于接收所述被测设备分别针对第一信息获取指令返回的、被测设备当前置顶应用的应用信息和针对第三信息获取指令返回的、被测设备当前焦点窗口的第一窗口信息。较佳的,所述第一获取单元,包括:第三发送子单元,用于向所述被测设备发送获取被测设备当前运行所有窗口的第二窗口信息的第四信息获取指令;第三接收子单元,用于接收所述被测设备针对所述第四信息获取指令返回的第二窗口信息。在本发明实施方式的第三方面中,提供了一种应用弹窗识别装置,例如,可以包括存储器和处理器,其中,处理器可以用于读取存储器中的程序,执行下列过程:获取被测设备当前置顶应用的应用信息和当前焦点窗口的第一窗口信息,所述应用信息中包含有第一包名信息,所述第一窗口信息中包含有第二包名信息,所述被测设备用于运行被测试应用;如果所述第一包名信息和所述第二包名信息不同,则确定检测到应用弹窗。在本发明实施方式的第四方面中,提供了一种程序产品,其包括程序代码,当所述程序代码被执行时,所述程序代码用于执行以下过程:获取被测设备当前置顶应用的应用信息和当前焦点窗口的第一窗口信息,所述应用信息中包含有第一包名信息,所述第一窗口信息中包含有第二包名信息,所述被测设备用于运行被测试应用;如果所述第一包名信息和所述第二包名信息不同,则确定检测到应用弹窗。根据本发明实施方式的应用弹窗识别方法和装置,通过获取当前置顶应用的应用信息和当前焦点窗口的窗口信息中包含的包名信息确定被测设备当前是否有应用弹窗弹出,为及时处理测试过程中的弹窗提供了基础,避免了由于非预期应用弹窗弹出对测试进程和测试结果造成的影响,为用户带来了更好的体验。附图说明通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:图1a为现有技术中被测试应用内部的升级提示框示意图;图1b为现有技术中被测试应用内部长按呼出右键菜单弹窗示意图;图1c为现有技术中被测试应用内部声明使用系统权限弹窗示意图;图1d为现有技术中跨应用弹出的系统权限提醒弹窗示意图;图2示意性地示出了根据本发明实施方式的应用场景示意图;图3示意性地示出了根据本发明实施方式的应用弹窗识别方法的实施流程示意图;图4示意性地示出了根据本发明实施方式的获取被测设备当前置顶应用的应用信息和当前焦点窗口的第一窗口信息的流程示意图;图5a示意性地示出了根据本发明实施方式的有跨应用弹窗出现时被测设备的屏幕显示示意图;图5b示意性地示出了根据本发明实施方式的当被测设备上有跨应用弹窗出现时,上位机与被测设备之间交互的信息示意图;图6a示意性地示出了根据本发明实施方式的对被测设备当前出现的跨应用弹窗进行处理流程示意图;图6b示意性地示出了根据本发明实施方式的获取检测到的应用弹窗中包含的所有控件元素的控件元素信息的流程示意图;图6c示意性地示出了根据本发明实施方式的上位机获取到的xml文件的第一种示意图;图6d示意性地示出了根据本发明实施方式的上位机获取到的xml文件的第二种示意图;图6e示意性地示出了根据本发明实施方式的判断该控件元素是否为需要点击的控件元素的流程示意图;图6f示意性地示出了根据本发明实施方式的对可勾选的控件元素进行处理的流程示意图;图6g示意性地示出了根据本发明实施方式的判断各控件元素是否为可勾选的控件元素的流程示意图;图6h示意性地示出了根据本发明实施方式的上位机获取到的xml文件的第三种示意图;图6i示意性地示出了根据本发明实施方式的上位机获取到的xml文件的第四种示意图;图7a示意性地示出了根据本发明实施方式的被测设备屏幕显示的应用弹窗示意图;图7b示意性地示出了根据本发明实施方式的上位机与被测设备之间交互的信息示意图;图7c示意性地示出了根据本发明实施方式的判断是否检测到被测应用内部弹出的应用弹窗的流程示意图;图7d示意性地示出了根据本发明实施方式的被测设备当前屏幕显示的所有窗口第一种示意图;图7e示意性地示出了根据本发明实施方式的被测设备当前屏幕显示的所有窗口第一种示意图;图7f示意性地示出了图7d所示窗口对应的窗口信息示意图;图7g示意性地示出了图7e所示窗口对应的窗口信息示意图;图8a示意性地示出了根据本发明实施方式的对被测设备当前出现的跨应用弹窗进行处理流程示意图;图8b示意性地示出了根据本发明实施方式的获取检测到的应用弹窗中包含的所有控件元素的控件元素信息的流程示意图;图8c示意性地示出了根据本发明实施方式的判断该控件元素是否为需要点击的控件元素的流程示意图;图8d示意性地示出了根据本发明实施方式的对可勾选的控件元素进行处理的流程示意图;图8e示意性地示出了根据本发明实施方式的判断各控件元素是否为可勾选的控件元素的流程示意图;图9示意性地示出了根据本发明另一实施例的应用弹窗识别装置的结构示意图;在附图中,相同或对应的标号表示相同或对应的部分。具体实施方式下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。根据本发明的实施方式,提出了一种应用弹窗识别的方法和装置。在本文中,需要理解的是,所涉及的术语中:ADB(AndroidDebugBridge,安卓调试桥),是Androidsdk(SoftwareDevelopmentKit,软件开发工具包)里的一个工具,用这个工具可以直接操作和管理基于Android(安卓)系统的模拟器或者真实的Android设备;上位机,是指可以发出操控指令的计算机,一般指PC(个人计算机)/hostcomputer(主机)/mastercomputer(主计算机)等,本发明实施例中指的是可以对连接在上位机上面的被测设备发出指令的PC机。此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。发明概述本发明人发现,在应用程序的测试特别是互联网应用的自动化测试过程中,不可避免的会弹出应用弹窗,如果该应用弹窗不是被测试应用的待测试功能之一,其将对测试进程和测试结果造成影响。有鉴于此,本发明实施例中,在对应用程序的测试过程中,利用上位机向被测设备获取其当前置顶应用的应用信息和当前焦点窗口的窗口信息,根据其中包含的包名信息是否一致来判断是否有应用弹窗弹出,从而为及时处理应用弹窗提供了基础,避免了非预期弹窗弹出对测试进行和测试结果造成影响。在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。应用场景总览首先参考图2,被测设备11与上位机12连接,其中被测设备11用于运行被测试应用程序,上位机12用于运行本发明实施例提供的应用弹窗识别程序,上位机12控制应用弹窗识别程序的启动、操作处理和停止。上位机12通过向被测设备11发出指令,以实时搜集被测设备11返回的数据,通过对返回的数据进行整理和分析确定被测设备11当前是否有应用弹窗出现。其中,被测设备11和上位机12之间可以通过任意的通信方式连接,例如可以通过以下任一方式连接:连接方式一、两者通过USB(UniversalSerialBus,通用串行总线)连接。连接方式二、如果两者处于同一局域网内,则两者之间可以通过Wi-Fi(无线保真)方式连接。为了实现向被测设备11发送指令的目的,上位机12需要配置ADB命令环境,另外,如果被测设备11与上位机12之间通过USB线连接,则上位机12还需要安装被测设备11的USB驱动程序。具体实施时,在对应用程序进行测试的同时启动应用弹窗识别程序,在测试应用过程中,实时检测是否有应用弹窗出现,当确定检测到应用弹窗时,还可以根据预先设置的测试场景,判断出现的应用弹窗是否为当前被测试应用的待测试功能之一(即判断出现的应用弹窗是否为预期应用弹窗),如果不是,则需要对应用弹窗进行处理,以保证测试能够正常执行。需要说明的是,本发明实施例中涉及的被测设备11可以为安卓设备,基于此,被测试应用可以为基于安卓Andriod操作系统开发的。示例性方法下面结合图2的应用场景,参考图3-图7g来描述根据本发明示例性实施方式的应用弹窗识别方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。如图3所示,其为本发明实施例提供的应用弹窗识别方法的实施流程示意图,可以包括以下步骤:S31、获取被测设备当前置顶应用的应用信息和当前焦点窗口的第一窗口信息。其中,获取的应用信息中包含有当前置顶应用的第一包名信息,获取的第一窗口信息中包含有当前焦点窗口的第二包名信息,所述被测设备用于运行被测试应用。其中,当前置顶应用通常是指当前布满被测设备整个屏幕容器(即当前应用所占屏幕的空间)的应用。当前焦点窗口是指当前可以和用户交互的窗口,即最顶层的窗口。上位机获取了当前置顶应用的第一包名信息和当前焦点窗口的第二包名信息之后,比较两者是否相同,并根据比较结果确定是否有应用弹窗弹出。S32、如果所述第一包名信息和所述第二包名信息不同,则确定检测到应用弹窗。其中,步骤S31中可以按照图4所示的流程获取被测设备当前置顶应用的应用信息和当前焦点窗口的第一窗口信息:S311、分别向被测设备发送获取被测设备当前置顶应用的应用信息的第二信息获取指令和获取被测设备当前焦点窗口的第一窗口信息的第三信息获取指令。S312、接收所述被测设备分别针对第二信息获取指令返回的、被测设备当前置顶应用的应用信息和针对第三信息获取指令返回的、被测设备当前焦点窗口的第一窗口信息。较佳的,具体实施时,上位机可以使用adbshelldumpsyswindow命令对被测设备上正在运行的应用进行信息抓取。具体的,上位机向被测设备发出的第二信息获取指令可以为:adbshelldumpsyswindowwindows|grep‘mFocusedApp’,被测设备在接收到该指令后,向上位机返回相应数据,上位机通过对被测设备返回的数据进行分析得到当前置顶应用的应用信息并记录。相应的,被测设备返回的消息可为如下形式:mFocusedApp=AppWindowToken{423d4a10token=Token{4211c328ActivityRecord{f53e20u0com.neteaseyx.paopao/com.netease.vstore.activity.ActivityHomet24
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1