monkey命令

什么是Monkey?

Monkey是我们在Android平台常用的一种压力测试方法,通过Monkey可模拟用户触摸,按键,滑动操作,常用于测试程序的稳定性。

monkey是一个shell脚本,存放于:/system/bin/monkey
使用如下命令: adb shell cat /system/bin/monkey 可以查看具体内容

1
2
3
4
5
6
7
8
9
10
lcg@lcg-work-pc:~$ adb shell cat /system/bin/monkey
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
# Script to start "monkey" on the device, which has a very rudimentary
# shell.
#
base=/system
export CLASSPATH=$base/framework/monkey.jar
trap "" HUP
exec app_process $base/bin com.android.commands.monkey.Monkey $*

从上面内容可以看到,执行的时:/system/framework/monkey.jar 中内容.

Monkey命令

查看帮助:

1
adb shell monkey -help

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
lcg@lcg-work-pc:~$ adb shell monkey -help
usage: monkey [-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] ...]
[-c MAIN_CATEGORY [-c MAIN_CATEGORY] ...]
[--ignore-crashes] [--ignore-timeouts]
[--ignore-security-exceptions]
[--monitor-native-crashes] [--ignore-native-crashes]
[--kill-process-after-error] [--hprof]
[--pct-touch PERCENT] [--pct-motion PERCENT]
[--pct-trackball PERCENT] [--pct-syskeys PERCENT]
[--pct-nav PERCENT] [--pct-majornav PERCENT]
[--pct-appswitch PERCENT] [--pct-flip PERCENT]
[--pct-anyevent PERCENT] [--pct-pinchzoom PERCENT]
[--pct-permission PERCENT]
[--pkg-blacklist-file PACKAGE_BLACKLIST_FILE]
[--pkg-whitelist-file PACKAGE_WHITELIST_FILE]
[--wait-dbg] [--dbg-no-events]
[--setup scriptfile] [-f scriptfile [-f scriptfile] ...]
[--port port]
[-s SEED] [-v [-v] ...]
[--throttle MILLISEC] [--randomize-throttle]
[--profile-wait MILLISEC]
[--device-sleep-time MILLISEC]
[--randomize-script]
[--script-log]
[--bugreport]
[--periodic-bugreport]
[--permission-target-system]
COUNT

-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执行次数

参考自:https://developer.android.com/studio/test/monkey.html

热评文章