Monkey是一个命令行工具,可以运行在Android模拟器里或真实设备中。它可以向系统发送伪随机(pseudo-random)的用户事件流(如按键输入、触摸屏输入、手势输入等),可以对待测的目标应用或整个Android系统进行压力测试。因此Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。
基本语法:$ adb shell monkey [options] <event-count>
如果不指定options,即类似于使用命令adb shell monkey 1000,那么将会对整个系统中安装的package发送事件流,换种说法就是对整个Android系统进行Monkey压力测试
下面是一个对指定应用(Android自带的系统设置应用)进行Monkey测试的例子,发送的事件流数目为1000:
adb shell -p com.android.settings 1000
Monkey 命令选项
adb shell monkey
常用选项及参数说明
-p允许的包名列表,可同时指定多个包名,每个包都需要使用“-p”参数指定。包名的获取,可参考python脚本get_package_name.py
–ignore-crashes忽视应用crash报错,不指定该参数时,应用出现crash,monkey会自动停止发送事件,指定该参数后,mongkey会在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事件数目