综述
Monkey是一个命令行工具,它可以运行在我们的模拟器或者设备当中。它可以发送一些伪随机(pseudo-random)的用户事件流,例如点击,触摸,手势等。我们能够使用Monkey工具来对我们所开发的应用进行压力测试。Monkey测试是一种为了测试软件的稳定性,健壮性的快速有效的方法。
Monkey程序介绍
Monkey是Android自带的系统工具,是由Java语言编写。他在Android文件系统存放的路径是:/system/framework/monkey.jar
启动moneky.jar的shell脚本文件在Android文件系统存放的路径为:/system/bin/monkey。打开这个monkey文件我们可以看一下这个脚本文件很简单。
# 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 $*
我们可以看到他调用的是com.android.commands.monkey.Monkey包。
Monkey常用命令
下面我们就来执行这个monkey脚本。我们执行如下命令。
adb shell monkey
这时候,monkey将以无反馈模式进行启动,并把事件任意发送到安装在目标环境下中的全部包。运行结果如下所示。
LiJiangdongdeMacBook-Pro:~ lijiangdong$ 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] ...] [--throttle MILLISEC] [--randomize-throttle] [--profile-wait MILLISEC] [--device-sleep-time MILLISEC] [--randomize-script] [--script-log] [--bugreport] [--periodic-bugreport] COUNT |
这时候可以看到monkey并没有运行起来,只是显示了usage,这是因为少了一个重要的参数,这是指发送的事件数。如果我们需要发送500个随机事件,执行如下命令。
adb shell monkey 500
这时候我们可以看到手机已经疯狂的运行起来了。moneky的基本语法为
$ adb shell monkey [options] <event-count>
monkey的option操作都是根据具体需求设定的,主要分为常规类,事件类,约束类和调试类。下面就对这些命令进行说明。
一条常用的Monkey命令
adb shell monkey -v -v -v -p [PackageName] --ignore-crashes --ignore-timeouts --ignore-security-exceptions --monitor-native-crashes --ignore-native-crashes --throttle 1000 100000 > monkey.txt
执行这条命令后会在当前文件夹下面生成一个名为monkey.txt的日志文件,我们可以通过搜索exception和ANR来找到monkey测试中所出现的Crash和ANR。