Android Monkey的用法

非淡泊无以明志,非宁静无以致远。这篇文章主要讲述Android Monkey的用法相关的知识,希望能为你提供帮助。
 
Monkey 简介
 
ü  Monkey 是一个命令行工具,可以运行在 android 模拟器里或真实设备中。它可以向系统发送伪随机(pseudo-random)的用户事件流(如按键输入、触摸屏输入、手势输入等),可以对待测的目标应用或整个 Android 系统进行压力测试。因此 Monkey 测试是一种为了测试软件的稳定性、健壮性的快速有效的方法
ü  基本语法:adb shell monkey [options] < event-count>
如果不指定options,即类似于使用命令adb shell monkey 1000,那么将会对整个系统中安装的 package 发送事件流,换种说法就是对整个 Android 系统进行 Monkey 压力测试

如下是对指定应用(第三方应用易测app)进行 Monkey 测试的例子,发送的事件流数目为1000:
【Android Monkey的用法】adb shell monkey -p com.alibaba.easytest 1000
1|root@generic:/ # monkey -p com.alibaba.easytest 1000
monkey -p com.alibaba.easytest 1000
      // activityResuming(com.alibaba.easytest)
      // activityResuming(com.alibaba.easytest)
      // activityResuming(com.alibaba.easytest)
      // activityResuming(com.alibaba.easytest)
Events injected: 1000
## Network stats: elapsed time=40435ms (40435ms mobile, 0ms wifi, 0ms not connected)

 

Android Monkey的用法

文章图片

 
 
Monkey 命令选项
ü  获取选项列表,Android 4.4版本中输入adb shell monkey,会显示选项列表如下:使用getprop获取版本号
Android Monkey的用法

文章图片

 
 
ü  常用选项及参数说明
ü  -p  允许的包名列表,可同时指定多个包名,每个包都需要使用“-p”参数指定。包名的获取,可参考 python 脚本get_package_name.py
ü  —ignore-crashes  忽视应用 crash 报错,不指定该参数时,应用出现 crash,monkey 会自动停止发送事件,指定该参数后,monkey 会在 crash 后也一直发送事件,知道所有事件发送完成
ü  —ignore-timeouts  忽视超时导致的错误,即ANR的错误
ü  —ignore-security-exceptions  忽视权限方面的错误
ü  —monitor-native-crashes  监控由 C/C++ 代码引起的 crash
ü  —ignore-native-crashes  忽视由 C/C++ 代码引起的 crash
ü  —kill-process-after-error  当出现错误后杀掉应用的进程
ü  —hprof  指定该选项后,monkey会在发送事件完成后生成性能报告,报告一般存放于/data/misc目录下,对报告的分析,需要使用Traceview
ü  —pct-touch  设定 touch 事件比例
ü  —pct-motion  设定手势事件比例,例如滑动事件
ü  —pct-trackball  设定跟踪球事件的比例
ü  —pct-syskeys  设定系统按键事件的比例,如 Home、Back、音量+/-等
ü  —pct-nav  设定”基本”导航事件的比例
ü  —pct-majornav  设定”主要”导航事件比例
ü  —pct-appswitch  设定启动 Activity 的事件比例
ü  —pct-pinchzoom  设定缩放事件比例
ü  —pct-anyevent  设定其他事件比例
ü  -s  设定种子数,方便用于重现 bug
ü  -v  设定输出信息的详细级别,1个 -v 表示级别为1,2个 -v 表示级别为2
ü  —throttle  设定事件之间的延时,单位为毫秒
ü  COUNT  事件数目
结束Monkey进程
执行 Monkey 的过程中如果想中途停止 Monkey 程序的运行,需要将 Monkey 的进程杀掉。
ü  windows 下使用findstr,linux/mac 下用grep
ü  执行adb shell ps | findstr monkey
ü  获取到 monkey 进程的 pid 之后运行adb shell kill 进程ID

    推荐阅读