Monkey 简介
- Monkey 文档
- Monkey 源码
- Monkey 是一个命令行工具,可以运行在 Android 模拟器里或真实设备中。它可以向系统发送
伪随机(pseudo-random)
的用户事件流(如按键输入、触摸屏输入、手势输入等),可以对待测的目标应用或整个 Android 系统进行压力测试。 - 基本用法:
$ adb shell monkey [ options ] < event - count >
如果不指定 options
,即执行类似命令 adb shell monkey 1000
,那么将会对整个 Android 系统所有 package发送事件流来进行Monkey压力测试。
这是一个典型的对指定package进行monkey测试的例子,发送的事件流是500:
1. adb shell monkey -p packagename 500
Monkey 命令选项
- 常用选项及参数说明
-p 允许的包名列表,可同时指定多个包名,每个包都需要使用“-p”参数指定
—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 事件数目
Monkey黑白名单(跑多个apk)
黑名单:执行除了黑名单中以外的apk;白名单:只执行在白名单中的apk
黑名单的设置方法: a.创建一个名称为blacklist的txt文档,在文件中输入应用程序的包名,如mms应用,则在文件中输入com.Android.mms;如果有多个应用程序不想被执行,则在文件中添加多个包名,注意包名与包名之间均用回车键。 b.将blacklist.txt的文件导入到手机的/data目录下,然后在执行monkey测试的时候使用–pkg-blacklist-file参数再加上blacklist文件的存储路径,其他的参数设置则和测试单一apk没有区别。 白名单的设置方法: 白名单的设置方法和黑名单的设置方法基本一致,只是在创建txt文档的时候,文件的命令应为whitelist。在执行monkey的时候,只执行白名单中的应用。
停止Monkey程序
windows 下使用
findstr
,linux/mac 下用grep
执行
adb shell ps | findstr monkey
获取到
monkey
进程的pid
(返回的第一个数字就是pid
) 之后运行adb shell kill
进程ID重启手机
执行
adb reboot
Monkey 日志导出
a)保存在pc中 adb shell monkey [option] >d:\monkey.txt
b)保存在手机中 adb shell “monkey -p com.android.settings 5000 > sdcard/monkey.log”
c)标准流与错误流分开保存 monkey [option] 1>/mnt/sdcard/monkey.txt 2>/mnt/sdcard/error.txt