什么是Monkey?
Monkey是我们在Android平台常用的一种压力测试方法,通过Monkey可模拟用户触摸,按键,滑动操作,常用于测试程序的稳定性。
monkey是一个shell脚本,存放于:/system/bin/monkey
使用如下命令: adb shell cat /system/bin/monkey 可以查看具体内容
1 | lcg@lcg-work-pc:~$ adb shell cat /system/bin/monkey |
从上面内容可以看到,执行的时:/system/framework/monkey.jar 中内容.
Monkey命令
查看帮助:1
adb shell monkey -help
1 | lcg@lcg-work-pc:~$ adb shell monkey -help |
-p: 用于指定一个或者多个包,Monkey将只允许系统去访问这些包的activitys,如果应用需要访问其他包的activitys,连同这些包也一起指定在内.如果不指定任何包,Monkey默认可启动任何包的activitys.指定多个包,需要多次使用-p参数,一个-p参数对应一个包名,示例如下:
adb shell monkey -p com.android.monkeytest1 -p com.android.monkeytest2
-c: 用于指定一个或多个categories,Monkey将只能访问指定categories的activitys;如果未指定任何categories,将默认访问带有 Intent.CATEGORY_LAUNCHER 或 Intent.CATEGORY_MONKEY的activitys.指定多个categories的使用上与-p一致,一个参数对应一个categorie.
[–ignore-crashes]: Monkey运行时忽略程序Crash或者异常信息未捕获,直到达到指定执行次数
[–ignore-security-exceptions]: Monkey运行时忽略程序权限访问异常,直到达到指定执行次数
[–monitor-native-crashes]: 观察并上报Android system native code异常
[–kill-process-after-error]: 终止出现错误的进程
[–pct-touch PERCENT]: 调整touch事件(down-up event)比例
[–pct-trackball PERCENT]: 调整trackball事件(trackball事件:包含一个或多个随机动作,有时发生在点击事件之后)比例
[–pct-nav PERCENT]: 调整”basic” navigation事件比例. (Navigation事件即: 从可输入方向设备输入包含上/下/左/右方向事件.)
[–pct-appswitch PERCENT]: Monkey会在随机间隔时间,通过调用startActivity()来保证最大化覆盖包内所有activitys
[–pct-anyevent PERCENT]: 调整所有其他类型事件的比例,包括按键事件,其他在设备上很少使用的按钮等等
[–pct-permission PERCENT]:
[–pkg-blacklist-file PACKAGE_BLACKLIST_FILE]: 执行黑名单以外的应用
[–pkg-whitelist-file PACKAGE_WHITELIST_FILE]: 执行白名单以外的应用
[–wait-dbg]: 停止执行中的Monkey,直到有调试器和它相连接
[–setup scriptfile]: 执行按照一定的语法规则编写有序的用户事件流并适用于monkey命令工具的脚本。
[–port port]: 为monkey开启专用端口
[-s SEED]: 随机数生成器的seed值。如果使用相同的seed值再次运行monkey,它将生成相同的事件序列
[–throttle MILLISEC]: 设置每一次有效执行事件后休眠时间
[–profile-wait MILLISEC]:
[–device-sleep-time MILLISEC]: 设备休眠时间
[–randomize-script]: monkey脚本内容随机执行
[–script-log]: 输出monkey脚本log
[–bugreport]: 设置Monkey运行时自动记录发生crash,anr,system not responding的错误信息。
[–periodic-bugreport]:
[–permission-target-system]:
[COUNT]: Monkey执行次数