源地址:http://developer.android.com/tools/help/monkey.html
monkey 是一个可以在模拟器上或真机上产生伪随机事件流(如点击、触摸、手势等,甚至一定数量的系统级别上的事件),你可以以一种随机但是可重复的方式用monkey来用来做application的压力测试。
Overview
monkey 是一行能产生随机事件的命令,常用来作产品的压力测试。
Monkey 包含了一些选项,分为以下四组策略:
- 基本的配置选项,如设定产生随机事件的数目
- 操作约束,如约束针对单一包的测试
- 事件的类型与频率
- 调试选项
Monkey 在运行过程中检测以下几种情况
- 如果设置了针对单一或特定包的约束,Monkey机制将观测对于其他包的操作,然后拦截该行为
- 应用崩溃或接收到任意类型的unhandled exception,Monkey停止并报告错误
- 如果应用程序产生了一个不会针对error进行报告的程式,Monkey停止并报告错误
Basic Use of the Monkey
你可以通过在开发机上的命令行或者一行脚本来启动Monkey。由于Monkey需要运行在模拟器或真机上,你必须在shell环境中启动它。你需要用
adb shell
来作为前缀来启动Monkey 命令,或者进入到shell环境中,直接使用Mokey命令。
基本语法格式为:
$ adb shell monkey [options] <event-count>
如果没有【option】,则Monkey将按照默认的方式启动,即对于安装在Android机的所有样本发送随机事件;下面这条命令将会更加典型,这条命令将会启动应用并发送5000个随机事件。
$ adb shell monkey -p your.package.name -v 5000
Command Options Reference
策略 | 描述 | |
一般 | --help:打印出简单的用户手册 -v:每一个-v都将会增加详细层次。层次0为默认情况,除了提供开始通知、测试完成以及测试最后结果之外几乎不提供其他信息;层次1在应用运行时提供更多的信息,如发送到Activity的个别事件;层次2提供更多的setuo信息,如选择或者不选择Activity来进行测试 | |
事件 | -s <seed>:发送值对随机事件产生,当重复输入该值时,将产生与前一次相同的事件序列 --throttle <milliseconds> :在每一个事件之间插入一个设定的延迟时间,如果不甚至的话,随机事件将尽可能快的发送 --pct-touch <percent>:调整 touch 事件的百分比(touch事件为屏幕上一区域上下的事件 --pct-motion <percent>:调整 motion 事件的百分比 --pct-trackball <percent>:调整 trackball 事件的百分比 --pct-nav <percent>:调整基本操作的百分比 --pct-majornav <percent>:调整主要操作的百分比 --pct-syskeys <percent>:调整系统上按键操作的百分比 --pct-appswitch <percent>:调整Activity启动的百分比 --pct-anyevent <percent>:调整其它事件的百分比 | |
约束 | -p <allowed-package-name> :如果你只是针对一个或几个特定的包,需要用 -p 来设置,每一个 -p设置一个包,设置之后,将只会针对这些包的Activity发送事件。如果不指定 -p,将会对所有包进行发送事件。 -c <main-category> :如果你限制了策略,则Monkey在访问Activity时将会针对指定的策略进行访问,每一个-c 限制一个策略。 | |
调试 | --dbg-no-events :当设定后,Monkey只会进行初始的启动而不会产生随机的发送事件,可以与 -v 命令结合使用,针对一个或多个包进行约束,无条件地让Monkey运行30秒以上,这样为通过调用应用使得包的转换提供了条件 --hprof:设定后,MOnkey 会立即(before Or after 随机事件)产生一分分析报告,会在/data/misc产生文件,针对跟踪文件,可以查看Traceview --ignore-crashes:在正常情况下,当应用程序崩溃时,Monkey机制会停止;不过设定这个命令后,会一直发送完事件后才完成 --ignore-timeouts:忽略时延 --ignore-security-exceptions:忽略安全权限的限制意外 --kill-process-after-error:正常情况下,当Monkey因出错而退出后,应用程序依然在运行;当设定后,会向系统发送信号终止该应用程序的运行。 --monitor-native-crashes :监测并记录本机故障 --wait-dbg:当一个断点到来时,停止Monkey |