Android Monkey的使用

转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/71750907
本文出自【赵彦军的博客】shell

什么是 Monkey

Monkey 是一个 Android 自动化测试小工具。主要用于Android 的压力测试, 主要目的就是为了测试app 是否会Crash.微信

Monkey 特色

顾名思义,Monkey就是猴子, Monkey测试,就像一只猴子, 在电脑面前,乱敲键盘在测试。 猴子什么都不懂, 只知道乱敲。经过Monkey程序模拟用户触摸屏幕、滑动Trackball、 按键等操做来对设备上的程序进行压力测试,检测程序多久的时间会发生异常。架构

Monkey程序介绍

Monkey 程序是由 Android 系统自带,使用 Java 语言写成。在Android文件系统中的存放路径是: /system/framework/monkey.jar;app

Monkey.jar程序是由一个名为“monkey”的Shell脚原本启动执行,shell脚本在Android文件系统中 的存放路径是:/system/bin/monkey;dom

Monkey 启动方式:在 cmd 命令提示符里面输入命令行来启动 monkey 测试。工具

Monkey 架构

Monkey 运行在设备或模拟器上面,能够脱离PC运行(广泛作法是将monkey做为一个像待测应用发送 随机按键消息的测试工具。验证待测应用在这些随机性的输入面前是否会闪退或者崩溃)测试

这里写图片描述

Monkey 参数大全

这里写图片描述

Monkey 命令基本参数介绍

一、容许启动手机里面全部的 App , 随机操做 1000 次

adb shell monkey 1000.net

二、-p : 容许启动 App 的包名

  • 启动一个包名的应用

QQ 的包名为: com.tencent.mobileqq命令行

adb shell monkey -p com.tencent.mobileqq 1000调试

随机操做 手机 QQ 1000 次

  • 启动指定的多个 App

微信的包名为:com.tencent.mm

adb shell monkey -p com.tencent.mobileqq -p com.tencent.mm 1000

随机操做 手机 QQ 和 微信 1000 次

三、-v : 操做日志记录

命令行的每个-v将增长反馈信息的级别。

  • -v:Level 0(缺省值)除 启动提示、测试完成和最终结果以外,提供较少信息。
  • -v -v :Level 1提供较为详细的测试信息,如逐个发送到Activity的 事件。
  • -v -v -v :Level 2提供更加详细的设置信息,如测试中被选中的或未被选中的Activity。

adb shell monkey -p com.tencent.mobileqq -v -v -v 100

四、-s : 伪随机数生成器的seed值

若是用相同的seed值再次运行monkey,将生成相同的事件序列。

adb shell monkey -s 12345 -v 10

五、--ignore-crashes : 忽略操做是崩溃异常

一般,应用发生崩溃或异常时Monkey会中止运行。若是设置此项,Monkey将继续发送事件给系统,直到事件计数完成。

adb shell monkey --ignore-crashes -v 1000

六、--ignore-timeouts : 忽略超时

一般,应用程序发生任何超时错误(如“Application Not responding”对话框)Monkey将中止运行,设置此项,Monkey将继续发送事件给系统,直到事件计数完成。

adb shell monkey --ignore-timeouts -v 1000

七、--ignore-security-exceptions : 忽略程序发生许可异常

一般,当程序发生许可错误(例如启动一些须要许可的Activity)致使的异常时,Monkey将中止运行。设置此项,Monkey将继续发送事件给系统,直到事件计数完成。

adb shell monkey --ignore-security-exceptions -v 1000

八、--throttle : 插入固定延迟

在事件之间插入固定延迟。经过这个选项能够减缓Monkey的执行速度。若是不指定该选项,Monkey将不会被延迟,事件将尽量快地被执行。

adb shell monkey --throttle 500 -v 500

随机执行 500 个事件,每一个事件之间延迟 500 毫秒被执行。

九、--help : 列出简单的用法

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]
              [--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]
              COUNT

Monkey 异常处理

一、调试设备找不到

error: no devices/emulators found

这里写图片描述

解决方案: 打开开发者选项,打开 USB 调试