1.定义
Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。
2.实质
3.常用命令
连接手机后通过adb shell monkey [option...] COUNTS(测试事件总数)
如果不指定option选项参数,monkey测试将以无反馈的方式进行测试
常用参数:
--throttle 指定monkey测试每两次测试事件间间隔时间,单位是毫秒
例:adb shell monkey --throttle 300 10000 即进行10000次事件,每次间隔300毫秒
-v 每增加一次-v,monkey测试报告详细程度越高
例:adb shell monkey -v -v -v 10000
-s < seed> 伪随机数生成器的种子值。如果你用相同的种子值重新运行Monkey,它将生成相同的事件序列。
例:adb shell monkey -s 1123表示重现种子值为1123的事件序列。
-pct-touch< percent> 表示调整触摸事件的百分比(触摸事件是屏幕上单个位置的down-up事件)。
例:adb shell monkey -pct-touch 67 -v 10表示执行10个伪随机用户事件流,并调整其中触摸事件的百分比为67%。
-pct-motion < percent> 表示调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随机事件和一个up事件组成)。
例:adb shell monkey -pct-motion 67 -v 10 表示执行10个伪随机用户事件流,并调整其中动作事件的百分比为67%。
注:这里的移动是直线滑动,下面的trackball移动包含曲线移动。
-pct-trackball < percent> 表示调整轨迹球事件的百分比(轨迹球事件由一个或多个随机移动组成,有时还伴随有点击)。
例:adb shell monkey -pct-trackball 67 -v 10表示执行10个伪随机用户事件流,并调整其中轨迹球事件的百分比为67%。
-p < allowed-package-name> 表示如果用此参数指定了一个或几个包,Monkey将只允许系统启动这些包里的Activity。如果你的应用程序还需要访问其它包里的Activity(如选择取一个联系人),那些包也需要在此同时指定。如果不指定任何包,Monkey将允许系统启动全部包里的Activity。要指定多个包,需要使用多个 -p选项,每个-p选项只能用于一个包。
例:adb shell monkey -p com.jzf.simple1 -p com.jzf.simple2 100 表示对包“com.jzf.simple1”和“com.jzf.simple2”执行100个伪随机用户事件流。
-c < main-category> 表示如果用此参数指定了一个或几个类别,Monkey将只允许系统启动这些指定类别中列出的Activity。如果不指定任何类别,Monkey将选 择下列类别中列出的Activity: Intent.CATEGORY_LAUNCHER或Intent.CATEGORY_MONKEY。要指定多个类别,需要使用多个-c选项,每个-c选 项只能用于一个类别。
-ignore-crashes 表示当应用程序崩溃或遇到任何类型的未处理的异常时,Monkey将停止。如果指定此选项,则Monkey将继续向系统发送事件,直到计数完成。
-ignore-timeouts 表示当应用程序遇到任何类型的超时错误(如“应用程序无响应”对话框)时,Monkey将停止。如果指定此选项,则Monkey将继续向系统发送事件,直到计数完成。
-ignore-security-exceptions 表示当应用程序遇到任何类型的权限错误时,Monkey将停止,例如,如果它尝试启动需要某些权限的活动。如果指定此选项,则Monkey将继续向系统发送事件,直到计数完成。
-kill-process-after-error 当Monkey由于一个错误而停止时,出错的应用程序将继续处于运行状态。当设置了此选项时,将会通知系统停止发生错误的进程。注意,正常的(成功的)结束,并没有停止启动的进程,设备只是在结束事件之后,简单地保持在最后的状态。
-monitor-native-crashes 表示Android系统原生代码中的监视和报告崩溃。如果设置了-kill-process-after-error,系统将停止。
-wait-dbg 表示停止执行中的Monkey,直到有调试器和它相连接。
adb shell -p com.jzf.simple -v -v -v 100 > monkey.txt 表示日志保存在系统目录的monkey.txt文件下
adb devices 查看设备是否连接成功,如果有手机串号说明连接成功。
adb shell pm list packages表示查看手机内所有的包名。
4.常用测试方式:
adb shell monkey --throttle 300 -v -v -v 100000>monkey.txt