android压力测试命令monkey详解

本文主要介绍了android monkey命令详解,Monkey 就是SDK中附带的一个工具,该工具主要用于进行压力测试

一、Monkey 是什么?

Monkey 就是SDK中附带的一个工具。

二、Monkey 测试的目的?

该工具用于进行压力测试。 然后开发人员结合monkey 打印的日志和系统打印的日志,结合测试中出现的问题。

三、Monkey 测试的特点?

Monkey 测试,所有的事件都是随机产生的,不带任何人的主观性。

四、Monkey 命令详解

1.标准的monkey 命令

[adb shell] monkey [options] , 例如:adb shell monkey -v 500 --------产生500次随机事件,作用在系统中所有activity(其实也不是所有的activity,而是包含 Intent.CATEGORY_LAUNCHER 或Intent.CATEGORY_MONKEY 的activity)。上面只是一个简单的例子,实际情况中通常会有很多的options 选项

2.四大类——常用选项 、 事件选项 、 约束选项 、 调试选项

1)常用选项

代码如下:

--help:打印帮助信息-v:指定打印信息的详细级别,一个 -v增加一个级别 , 默认级别为 0 。

参数: -v

用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,100是事件计数(即让Monkey程序模拟100次随机用户事件)分别对应的参数如下表所示:

日志级别 Level0

示例 adb shellmonkey -p com.htc.Weather –v 100

说明 缺省值,仅提供启动提示、测试完成和最终结果等少量信息

日志级别 Level 1

示例 adb shellmonkey -p com.htc.Weather –v -v 100

说明 提供较为详细的日志,包括每个发送到Activity的事件信息

日志级别 Level 2

示例 adb shellmonkey -p com.htc.Weather –v -v –v 100

说明 最详细的日志,包括了测试中选中/未选中的Activity信息

2)事件选项

代码如下:-s:指定产生随机事件种子值,相同的种子值产生相同的事件序列。如: -s 200

用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。

* 示例:

Monkey测试1:adb shell monkey -p com.htc.Weather –s 10 100

Monkey 测试2:adb shell monkey -p com.htc.Weather–s 10 100

两次测试的效果是相同的,因为模拟的用户操作序列(每次操作按照一定的先后顺序所组成的一系列操作,即一个序列)是一样的。操作序列虽然是随机生成的,但是只要我们指定了相同的Seed值,就可以保证两次测试产生的随机操作序列是完全相同的,所以这个操作序列伪随机的;

--throttle:每个事件结束后的间隔时间——降低系统的压力(如不指定,系统会尽快的发送事件序列)。如:--throttle 100--pct-touch:指定触摸事件的百分比,如:--pct-touch 5%

调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕上的某单一位置)

adb shell monkey -p com.htc.Weather--pct-touch 10 1000

相关的还有以下option:--pct-motion (滑动事件)

调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随机事件和一个up事件组成)adb shell monkey –p com.htc.Weather --pct-motion 20 1000

--pct-trackball (轨迹球事件)

调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击)

adb shell monkey -p com.htc.Weather --pct-trackball 30 1000

--pct-nav (导航事件 up/down/left/right)

调整“基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成)

adb shell monkey -p com.htc.Weather --pct-nav 40 1000

调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作,如:5-w