简介

Monkey测试是一个APP的压力测试工具

特性

  • 测试的对象仅为应用程序包
  • 测试使用的事件流数据是随机的,不能自定义
  • 可对MonkeyTest的对象、事件数量、类型、频率进行设置

用法

基本语法
$adb shell monkey [options]

不指定options的情况下,Monkey以无反馈模式启动,并把事件任意发送到安装在目标环境中的全部包。

示例:
$adb shell monkey -p your.package.name -v number
-v 测试的次数和频率

完整的测试命令:

$adb shell
#monkey -p 包名 --kill-process-after-error -v -v -v --throttle 500 500000 > /mnt/sdcard/monkeyevent.log 2>&1 &

更多参数

常规

选项

说明

–help

使用帮助

-v

每增加一个-v将增加反馈信息的级别

事件

选项

说明

-s

伪随机数生成器的seed值

–throttle

在事件之间插入固定延迟,可以减缓Monkey执行速度

–pct-touch

调整触摸事件的百分比

–pct-motion

调整动作只手的百分比

–pct-trackball

调整轨迹事件的百分比

–pct-nav

调整“基本”导航事件的百分比

–pct-majornav

调整“主要”导航事件的百分比

–pct-syskeys

调整“系统”按键事件的百分比

–pct-appswitch

调整启动Activity的百分比

–pct-anyevent

调整其它类型事件的百分比

–p

如果此参数指定了一个或几个包,Monkey将只允许系统启动这些包里的Activity

–c

如果用此参数指定了一个或几个类别,Monkey将只允许系统启动 些类别中的某个类别列出的Activity。如果不指定任何类别,Monkey将选择下列类别中列出的Acitivy:Intent.CATEGORY_LAUNCHER或Intent.CATEGORY_MONKEY。要指定多个类别,需要使用多个-c选项,每个-c选项只能用于一个类别。

调试

选项

说明

–dbg-no-events

设置此选项,Monkey将执行初始启动,进入到一个测试Activity,然后不会再进一步生成事件。为了得到取佳结果,把它与-v、一个或几个包约束、以及一个保持Monkey运行30秒或更长时间的非零值联合起来,从而提供一个环境,可以监视应用程序所调用的包之间的转换。

–hprof

设置此选项,将在Monkey事件序列之前和之后立即生成profiling报告。这将会在data/misc中生成大文件(~5M)

–ignore-crashes

程序Crash时 Monkey继续执行

–ignore-timeouts

程序无响应地,Monkey继续执行

–ignore-security-exceptions

程序发生许可错误时,Monkey继续执行

–kill-process-after-error

Monkey由于一个错误停止时,通知系统停止发生错误的进程

–monitor-native-crashes

监视并报告Android系统中本地代码的崩溃事件

–wait-dbg

停止执行的Monkey,直到有调试器和它相连接

操作步骤

1.准备APK

demo.apk

2.安装apk到手机

3.执行命令测试

$adb shell monkey -p packagename -v 1000

测试结果

  • 如果应用程序崩溃或接收以失控异常,Monkey将停止并报错
  • 如果应用程序产生了应用程序不响应的错误,Monkey将会停止并报错
  • 如果设定 –ignore crashes 则程序在崩溃时Monkey不会停止。