Monkey
是
Android
自带的一个命令行工具。
Monkey可以运行在模拟器或真实设备上,并产生一系列随机的用户事件(点击、触摸、手势以及系统级别的事件)。
Monkey一般用来进行压力
测试或稳定性测试。
#adb
shell
#monkey --help
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]
[--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]
COUNT
常用参数解释:
-p 后面跟要覆盖测试的包名。可以有多个-p,每个-p后跟一个包名
-s 后面跟整数,相同的seed值表示产生的随机事件流
-v 可以有多个,个数越多,产生的log越详细,eg:2个时,可看到activity加载的时间
--gnore-crashes 应用crash时,不停止monkey执行
--pct* 调整各类事件所占的百分比,不常用
--throttle 后面跟毫秒数,表示每个随机事件中间的时间间隔
COUNT 必选参数,表示运行随机事件的个数
举例:monkey -p com.xx.xx -v --throttle 300 9000
ps
Monkey监控并特殊处理的3个事件:
1、如果指定测试包时,限制测试在指定的包中;
2、如果应用crash或存在未捕获的异常,monkey停止并报告错误;
3、如果应用产生ANR(
application not responding)错误,monkey停止并报告错误。
产生ANR的两个条件:
1、线程响应超过5s;
2、HandleMessage回调函数超过10s