每天一个adb命令:monkey命令详解

国际惯例,先用adb shell monkey 看看具体用法。

具体用法

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]
              [--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] ...]
              [--sort-app-list]
              [--throttle MILLISEC] [--randomize-throttle]
              [--profile-wait MILLISEC]
              [--device-sleep-time MILLISEC]
              [--randomize-script]
              [--script-log]
              [--bugreport]
              [--periodic-bugreport]
              [--delay-appswitch MILLISEC]
              [--launch-app-after-launcher
              [--launch-app-after-app MILLISEC PACKAGE_NAME CLASS_NAME]
              COUNT
-p 允许的包名列表,可同时指定多个包名,每个包都需要使用“-p”参数指定。指定多个包:
adb shell monkey -p package_1  –p package_2  100
--ignore-crashes 忽视应用 crash 报错,不指定该参数时,应用出现 crash,monkey 会自动停止发送事件,指定该参数后,monkey 会在 crash 后也一直发送事件,直到所有事件发送完成。
--ignore-timeouts 忽视超时导致的错误,即ANR的错误
-s 用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的,方便用于重现 bug。如:
adb shell monkey -p package_name –s 10 100
-v 设定输出信息的详细级别,1-v 表示级别为12-v 表示级别为2
Level 0  :  adb shell monkey -p package_name -v 100               // 缺省值,仅提供启动提示、测试完成和最终结果等少量信息   
Level 1  :  adb shell monkey -p package_name -v  -v 100          // 提供较为详细的日志,包括每个发送到Activity的事件信息
Level 2  :  adb shell monkey -p package_name -v  -v  -v 100     // 最详细的日志,包括了测试中选中/未选中的Activity信息
--throttle 设定事件之间的延时,单位为毫秒,如:
adb shell monkey -p package_name --throttle 3000 100
延迟3s执行。

日志分析

正常情况,如果Monkey测试顺利执行完成,在log的最后会打印出当前执行事件的次数和所花费的时间;// Monkey finished 代表执行完成

异常情况:
查阅Monkey的输出日志
1. 程序无响应的问题: 在日志中搜索 “ANR”
2. 崩溃问题:在日志中搜索 “Exception”
3. 如果有空指针,搜索“NullPointerException”
4. 如果Monkey执行中断,在log最后也能看到当前执行次数

你可能感兴趣的:(adb)