在Android的官方自动化测试领域有一只非常著名的“猴子”叫Monkey,这只“猴子”一旦启动,就会让被测的Android应用程序像猴子一样活蹦乱跳,到处乱跑。人们常用这只“猴子”来对被测程序进行压力测试,检查和评估被测程序的稳定性。
Android官方对这只“猴子”的描述是这样的:
The Monkey is a program that runs on your emulator or device and generates pseudo-random streams of user events such as clicks, touches, or gestures, as well as a number of system-level events. You can use the Monkey to stress-test applications that you are developing, in a random yet repeatable manner.
Monkey是一个程序,运行在您的模拟器或设备上,并生成伪随机的用户事件流,如点击,触摸或手势,以及一些系统级事件。 您可以使用Monkey以随机但可重复的方式对您正在开发的应用程序进行压力测试。
monkey官方文档:http://www.android-doc.com/tools/help/monkey.html
Moneky 路径Monkey程序是Android系统自带的,其启动脚本是位于Android系统的/system/bin目录的Monkey文件,其jar包是位于Android系统的/system/framework目录的Monkey.jar文件。用户主要是通过adb命令来启动Monkey的,Monkey在运行时,会根据命令行参数的配置,生成伪随机的事件流,并在Android设备上执行对应的测试事件。同时,Monkey还会对测试系统进行监测,当出现以下三种情况时会进行特殊处理:
- 如限定了Monkey运行在特定包上,当监测到试图转到其他包的操作,将对其进行阻止。
- 如应用程序崩溃或接收到任何失控异常,Monkey将记录对应的错误日志,并根据命令行参数判断是停止运行还是继续运行。
- 如果应用程序发生了程序无响应(application not responding)的错误,Monkey将记录对应的错误日志,并根据命令行参数判断是停止运行还是继续运行。
- 按照选定的不同级别的反馈信息,在Monkey中还可以看到其执行过程报告和生成的事件。
- 连接移动设备
- 连接成功后输入命令
adb shell
- 进入到指定目录
cd /system/bin
- 输入 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] ...]**
**[--throttle MILLISEC]** **[--randomize-throttle]**
**[--profile-wait MILLISEC]**
**[--device-sleep-time MILLISEC]**
**[--randomize-script]**
**[--script-log]**
**[--bugreport]**
**[--periodic-bugreport]**
COUNT
强制关闭monkey
- adb shell ps 查看全部在运行的进程
- 查找出com.android.commands.monkey 进程PID
- adb shell kill pid 杀掉monkey进程
monkey命令格式如下:
$ adb shell monkey [options] <event-count>
-
[options]
是指monkey可传入的参数,是可选项(如果不指定options,Monkey将以无反馈模式启动,并把事件任意发送到安装在目标环境中的全部包) -
<event-count>
是指随机发送事件数。如:输入100就是执行100个伪随机事件,为必选项。