一种基于Monkey命令的应用测试方法、装置及终端的制作方法

文档序号:8543627阅读:332来源:国知局
一种基于Monkey命令的应用测试方法、装置及终端的制作方法
【技术领域】
[0001]本发明涉及互联网技术领域,尤其涉及一种基于Monkey命令的应用测试方法、装置及终端。
【背景技术】
[0002]Monkey命令是谷歌提供的测试稳定性的命令行工具。虽然通过_p参数可以指定被测试的应用包的名称。但实际测试中,经常会遇到无法有效控制随机事件,而使之后的测试失去价值的情况。
[0003]例如,以测试“清理大师的稳定情况”为例,Monkey命令的格式为adb shellmonkey - P com.cleanmaster.mguard_cn 30000,即指定针对“清理大师”这个应用执行3万个伪随机事件。但在实际测试中,可能会在执行到5000个事件的时候,触发了 home键事件,回到主屏,此后,Monkey命令控制终端进入到了另一个应用,如“ QQ”,此时在有效Monkey进程结束之前,剩下的随机事件已经不发生在“清理大师中”,也自然不是针对“清理大师”的有效测试,属于无效测试。可见,目前基于Monkey命令的应用测试无法保证尽可能多的有效测试。

【发明内容】

[0004]本发明实施例所要解决的技术问题在于,提供一种基于Monkey命令的应用测试方法、装置及终端,以尽可能保证基于Monkey命令的应用测试中的有效测试,提高应用测试的有效性。
[0005]为了解决上述技术问题,本发明实施例提供了一种基于Monkey命令的应用测试方法,包括:
[0006]接收针对目标应用的Monkey命令,所述Monkey命令包括所述目标应用的至少两个测试入口、预设的针对各测试入口的伪随机事件数量,以及预设的伪随机事件总数;
[0007]响应所述Monkey命令,运行所述目标应用;
[0008]分别将各测试入口作为Monkey的入口,执行针对该测试入口的伪随机事件;
[0009]在所述针对该测试入口的伪随机事件的执行过程中,监测终端最上层窗口的窗口名与该测试入口对应的窗口名是否匹配;
[0010]若不匹配,暂停执行所述针对该测试入口的伪随机事件,控制终端将窗口名与该测试入口对应的窗口名匹配的窗口设置为最上层窗口,并继续执行所述针对该测试入口的伪随机事件;
[0011]当所述目标应用的至少两个测试入口均测试完成,且伪随机事件的执行总数达到所述预设的伪随机事件总数,确定所述目标应用测试完成。
[0012]其中,所述分别将各测试入口作为Monkey的入口,并执行所述针对该测试入口的伪随机事件包括以下步骤:
[0013]步骤Al、将任一未测试的测试入口作为Monkey的入口,并执行针对该测试入口的伪随机事件;
[0014]步骤B1、当针对该测试入口的伪随机事件的执行数量达到预设的针对该测试入口的伪随机事件数量时,判断是否存在未测试的测试入口,若判断为是,转至步骤Al ;否则,确定所述目标应用的至少两个测试入口均测试完成。
[0015]其中,所述分别将各测试入口作为Monkey的入口,并执行所述针对该测试入口的伪随机事件包括以下步骤:
[0016]步骤A2、按照预先设定的测试顺序,将为测试的测试入口中测试顺序最优的测试入口作为Monkey的入口,执行针对该测试入口的伪随机事件;
[0017]步骤B2、当针对该测试入口的伪随机事件的执行数量达到所述预设的针对该测试入口的伪随机事件数量时,判断是否存在未测试的测试入口,若判断为是,转至步骤A2 ;否则,确定所述目标应用的至少两个测试入口均测试完成。
[0018]其中,所述监测终端最上层窗口的窗口名与该测试入口对应的窗口名是否匹配之后,还包括:
[0019]若匹配,则当所述针对该测试入口的伪随机事件的执行数量达到所述预设的针对该测试入口的伪随机事件数量时,确定该测试入口测试完成。
[0020]其中,所述控制终端将窗口名与该测试入口对应的窗口名匹配的窗口设置为最上层窗口,包括:
[0021]当所述终端最上层窗口为桌面窗口时,判断终端是否打开了与该测试入口对应的窗口名匹配的窗口;
[0022]若判断为是,将所述窗口名与该测试入口对应的窗口名匹配的窗口最大化;
[0023]否则,控制终端运行所述目标应用,并控制所述目标应用进入该测试入口 ;
[0024]当所述终端最上层窗口为该目标应用对应的窗口,控制该目标应用进入该测试入
□O
[0025]相应地,本发明实施例还提供了一种基于Monkey命令的应用测试装置,包括:
[0026]接收模块,用于接收针对目标应用的Monkey命令,所述Monkey命令包括所述目标应用的至少两个测试入口、预设的针对各测试入口的伪随机事件数量,以及预设的伪随机事件总数;
[0027]运行模块,用于响应所述Monkey命令,运行所述目标应用;
[0028]执行模块,用于分别将各测试入口作为Monkey的入口,执行针对该测试入口的伪随机事件;
[0029]监测模块,用于在所述针对该测试入口的伪随机事件的执行过程中,监测终端最上层窗口的窗口名与该测试入口对应的窗口名是否匹配;
[0030]控制模块,用于当所述监测模块的监测结果为不匹配时,控制所述执行模块暂停执行所述针对该测试入口的伪随机事件,控制终端将窗口名与该测试入口对应的窗口名匹配的窗口设置为最上层窗口,并控制所述执行模块继续执行所述针对该测试入口的伪随机事件;
[0031]确定模块,用于当所述目标应用的至少两个测试入口均测试完成,且伪随机事件的执行总数达到所述预设的伪随机事件总数,确定所述目标应用测试完成。
[0032]其中,所述执行模块,具体用于通过以下步骤实现将各测试入口作为Monkey的入口,并执行所述针对该测试入口的伪随机事件:
[0033]步骤Al、将任一未测试的测试入口作为Monkey的入口,并执行针对该测试入口的伪随机事件;
[0034]步骤B1、当针对该测试入口的伪随机事件的执行数量达到预设的针对该测试入口的伪随机事件数量时,判断是否存在未测试的测试入口,若判断为是,转至步骤Al ;否则,确定所述目标应用的至少两个测试入口均测试完成。
[0035]其中,所述执行模块,具体用于通过以下步骤实现将各测试入口作为Monkey的入口,并执行所述针对该测试入口的伪随机事件:
[0036]步骤A2、按照预先设定的测试顺序,将为测试的测试入口中测试顺序最优的测试入口作为Monkey的入口,执行针对该测试入口的伪随机事件;
[0037]步骤B2、当针对该测试入口的伪随机事件的执行数量达到所述预设的针对该测试入口的伪随机事件数量时,判断是否存在未测试的测试入口,若判断为是,转至步骤A2 ;否则,确定所述目标应用的至少两个测试入口均测试完成。
[0038]其中,所述执行模块,还用于当所述监测模块的监测结果为匹配,且针对该测试入口的伪随机事件的执行数量达到所述预设的针对该测试入口的伪随机事件数量时,确定该测试入口测试完成。
[0039]其中,所述控制模块,具体用于通过以下方式实现控制终端将窗口名与该测试入口对应的窗口名匹配的窗口设置为最上层窗口:
[0040]当所述终端最上层窗口为桌面窗口时,判断终端是否打开了与该测试入口对应的窗口名匹配的窗口;
[0041]若判断为是,将所述窗口名与该测试入口对应的窗口名匹配的窗口最大化;
[0042]否则,控制终端运行所述目标应用,并控制所述目标应用进入该测试入口 ;
[0043]当所述终端最上层窗口为该目标应用对应的窗口,控制该目标应用进入该测试入
□O
[0044]相应地,本发明实施例还提供了一种终端,包括上述基于Monkey命令的应用测试
目.ο
[0045]实施本发明实施例,具有如下有益效果:
[0046]当接收到针对目标应用的Monkey命令时,响应该Monkey命令,运行该目标应用,并分别将Monkey命令中包括的各测试入口作为Monkey的入口,执行针对该测试入口的伪随机事件,在针对该测试入口的伪随机事件的执行过程中,监测终端最上层窗口的窗口名与该测试入口对应的窗口名是否匹配,若不匹配,则暂停执行针对该测试入口的伪随机事件,控制终端将窗口名与该测试入口对应的窗口名匹配的窗口设置为最上层窗口,并继续执行针对该测试入口的伪随机事件,当目标应用的所有测试入口均测试完成,且伪随机事件的执行总数达到预设的伪随机事件总数,确定该目标应用测试完成,由于预先设定了至少两个测试入口,并分别设定针对各测试入口的伪随机事件数量,因而,可以避免所有伪随机事件仅以单一的测试入口(即目标应用的功能选项)为Monkey的入口,保证了针对目标应用的测试覆盖更加全面;同时,由于在执行针对各测试入口的伪随机事件的过程中,会监测该终端最上层窗口是否与该测试入口对应的窗口名匹配,因而,能够保证针对该测试入口的伪随机事件的执行是在与该测试入口对应的窗口中执行的,保证了基于Monkey命令的应用测试中的有效测试,提高了应用测试的有效性。
【附图说明】
[0047]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0048]图1是本发明实施例提供的一种基于Monkey命令的应用测试方法的流程示意图;
[0049]图2是本发明实施例提供的另一种基于Monkey命令的应用测试方法的流程示意图;
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1