Monkey高级应用
作者:reader1   类别:Java开发    日期:2019-09-28 12:14:38    阅读:367 次   消耗积分:0 分


本次分享《Monkey测试工具应用》实验中的Monkey高级应用,回顾本章节的前期分享,请点击

教材连载:Monkey基础应用


上述的Monkey测试是无法应用在实际测试中的,因为有太多的问题。比如它是针对整个操作系统,而没有锁定某个被测应用,同时日志输出不够详细,不便于分析判断。


当然,这些问题Monkey都已经帮我们想到了,并提供了足够多的参数选项帮助我们解决。先来看看一些常见的Monkey参数选项:

(1) adb shell monkey -p pkgname:只是对指定包名(pkgname)进行测试。

(2) adb shell monkey --throttle milliseconds:指定事件之间的间隔时间,单位是毫秒。

(3) adb shell monkey -s seed: 伪随机数生成器的seed 值,如果用相同的 seed 值再次运行 Monkey ,它将生成相同的事件序列。

(4) adb shell monkey -v [-v –v]:指定日志级别。

(5) adb shell monkey --pct-touch:指定触摸事件的百分比percent。

(6) adb shell monkey --pct-motion:指定动作事件的百分比percent。

(7) adb shell monkey --pct-trackball:指定轨迹球事件百分比percent。

(8) adb shell monkey --pct-nav:指定基本导航事件百分比percent。

(9) adb shell monkey --pct-majornav:设定主要导航事件百分比percent,兼容中间键,返回键,菜单按键。

(10) adb shell monkey --pct-syskeys:设定系统事件百分比percent,比如HOME,BACK,拨号及音量调节等事件。

(11) adb shell monkey --pct-appswitch:设定启动不同应用程序的事件百分比percent。

(12) adb shell monkey --pct-anyevent:设定不常用事件的百分比。

(13) adb shell monkey --ignore-crashes:忽略崩溃和异常事件。

(14) adb shell monkey --ignore-timeouts:忽略超时事件。

(15) adb shell monkey --pkg-blacklist-file:设置不需要进行测试的黑名单应用。

(16) adb shell monkey --pkg-whitelist-file:设置需要进行测试的白名单应用。



下面就一起来看看上述选项中的一些具体的使用方法。


1.通过指定包名来限定测试范围


是指只对指定的包名运行Monkey测试,这样就可以避免Monkey测试针对整个操作系统实施随机操作,而将操作锁定在某个指定包名的应用程序中。此处所谓的包名与我们在Java或者Python过程中理解的包名是类似的概念。


一个Android应用程序的开发过程中,也是按照包名+类名来组织源代码的,运行过程也是完全依赖于包名+类名,所以我们可以通过包名实现应用程序锁定。这一点与我们在前一章节中用Python开发Monkey测试脚本时指定窗口名称结合窗口大小区域进行限制是一样的道理。

比如,我们如果需要针对“一笔记账”进行Monkey测试,那么我们就需要知道“一笔记账”所在的包名。

那么如何查看应用程序的包名称呢?

通常我们使用aapt.exe应用程序即可完成查看。


该应用程序在Android SDK的build-tools目录或者夜神模拟器的bin目录下均可以找到该应用程序。然后合作如下命令形式完成查询“aapt dump badging filename.apk”,整个过程如下图所示。

 

图片1.png


从上图我们可以得知,“一笔记账”应用程序的主包名为“com.mobivans.onestrokecharge”,然后我们就可以通过指定这个包名来限制Moneky测试只能够针对当前的“一笔记账”进行测试而不会影响到其它操作系统里面的应用程序了。


另外,通过aapt命令我们还可以获取到应用程序的主类名(即可执行的Activity名),在aapt的上述输出中,仔细寻找“launchable-activity”,对应的值即是可执行的Activity,后续的测试我们将会使用到该值。读者朋友可以通过如下命令进行简单测试:

adb shell monkey -p com.mobivans.onestrokecharge 5000



上述命令表示针对“一笔记账”这个应用程序,运行5000次随机测试。在真实的Monkey测试过程中,建议将运行次数设置得更大一些,否则可能很难直接达到我们的可靠性测试目的。因为在这5000次运行过程中,有很多可能的事件,不一定会对程序的操作产品影响,比如滑动,比如切换等事件。


上述命令运行过程中,如果没有出现系统性异常,可能的正常输出如下图所示。

图片2.png


我们再一次对“一笔记账”进行了测试,结果运行过程便出现了异常,应用程序崩溃了,说明Monkey测试起到了一定的作用。如下图所示。


图片3.png


同时,在Monkey窗口中,也显示了不一样的日志输出,明确告知系统“CRASH”,即崩溃。整个日志出来容器如图所示。

图片4.png


但是,我们从上述的日志中,虽然知道了应用程序崩溃的事实结果,但是并不知道是什么原因,什么样的操作导致的崩溃。其原因是因为我们的日志级别设置得太低,运行过程中并没有为我们显示更详细的,有价值的日志信息,不方便我们对结果进行分析处理。


2.通过指定日志级别来获取详细结果


版权所有,转载本站文章请注明出处:蜗牛笔记, http://www.woniunote.com/article/112
上一篇:Monkey基础应用
下一篇:Monkey结果分析
${comment['nickname']}   ${comment['createtime']}
  
       
${comment.content}
${reply.nickname} 回复 ${comment.nickname}    ${reply.createtime}
     
  
回复内容:${reply.content}