CN108959064B - 自动化测试的弹窗处理方法及装置 - Google Patents
自动化测试的弹窗处理方法及装置 Download PDFInfo
- Publication number
- CN108959064B CN108959064B CN201710379347.5A CN201710379347A CN108959064B CN 108959064 B CN108959064 B CN 108959064B CN 201710379347 A CN201710379347 A CN 201710379347A CN 108959064 B CN108959064 B CN 108959064B
- Authority
- CN
- China
- Prior art keywords
- application
- popup
- automatic test
- target application
- operation event
- 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
Images
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/3688—Test 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)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种自动化测试的弹窗处理方法,包括:针对被测试的目标应用生成模拟操作事件;向所述目标应用发送所述模拟操作事件之前,判断操作系统正在运行的应用是否为第一类型应用;所述第一类型应用包括系统应用;在判断出正在运行的应用为第一类型应用的情况下,触发第一自动化测试框架监听并处理弹窗,并在所述第一自动化测试框架处理完毕后重新执行所述针对被测试的目标应用生成模拟操作事件的步骤。本发明还公开了一种自动化测试的弹窗处理装置,解决了现有技术在自动化测试处理效率较慢,不能确保弹窗能够被及时发现的技术问题。
Description
技术领域
本发明涉及计算机领域,尤其涉及自动化测试的弹窗处理方法、自动化测试的弹窗处理装置以及计算机可读存储介质。
背景技术
随着电子科技以及互联网技术的发展,电子设备(特别是智能移动设备)的功能越来越强大,只要用户按照自身的需求在电子设备上安装各种应用程序安装包,便可以通过各种应用程序来完成各种事务。
应用程序开发方需要对应用程序进行测试,在自动化测试过程中,所有影响自动化测试进行的窗口都可以称为系统异常弹窗,如图1示出的现有技术中系统异常弹窗的界面示意图,它可以包括充电完成提示、各种权限弹窗、应用安装提示,升级提示等等。例如,针对安卓操作系统Android的电子设备,随着Android设备厂商的定制越来越多,系统弹窗已经称为影响自动化测试顺利进行的重要因素之一。在对应用程序进行自动化测试过程中如何解决系统异常弹窗的问题,是人们关注的重点问题,
现有技术一般利用用户界面UI自动化测试uiautomator提供的API,定期轮询的方式去判断和处理弹窗。然而,该方案处理效率较慢,不能确保弹窗能够被及时发现,现有技术中异常弹窗导致的自动化测试失败率占总失败率的50%以上,而且随着机型量的扩充,这个比例还会提高。
发明内容
本发明实施例所要解决的技术问题在于,提供一种自动化测试的弹窗处理方法及一种自动化测试的弹窗处理装置,解决现有技术在自动化测试处理效率较慢,不能确保弹窗能够被及时发现的技术问题。
为了解决上述技术问题,本发明实施例第一方面公开了一种自动化测试的弹窗处理方法,包括:
针对被测试的目标应用生成模拟操作事件;
向所述目标应用发送所述模拟操作事件之前,判断操作系统正在运行的应用是否为第一类型应用;所述第一类型应用包括系统应用;
在判断出正在运行的应用为第一类型应用的情况下,触发第一自动化测试框架监听并处理弹窗,并在所述第一自动化测试框架处理完毕后重新执行所述针对被测试的目标应用生成模拟操作事件的步骤。
结合第一方面,在第一种可能的实现方式中,所述判断操作系统正在运行的应用是否为第一类型应用之后,还包括:
在判断出正在运行的应用不为第一类型应用的情况下,将所述模拟操作事件发送给所述目标应用;
触发第二自动化测试框架根据所述模拟操作事件对所述目标应用执行模拟操作;并在对所述目标应用执行模拟操作的过程中出现异常的情况下,触发所述第一自动化测试框架处理弹窗,并在所述第一自动化测试框架处理完毕后重新执行所述针对被测试的目标应用生成模拟操作事件的步骤。
结合第一方面,在第二种可能的实现方式中,所述判断操作系统正在运行的应用是否为第一类型应用包括:
根据操作系统正在运行的应用的包名判断操作系统正在运行的应用是否为第一类型应用。
结合第一方面,在第三种可能的实现方式中,所述第一自动化测试框架包括用户界面UI自动化测试uiautomator。
结合第一方面的第一种可能的实现方式,在第四种可能的实现方式中,所述第二自动化测试框架包括安卓自动化测试instrumentation。
结合第一方面,或者第一方面的第一种可能的实现方式,或者第一方面的第二种可能的实现方式,或者第一方面的第三种可能的实现方式,或者第一方面的第四种可能的实现方式,在第五种可能的实现方式中,还包括:
在启动自动化测试进程对目标应用进行测试的同时或者之后,在所述针对被测试的目标应用生成模拟操作事件之前,预先启动所述第一自动化测试框架监听操作系统弹窗的发生;
在监听到操作系统弹窗的情况下,通过所述第一自动化测试框架处理所述操作系统弹窗。
本发明实施例第二方面公开了一种自动化测试的弹窗处理方法,包括:
针对被测试的目标应用生成模拟操作事件;
在满足预设测试条件的情况下将所述模拟操作事件发送给所述目标应用;
触发第二自动化测试框架根据所述模拟操作事件对所述目标应用执行模拟操作;并在对所述目标应用执行模拟操作的过程中出现异常的情况下,触发第一自动化测试框架处理弹窗,并在所述第一自动化测试框架处理完毕后重新执行所述针对被测试的目标应用生成模拟操作事件的步骤。
结合第二方面,在第一种可能的实现方式中,所述在满足预设测试条件的情况下将所述模拟操作事件发送给所述目标应用包括:
判断操作系统正在运行的应用是否为第一类型应用;所述第一类型应用包括系统应用;
在判断出正在运行的应用不为第一类型应用的情况下,将所述模拟操作事件发送给所述目标应用。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述判断操作系统正在运行的应用是否为第一类型应用之后,还包括:
在判断出正在运行的应用为第一类型应用的情况下,触发第一自动化测试框架监听并处理弹窗,并在所述第一自动化测试框架处理完毕后重新执行所述针对被测试的目标应用生成模拟操作事件的步骤。
结合第二方面,或者第二方面的第一种可能的实现方式,或者第二方面的第二种可能的实现方式,在第三种可能的实现方式中,还包括:
在启动自动化测试进程对目标应用进行测试的同时或者之后,在所述针对被测试的目标应用生成模拟操作事件之前,预先启动所述第一自动化测试框架监听操作系统弹窗的发生;
在监听到操作系统弹窗的情况下,通过所述第一自动化测试框架处理所述操作系统弹窗。
本发明实施例第三方面公开了一种自动化测试的弹窗处理装置,包括存储器和处理器,其中所述存储器用于存储多条自动化测试的弹窗处理指令,所述处理器用于加载所述自动化测试的弹窗处理指令并执行上述第一方面,或者第一方面的第一种可能的实现方式,或者第一方面的第二种可能的实现方式,或者第一方面的第三种可能的实现方式,或者第一方面的第四种可能的实现方式,或者第一方面的第五种可能的实现方式,或者第二方面,或者第二方面的第一种可能的实现方式,或者第二方面的第二种可能的实现方式,或者第二方面的第三种可能的实现方式中的方法的步骤。
本发明实施例第四方面公开了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括自动化测试的弹窗处理程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面,或者第一方面的第一种可能的实现方式,或者第一方面的第二种可能的实现方式,或者第一方面的第三种可能的实现方式,或者第一方面的第四种可能的实现方式,或者第一方面的第五种可能的实现方式,或者第二方面,或者第二方面的第一种可能的实现方式,或者第二方面的第二种可能的实现方式,或者第二方面的第三种可能的实现方式中的方法的步骤。
实施本发明实施例,通过向所述目标应用发送模拟操作事件之前,判断系统当前运行的应用是否为第一类型应用,在判断出当前运行的应用为第一类型应用的情况下,触发第一自动化测试框架监听并处理弹窗。而不采用现有技术中以定期轮询的方式去判断和处理弹窗,解决现有技术在自动化测试处理效率较慢,不能确保弹窗能够被及时发现的技术问题,提高了自动化测试时异常弹窗的处理效率,并避免了现有技术中由轮询方式增加的很多不必要消耗。而且在将模拟操作事件发送给所述目标应用后,触发第二自动化测试框架根据模拟操作事件对所述目标应用执行模拟操作;并在对目标应用执行模拟操作的过程中出现异常的情况下,触发该第一自动化测试框架处理弹窗,很好地解决了现有技术中容易漏掉异常弹窗导致的模拟操作没有成功,并且接下来的脚本很可能出现错误的问题,从而大幅提高了自动化测试的成功率。另外,在启动自动化测试进程对目标应用进行测试的同时或者之后,在针对被测试的目标应用生成模拟操作事件之前,预先启动该第一自动化测试框架监听系统弹窗的发生,进一步提高了自动化测试时异常弹窗的处理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中系统异常弹窗的界面示意图;
图2是本发明实施例提供的自动化测试的弹窗处理方法的流程示意图;
图3是本发明提供的自动化测试的弹窗处理方法的另一实施例的流程示意图;
图4是本发明提供的自动化测试的弹窗处理方法的另一实施例的流程示意图;
图5是本发明实施例提供的自动化测试的弹窗处理装置的结构示意图;
图6是本发明提供的自动化测试的弹窗处理装置的另一实施例的结构示意图;
图7是本发明提供的自动化测试的弹窗处理装置的另一实施例的结构示意图;
图8是本发明提供的自动化测试的弹窗处理装置的另一实施例的结构示意图;
图9是本发明提供的自动化测试的弹窗处理装置的另一实施例的结构示意图;
图10是本发明提供的自动化测试的弹窗处理装置的另一实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
本发明实施例中的自动化测试的弹窗处理方法可以应用于智能移动终端,该智能移动终端可以基于智能操作系统安装各种应用程序app(或应用),测试人员可以通过在智能移动终端上设置的测试程序或测试应用对安装的app进行测试,该测试程序或测试应用通过运行自动化测试进程来进行测试,具体的测试方法下面参见图2至图4所示实施例。
如图2示出的本发明实施例提供的自动化测试的弹窗处理方法的流程示意图,可以包括如下步骤:
步骤S200:针对被测试的目标应用生成模拟操作事件;
具体地,启动自动化测试进程对被测试的目标应用进行测试后,该自动化测试进行会针对该目标应用生成各种模拟操作事件,例如模拟点击、模拟输入等操作事件,通过将该模拟操作事件发送给目标应用来完成自动化测试。
步骤S202:向所述目标应用发送所述模拟操作事件之前,判断操作系统正在运行的应用是否为第一类型应用;所述第一类型应用包括系统应用;
具体地,本发明实施例中的第一类型应用可以包括系统应用或非该目标应用的其它应用;操作系统正在运行的应用即为在操作系统在前台正在运行的应用。
步骤S204:在判断出正在运行的应用为第一类型应用的情况下,触发第一自动化测试框架监听并处理弹窗,并在所述第一自动化测试框架处理完毕后重新执行所述针对被测试的目标应用生成模拟操作事件的步骤。
具体地,在向该目标应用发送该模拟操作事件之前,若判断出正在运行的应用为第一类型应用,那么即触发第一自动化测试框架来监听并处理弹窗。本发明实施例中的第一自动化测试框架可以抓取当前界面的控件元素,并进行模拟点击、输入等操作。该第一自动化测试框架可以为测试人员预先制作的框架,也可以为智能操作系统配置有的框架,本发明不作限制。以安卓操作系统为例,该第一自动化测试框架可以为用户界面UI自动化测试uiautomator。uiautomator能够按条件查找画面中特定控件,通过正则表达式将弹窗的特定关键字如确定、确认、同意等作为查询条件查找。在识别到这些特征控件后,可以调用click方法来点击关掉弹窗。在第一自动化测试框架对第一类型应用生成的弹窗处理完毕后重新触发执行步骤S200,即重新请求模拟操作事件的发送。
通过实施本发明实施例,通过向所述目标应用发送模拟操作事件之前,判断系统当前运行的应用是否为第一类型应用,在判断出当前运行的应用为第一类型应用的情况下,触发第一自动化测试框架监听并处理弹窗。而不采用现有技术中以定期轮询的方式去判断和处理弹窗,解决现有技术在自动化测试处理效率较慢,不能确保弹窗能够被及时发现的技术问题,提高了自动化测试时异常弹窗的处理效率,并避免了现有技术中由轮询方式增加的很多不必要消耗。
进一步地,如图3示出的本发明提供的自动化测试的弹窗处理方法的另一实施例的流程示意图,再详细地进行说明,可以包括如下步骤:
步骤S300:针对被测试的目标应用生成模拟操作事件;
具体地,该步骤可以参考上述图2实施例中的步骤S200,这里不再赘述。
步骤S302:在满足预设测试条件的情况下将所述模拟操作事件发送给所述目标应用;
具体地,本发明实施例中的预设测试条件可以为测试人员根据自身需求设置的条件,包括但不限于一些判断规则或检测规则等,例如判断操作系统当前运行的应用为该目标应用,即若判断出操作系统当前运行的应用为该目标应用则满足该预设测试条件,将该模拟操作事件发送给该目标应用。可理解的是,本发明实施例中的预设测试条件还可以为无条件执行,也就是说无需进行任何规则的判断或检测,在步骤S300生成模拟操作事件后直接将该模拟操作事件发送给该目标应用。
再具体地,本发明实施例中以安卓操作系统为例,可以通过socket通信向被测试的目标应用发送该模拟操作事件。但本发明实施例不限于socket通信的方式,可以根据不同测试框架来采用不同的通信方式进行发送。
步骤S304:触发第二自动化测试框架根据所述模拟操作事件对所述目标应用执行模拟操作;并在对所述目标应用执行模拟操作的过程中出现异常的情况下,触发第一自动化测试框架处理弹窗,并在所述第一自动化测试框架处理完毕后重新执行所述针对被测试的目标应用生成模拟操作事件的步骤。
具体地,本发明实施例中的第二自动化测试框架可以只针对自己进程的应用进行模拟点击、输入等模拟操作事件的测试处理。该第二自动化测试框架可以为测试人员预先制作的框架,也可以为智能操作系统配置有的框架,本发明不作限制。以安卓操作系统为例,该第二自动化测试框架可以为安卓自动化测试instrumentation,又名为Instrument。被触发的该第二自动化测试框架再接收到模拟操作事件后将针对该目标应用执行模拟操作,并且在执行模拟操作的整个过程中可以监测是否出现异常或者可以对模拟操作事件的执行进行异常捕获,如果发现出现异常,则表明出现了弹窗,那么将触发第一自动化测试框架对弹窗进行处理,并在该第一自动化测试框架处理完毕后重新执行步骤S300,即重新请求模拟操作事件的发送。如果没有发现异常,则可以正常结束本次模拟操作测试,进行下一次的模拟操作测试,即生成下一个模拟操作事件。该第一自动化测试框架具体可以参考上述图2实施例中的第一自动化测试框架的描述,这里不再赘述。
需要说明的是,现有技术在进行自动化测试的过程中容易出现漏掉的异常弹窗,比如当要进行模拟点击的事件发生后,恰巧出现系统弹窗,这时候模拟点击的事件很可能点击到弹窗上,导致弹窗消失,但是该次模拟操作却没有成功,导致接下来的脚本很可能出现问题。通过本发明实施例中的在执行模拟操作的整个过程中监测是否出现异常或者可以对模拟操作事件的执行进行异常捕获,如果发现出现异常,即在对该目标应用执行模拟操作的过程中出现异常的情况下,表明出现了弹窗,那么将触发第一自动化测试框架对弹窗进行处理,可以及时有效地解决现有技术中容易漏掉异常弹窗导致的模拟操作没有成功,并且接下来的脚本很可能出现错误的问题。
通过实施本发明实施例,通过在将模拟操作事件发送给所述目标应用后,触发第二自动化测试框架根据模拟操作事件对所述目标应用执行模拟操作;并在对目标应用执行模拟操作的过程中出现异常的情况下,触发该第一自动化测试框架处理弹窗,很好地解决了现有技术中容易漏掉异常弹窗导致的模拟操作没有成功,并且接下来的脚本很可能出现错误的问题,从而大幅提高了自动化测试的成功率。并且不采用现有技术中以定期轮询的方式去判断和处理弹窗,解决现有技术在自动化测试处理效率较慢,不能确保弹窗能够被及时发现的技术问题,提高了自动化测试时异常弹窗的处理效率,并避免了现有技术中由轮询方式增加的很多不必要消耗。
再进一步地,下面结合图4示出的本发明提供的自动化测试的弹窗处理方法的另一实施例的流程示意图,再详细地描述本发明自动化测试的弹窗处理方法的实现方式,可以包括如下步骤:
步骤S400:启动自动化测试进程对目标应用进行自动化测试;
步骤S402:启动第一自动化测试框架监听操作系统弹窗的发生;并在监听到操作系统弹窗的情况下,通过该第一自动化测试框架处理所述操作系统弹窗;
具体地,在启动自动化测试进程对目标应用进行测试的同时或者之后,启动所述第一自动化测试框架监听系统弹窗的发生;也就是说步骤S402与步骤S400可以同时执行,也是在步骤S400执行之后执行步骤S402。该第一自动化测试框架可以以预设的周期来监听操作系统弹窗,例如周期为2S或3S等等,本发明实施例不作限制。
步骤S404:针对被测试的目标应用生成模拟操作事件;
具体地,可以参考上述图2实施例中的步骤S200,这里不再赘述。
步骤S406:判断操作系统正在运行的应用是否为第一类型应用;
具体地,本发明实施例可以根据操作系统正在运行的应用的包名(即根据顶层应用的包名,也称为top package)判断操作系统正在运行的应用是否为第一类型应用。进一步地,可以利用该第一自动化测试框架(例如uiautomator)来判断top package(即top包名),若判断为第一类型应用,则执行步骤S408,若判断不为第一类型应用,则执行步骤S410。
需要说明的是,本发明实施例不限于通过top包名来判断操作系统正在运行的应用是否为第一类型应用。
步骤S408:触发第一自动化测试框架监听并处理弹窗,并在该第一自动化测试框架处理完毕后重新执行该针对被测试的目标应用生成模拟操作事件的步骤;
步骤S410:将所述模拟操作事件发送给该目标应用;
步骤S412:触发第二自动化测试框架根据所述模拟操作事件对所述目标应用执行模拟操作;
具体地,步骤S408至步骤S412的实现方式可以参考上述图2和图3实施例中描述的实现方式,这里不再赘述。
步骤S414:异常捕获;
具体地,在执行模拟操作的整个过程中进行异常捕获,当捕获到异常,则执行步骤S416,当没有捕获到异常,则执行步骤S418。
步骤S416:触发第一自动化测试框架处理弹窗,并在该第一自动化测试框架处理完毕后重新执行该针对被测试的目标应用生成模拟操作事件的步骤;
步骤S418:正常结束。
需要说明的是,以安卓操作系统为例,本发明各个实施例中的第一自动化测试框架uiautomator和第二自动化测试框架instrument可以通过Android support包下的api来整合到本方案测试人员自身的自动化测试进程中,因此本发明实施例的自动化测试的弹窗处理方法具有很好的可移植性。
实施本发明实施例,通过第一自动化测试框架获取top包名的方式和第二自动化测试框架异常捕获的双重方式保证了异常弹窗的准确处理,解决现有技术在自动化测试处理效率较慢,不能确保弹窗能够被及时发现的技术问题,提高了自动化测试时异常弹窗的处理效率,并避免了现有技术中由轮询方式增加的很多不必要消耗。而且很好地解决了现有技术中容易漏掉异常弹窗导致的模拟操作没有成功,并且接下来的脚本很可能出现错误的问题。通过本发明实施例,因异常弹窗导致的自动化测试失败的比例能够控制在1%以内,大幅提高了自动化测试的成功率。而且在启动自动化测试进程对目标应用进行测试的同时或者之后,在针对被测试的目标应用生成模拟操作事件之前,预先启动该第一自动化测试框架监听系统弹窗的发生,进一步提高了自动化测试时异常弹窗的处理效率,异常弹窗的处理速度可以从2s左右提升到500ms以内,自动化测试时异常弹窗的处理效率提升近2倍提高,对于连续弹窗的情况也能够很快的进行处理,保证了自动化测试的稳定性。
为了便于更好地实施本发明实施例的上述方案,本发明还对应提供了一种自动化测试的弹窗处理装置,下面结合附图来进行详细说明:
如图5示出的本发明实施例提供的自动化测试的弹窗处理装置的结构示意图,自动化测试的弹窗处理装置50可以包括第一生成模块500、应用判断模块502和第一触发模块504,其中,
第一生成模块500用于针对被测试的目标应用生成模拟操作事件;
应用判断模块502用于向所述目标应用发送所述模拟操作事件之前,判断操作系统正在运行的应用是否为第一类型应用;所述第一类型应用包括系统应用;
第一触发模块504用于在判断出正在运行的应用为第一类型应用的情况下,触发第一自动化测试框架监听并处理弹窗,并在所述第一自动化测试框架处理完毕后触发第一生成模块500重新执行所述针对被测试的目标应用生成模拟操作事件的步骤。
具体地,如图6示出的本发明提供的自动化测试的弹窗处理装置的另一实施例的结构示意图,自动化测试的弹窗处理装置50包括第一生成模块500、应用判断模块502和第一触发模块504外,还可以包括第一事件发送模块506、第二触发模块508、第一预先启动模块5010和第一监听处理模块5012,其中,
第一事件发送模块506用于在应用判断模块502在判断出正在运行的应用不为第一类型应用的情况下,将所述模拟操作事件发送给所述目标应用;
第二触发模块508用于触发第二自动化测试框架根据所述模拟操作事件对所述目标应用执行模拟操作;并在对所述目标应用执行模拟操作的过程中出现异常的情况下,触发所述第一自动化测试框架处理弹窗,并在所述第一自动化测试框架处理完毕后触发第一生成模块500重新执行所述针对被测试的目标应用生成模拟操作事件的步骤;
第一预先启动模块5010用于在启动自动化测试进程对目标应用进行测试的同时或者之后,在所述第一生成模块针对被测试的目标应用生成模拟操作事件之前,预先启动所述第一自动化测试框架监听操作系统弹窗的发生;
第一监听处理模块5012用于在监听到操作系统弹窗的情况下,通过所述第一自动化测试框架处理所述操作系统弹窗。
应用判断模块502可以具体用于根据系统当前运行的应用的包名判断操作系统正在运行的应用是否为第一类型应用。
再进一步地,如图7示出的本发明提供的自动化测试的弹窗处理装置的另一实施例的结构示意图,自动化测试的弹窗处理装置70可以包括:至少一个处理器701,例如CPU,至少一个网络接口704,用户接口703,存储器705,至少一个通信总线702、显示屏706。其中,通信总线702用于实现这些组件之间的连接通信。其中,用户接口703可以包括触摸屏等等。网络接口704可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器705可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器,存储器705包括本发明实施例中的flash。存储器705可选的还可以是至少一个位于远离前述处理器701的存储系统。如图7所示,作为一种计算机存储介质的存储器705中可以包括操作系统、网络通信模块、用户接口模块以及多条自动化测试的弹窗处理指令。
在图7所示的自动化测试的弹窗处理装置70中,处理器701可以用于调用或加载存储器705中存储的自动化测试的弹窗处理指令(即自动化测试进程),并执行以下操作:
针对被测试的目标应用生成模拟操作事件;
向所述目标应用发送所述模拟操作事件之前,判断操作系统正在运行的应用是否为第一类型应用;所述第一类型应用包括系统应用;
在判断出正在运行的应用为第一类型应用的情况下,触发第一自动化测试框架监听并处理弹窗,并在所述第一自动化测试框架处理完毕后重新执行所述针对被测试的目标应用生成模拟操作事件的步骤。
具体地,处理器701判断操作系统正在运行的应用是否为第一类型应用之后,还可以执行:
在判断出正在运行的应用不为第一类型应用的情况下,将所述模拟操作事件发送给所述目标应用;
触发第二自动化测试框架根据所述模拟操作事件对所述目标应用执行模拟操作;并在对所述目标应用执行模拟操作的过程中出现异常的情况下,触发所述第一自动化测试框架处理弹窗,并在所述第一自动化测试框架处理完毕后重新执行所述针对被测试的目标应用生成模拟操作事件的步骤。
具体地,处理器701判断操作系统正在运行的应用是否为第一类型应用包括:
根据操作系统正在运行的应用的包名判断操作系统正在运行的应用是否为第一类型应用。
具体地,所述第一自动化测试框架包括用户界面UI自动化测试uiautomator。
具体地,所述第二自动化测试框架包括安卓自动化测试instrumentation。
具体地,处理器701还可以执行:
在启动自动化测试进程对目标应用进行测试的同时或者之后,在所述针对被测试的目标应用生成模拟操作事件之前,预先启动所述第一自动化测试框架监听操作系统弹窗的发生;
在监听到操作系统弹窗的情况下,通过所述第一自动化测试框架处理所述操作系统弹窗。
下面再结合图8示出的本发明提供的自动化测试的弹窗处理装置的另一实施例的结构示意图,自动化测试的弹窗处理装置80可以包括第二生成模块800、第二事件发送模块802和第三触发模块804,其中,
第二生成模块800用于针对被测试的目标应用生成模拟操作事件;
第二事件发送模块802用于在满足预设测试条件的情况下将所述模拟操作事件发送给所述目标应用;
第三触发模块804用于触发第二自动化测试框架根据所述模拟操作事件对所述目标应用执行模拟操作;并在对所述目标应用执行模拟操作的过程中出现异常的情况下,触发第一自动化测试框架处理弹窗,并在所述第一自动化测试框架处理完毕后触发第二生成模块800重新执行所述针对被测试的目标应用生成模拟操作事件的步骤。
具体地,如图9示出的本发明提供的自动化测试的弹窗处理装置的另一实施例的结构示意图,自动化测试的弹窗处理装置80包括第二生成模块800、第二事件发送模块802和第三触发模块804外,还可以包括第四触发模块806、第二预先启动模块808和第二监听处理模块8010,其中,
第二事件发送模块802可以包括判断单元8020和发送单元8022;
判断单元8020用于判断操作系统正在运行的应用是否为第一类型应用;所述第一类型应用包括系统应用;
发送单元8022用于在判断出正在运行的应用不为第一类型应用的情况下,将所述模拟操作事件发送给所述目标应用。
第四触发模块806用于在判断单元8020判断操作系统正在运行的应用是否为第一类型应用之后,在判断出正在运行的应用为第一类型应用的情况下,触发第一自动化测试框架监听并处理弹窗,并在所述第一自动化测试框架处理完毕后重新触发第二生成模块800执行所述针对被测试的目标应用生成模拟操作事件的步骤。
第二预先启动模块808用于在启动自动化测试进程对目标应用进行测试的同时或者之后,在所述针对被测试的目标应用生成模拟操作事件之前,预先启动所述第一自动化测试框架监听操作系统弹窗的发生;
第二监听处理模块8010用于在监听到操作系统弹窗的情况下,通过所述第一自动化测试框架处理所述操作系统弹窗。
再进一步地,如图10示出的本发明提供的自动化测试的弹窗处理装置的另一实施例的结构示意图,自动化测试的弹窗处理装置100可以包括:至少一个处理器1001,例如CPU,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002、显示屏1006。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括触摸屏等等。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器,存储器1005包括本发明实施例中的flash。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储系统。如图10所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及多条自动化测试的弹窗处理指令。
在图10所示的自动化测试的弹窗处理装置100中,处理器1001可以用于调用存储器1005中存储的自动化测试的弹窗处理指令(即自动化测试进程),并执行以下操作:
针对被测试的目标应用生成模拟操作事件;
在满足预设测试条件的情况下将所述模拟操作事件发送给所述目标应用;
触发第二自动化测试框架根据所述模拟操作事件对所述目标应用执行模拟操作;并在对所述目标应用执行模拟操作的过程中出现异常的情况下,触发第一自动化测试框架处理弹窗,并在所述第一自动化测试框架处理完毕后重新执行所述针对被测试的目标应用生成模拟操作事件的步骤。
具体地,处理器1001在满足预设测试条件的情况下将所述模拟操作事件发送给所述目标应用可以包括:
判断操作系统正在运行的应用是否为第一类型应用;所述第一类型应用包括系统应用;
在判断出正在运行的应用不为第一类型应用的情况下,将所述模拟操作事件发送给所述目标应用。
具体地,处理器1001判断操作系统正在运行的应用是否为第一类型应用之后,还可以执行:
在判断出当前运行的应用为第一类型应用的情况下,触发第一自动化测试框架监听并处理弹窗,并在所述第一自动化测试框架处理完毕后重新执行所述针对被测试的目标应用生成模拟操作事件的步骤。
具体地,处理器1001还可以执行:
在启动自动化测试进程对目标应用进行测试的同时或者之后,在所述针对被测试的目标应用生成模拟操作事件之前,预先启动所述第一自动化测试框架监听操作系统弹窗的发生;
在监听到操作系统弹窗的情况下,通过所述第一自动化测试框架处理所述操作系统弹窗。
需要说明的是,本发明实施例中的自动化测试的弹窗处理装置50、自动化测试的弹窗处装置理70、自动化测试的弹窗处理装置80或自动化测试的弹窗处理装置100中各模块的功能可对应参考上述各方法实施例中图2至图4任意实施例的具体实现方式,这里不再赘述。自动化测试的弹窗处理装置50、自动化测试的弹窗处装置理70、自动化测试的弹窗处理装置80或自动化测试的弹窗处理装置100可以包括但不限于智能移动终端(如移动电话、移动电脑、平板电脑)、个人数字助理(Personal Digital Assistant,PDA)、智能电视、智能手表、智能眼镜、智能手环等安装有应用程序的电子设备或终端设备。
本发明实施例还公开了一种计算机可读存储介质,该计算机存储介质存储有计算机程序,该计算机程序包括自动化测试的弹窗处理程序指令,该程序指令当被处理器执行时使该处理器执行如上述图2至图4任意实施例中的自动化测试弹窗处理的方法步骤。
实施本发明实施例,通过向所述目标应用发送模拟操作事件之前,判断系统当前运行的应用是否为第一类型应用,在判断出当前运行的应用为第一类型应用的情况下,触发第一自动化测试框架监听并处理弹窗。而不采用现有技术中以定期轮询的方式去判断和处理弹窗,解决现有技术在自动化测试处理效率较慢,不能确保弹窗能够被及时发现的技术问题,提高了自动化测试时异常弹窗的处理效率,并避免了现有技术中由轮询方式增加的很多不必要消耗。而且在将模拟操作事件发送给所述目标应用后,触发第二自动化测试框架根据模拟操作事件对所述目标应用执行模拟操作;并在对目标应用执行模拟操作的过程中出现异常的情况下,触发该第一自动化测试框架处理弹窗,很好地解决了现有技术中容易漏掉异常弹窗导致的模拟操作没有成功,并且接下来的脚本很可能出现错误的问题,从而大幅提高了自动化测试的成功率。另外,在启动自动化测试进程对目标应用进行测试的同时或者之后,在针对被测试的目标应用生成模拟操作事件之前,预先启动该第一自动化测试框架监听系统弹窗的发生,进一步提高了自动化测试时异常弹窗的处理效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (11)
1.一种自动化测试的弹窗处理方法,其特征在于,包括:
针对被测试的目标应用生成模拟操作事件;
向所述目标应用发送所述模拟操作事件之前,判断操作系统正在运行的应用是否为第一类型应用;所述第一类型应用包括系统应用;
在判断出正在运行的应用为第一类型应用的情况下,触发第一自动化测试框架监听并处理弹窗,并在所述第一自动化测试框架处理完毕后重新执行所述针对被测试的目标应用生成模拟操作事件的步骤;
在判断出正在运行的应用不为第一类型应用的情况下,将所述模拟操作事件发送给所述目标应用;
触发第二自动化测试框架根据所述模拟操作事件对所述目标应用执行模拟操作,所述第二自动化测试框架仅用于针对自身进程的应用进行模拟操作事件的测试处理;并在对所述目标应用执行模拟操作的过程中出现异常的情况下,触发所述第一自动化测试框架处理弹窗,并在所述第一自动化测试框架处理完毕后重新执行所述针对被测试的目标应用生成模拟操作事件的步骤。
2.如权利要求1所述的方法,其特征在于,所述判断操作系统正在运行的应用是否为第一类型应用包括:
根据操作系统正在运行的应用的包名判断操作系统正在运行的应用是否为第一类型应用。
3.如权利要求1所述的方法,其特征在于,所述第一自动化测试框架包括用户界面UI自动化测试uiautomator。
4.如权利要求1所述的方法,其特征在于,所述第二自动化测试框架包括安卓自动化测试instrumentation。
5.如权利要求1-4任一项所述的方法,其特征在于,还包括:
在启动自动化测试进程对目标应用进行测试的同时或者之后,在所述针对被测试的目标应用生成模拟操作事件之前,预先启动所述第一自动化测试框架监听操作系统弹窗的发生;
在监听到操作系统弹窗的情况下,通过所述第一自动化测试框架处理所述操作系统弹窗。
6.一种自动化测试的弹窗处理方法,其特征在于,包括:
针对被测试的目标应用生成模拟操作事件;
在满足预设测试条件的情况下将所述模拟操作事件发送给所述目标应用;
触发第二自动化测试框架根据所述模拟操作事件对所述目标应用执行模拟操作,所述第二自动化测试框架仅用于针对自身进程的应用进行模拟操作事件的测试处理;并在对所述目标应用执行模拟操作的过程中出现异常的情况下,触发第一自动化测试框架处理弹窗,并在所述第一自动化测试框架处理完毕后重新执行所述针对被测试的目标应用生成模拟操作事件的步骤。
7.如权利要求6所述的方法,其特征在于,所述在满足预设测试条件的情况下将所述模拟操作事件发送给所述目标应用包括:
判断操作系统正在运行的应用是否为第一类型应用;所述第一类型应用包括系统应用;
在判断出正在运行的应用不为第一类型应用的情况下,将所述模拟操作事件发送给所述目标应用。
8.如权利要求7所述的方法,其特征在于,所述判断操作系统正在运行的应用是否为第一类型应用之后,还包括:
在判断出正在运行的应用为第一类型应用的情况下,触发第一自动化测试框架监听并处理弹窗,并在所述第一自动化测试框架处理完毕后重新执行所述针对被测试的目标应用生成模拟操作事件的步骤。
9.如权利要求6-8任一项所述的方法,其特征在于,还包括:
在启动自动化测试进程对目标应用进行测试的同时或者之后,在所述针对被测试的目标应用生成模拟操作事件之前,预先启动所述第一自动化测试框架监听操作系统弹窗的发生;
在监听到操作系统弹窗的情况下,通过所述第一自动化测试框架处理所述操作系统弹窗。
10.一种自动化测试的弹窗处理装置,其特征在于,包括存储器和处理器,其中所述存储器用于存储多条自动化测试的弹窗处理指令,所述处理器用于加载所述自动化测试的弹窗处理指令并执行实现权利要求1-9任一项所述的方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括自动化测试的弹窗处理程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-9任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710379347.5A CN108959064B (zh) | 2017-05-25 | 2017-05-25 | 自动化测试的弹窗处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710379347.5A CN108959064B (zh) | 2017-05-25 | 2017-05-25 | 自动化测试的弹窗处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108959064A CN108959064A (zh) | 2018-12-07 |
CN108959064B true CN108959064B (zh) | 2022-11-08 |
Family
ID=64494057
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710379347.5A Active CN108959064B (zh) | 2017-05-25 | 2017-05-25 | 自动化测试的弹窗处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108959064B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109766252A (zh) * | 2018-12-15 | 2019-05-17 | 深圳壹账通智能科技有限公司 | 提示框元素处理方法、装置、计算机设备及存储介质 |
CN109947659B (zh) * | 2019-04-09 | 2023-09-05 | 北京字节跳动网络技术有限公司 | 用于测试应用的系统、方法和装置 |
CN110347608B (zh) * | 2019-07-17 | 2024-03-22 | 腾讯科技(深圳)有限公司 | 一种交互式应用的测试方法及相关装置 |
CN111258914A (zh) * | 2020-02-26 | 2020-06-09 | 广州虎牙科技有限公司 | 自动化用例测试的弹窗处理方法、装置、设备及存储介质 |
CN112199284A (zh) * | 2020-10-10 | 2021-01-08 | 广州华多网络科技有限公司 | 程序自动化测试方法及其相应的装置、设备、介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130311827A1 (en) * | 2012-05-16 | 2013-11-21 | International Business Machines Corporation | METHOD and APPARATUS for automatic testing of automation software |
CN105335283A (zh) * | 2014-08-01 | 2016-02-17 | 阿里巴巴集团控股有限公司 | 终端设备中的应用测试方法及装置 |
CN105573911A (zh) * | 2015-12-10 | 2016-05-11 | 北京奇虎科技有限公司 | 一种应用弹窗的处理方法和装置 |
CN105786687A (zh) * | 2014-12-22 | 2016-07-20 | 博雅网络游戏开发(深圳)有限公司 | 移动应用测试方法和装置 |
CN105808257A (zh) * | 2016-03-08 | 2016-07-27 | 杭州朗和科技有限公司 | 一种应用弹窗识别方法和装置 |
CN106126425A (zh) * | 2016-06-30 | 2016-11-16 | 北京奇虎科技有限公司 | 基于Android自动化测试框架的功能遍历方法及系统 |
-
2017
- 2017-05-25 CN CN201710379347.5A patent/CN108959064B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130311827A1 (en) * | 2012-05-16 | 2013-11-21 | International Business Machines Corporation | METHOD and APPARATUS for automatic testing of automation software |
CN105335283A (zh) * | 2014-08-01 | 2016-02-17 | 阿里巴巴集团控股有限公司 | 终端设备中的应用测试方法及装置 |
CN105786687A (zh) * | 2014-12-22 | 2016-07-20 | 博雅网络游戏开发(深圳)有限公司 | 移动应用测试方法和装置 |
CN105573911A (zh) * | 2015-12-10 | 2016-05-11 | 北京奇虎科技有限公司 | 一种应用弹窗的处理方法和装置 |
CN105808257A (zh) * | 2016-03-08 | 2016-07-27 | 杭州朗和科技有限公司 | 一种应用弹窗识别方法和装置 |
CN106126425A (zh) * | 2016-06-30 | 2016-11-16 | 北京奇虎科技有限公司 | 基于Android自动化测试框架的功能遍历方法及系统 |
Non-Patent Citations (3)
Title |
---|
UI自动化测试-弹窗处理;weixin_33691700;《CSDN》;20161122;全文 * |
基于APK的Android应用程序GUI遍历自动化方法;张胜桥等;《计算机应用》;20161110(第11期);第3178-3182页 * |
基于WATIR框架的WEB自动化测试;沈佳宇;《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》;20140615(第06期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108959064A (zh) | 2018-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108959064B (zh) | 自动化测试的弹窗处理方法及装置 | |
CN108595329B (zh) | 一种应用测试方法、装置及计算机存储介质 | |
CN108021496B (zh) | 线程数据处理方法及装置 | |
CN110046479B (zh) | 一种基于安卓操作系统的链接库文件反调试方法及装置 | |
US8959394B2 (en) | Electronic device, system, and method for testing exception handling mechanism | |
CN103634592A (zh) | 智能电视自动化测试方法及系统 | |
CN102855188B (zh) | 基于Android的系统压力测试方法 | |
CN111026645A (zh) | 用户界面自动化测试方法、装置、存储介质及电子设备 | |
CN103377120A (zh) | 一种应用程序测试方法及装置 | |
CN107391362A (zh) | 应用测试方法、移动终端及存储介质 | |
CN109308241A (zh) | 监听应用程序启动流程方法、装置、终端设备和存储介质 | |
US9378054B2 (en) | Testing system with methodology for background application control | |
TWI684916B (zh) | 函式選取方法和伺服器 | |
CN107797922B (zh) | 应用页面的测试方法、电子装置及电子设备 | |
CN112465466A (zh) | 流程任务执行方法、装置、计算机设备和存储介质 | |
US11055416B2 (en) | Detecting vulnerabilities in applications during execution | |
CN106557411B (zh) | Android系统中Hybrid应用的测试方法及系统 | |
CN113127329B (zh) | 脚本调试方法、装置及计算机存储介质 | |
CN110928787B (zh) | 自动化测试脚本录制回放方法、装置、设备和存储介质 | |
CN112416762A (zh) | Api测试方法及装置、设备、计算机可读存储介质 | |
CN111124627B (zh) | 应用程序的调起者确定方法、装置、终端及存储介质 | |
Borges Jr et al. | Speeding up GUI testing by on-device test generation | |
CN113656063A (zh) | 一种系统版本更换方法、装置、设备及计算机可读介质 | |
CN110308943B (zh) | 程序运行方法、装置、计算设备以及存储介质 | |
WO2024088053A1 (zh) | 代码调试方法、电子设备及计算机可读存储介质 |
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 |