前提:搭建 Java的jdk和android的SDK环境,可参考http://www.cnblogs.com/sylovezp/p/3623588.html
monkey是安卓系统自带的,其启动脚本位于安卓系统的system/bin目录下的monkey文件
monkey是一个程序,运行在模拟器或设备上,并生成伪随机的用户事件流。如点击、触摸、手势,以及一些系统级事件,可以使用monkey事件以随机但可重复的事件对应用程序进行压力测试。
一、monkey启动与关闭 1.1 monkey启动步骤1.连接移动设备:开启设备或虚拟机的USB调试模式后,连接电脑。
2.连接成功后,进入shell:
adb shell
3.进入monkey所在目录:
cd system/bin
4.输入monkey命令,查看如下提示则说明启动成功。
monkey
1.2 强制关闭进程monkey:1.查看正在运行的进程:
adb shell monkey
2.查找出pid:
com.Android.commands.monkey的pid
3.关闭该进程pid:
adb shell kill
二、monkey 命令格式:adb shell monkey [options]
(1) [options]: 非必填,代表可传入的参数。
(2): 必填,指随机发送的时间次数。
三、monkey事件-随机事件流中包含11事件1.触摸事件:在键盘某处按下又抬起的操作。可通--pct-touch参数来配置其事件百分比。
--pct-touch
2.手势事件:在键盘某处的按下、随机移动、抬起的操作。
--pct-motion
3.二指缩放事件:在屏幕上两处同时按下,同时滑动,并同时抬起的操作。
--pct-pinchzoom
4.轨迹事件:由一个或几个随机的移动组成的,有时会伴随着点击,像很早的安卓手机带有的轨迹球,如果需要曲线滑动,可选该参数。
--pct-trackball
5.屏幕旋转事件:Android手机的横屏竖屏的切换。
--pct-rotation
6.基本导航事件:(现少用)较早设备上的上、下、左、右 实体按键。
--pct-nav
7.主要导航事件:(现少用)较早设备上的菜单、回退、中间键等实体按键。
--pct-majornav
8.系统按键事件:音量+-,Home键、返回键等实体按键。
--pct-syskeys
9.键盘事件:主要是与键盘相关的操作,点击输入框,键盘弹起;点击键盘以外区域,键盘关闭。
--pct-flip
10.启动Activity事件:在手机上启动一个activity的操作。
--pct-appswitch
11.其他事件
--pct-anyevent
四、monkey参数--monkey四大类参数 4.1 常规类参数常规类参数主要包括帮助参数和日志信息参数。
1.帮助参数:-h
$ adb shell monkey -h
2.日志级别:-v
$ adb shell -v -v -v
-v打印出日志信息,-v越多信息越详细,一般使用到一级。
4.2 事件类参数
事件类参数的作用是对随机事件进行调控,从而使其遵照设定运行。
如设置时间的百分比,设置事件生成所使用的种子值。
1. 执行指定脚本:-f
$ adb shell monkey -f
2. 伪随机数生成种子值:-s
-s操作可以重复执行之前的伪随机操作。本身每次执行一次伪随机操作默认也会生成一个seed值。
3. 设置间隔:--throttle (注意--)
--throttle后面接时间,单位为ms。表示在每个指令(事件)之间加上固定的时间间隔。
$ adb shell monkey --throttle
eg: $ adb shell monkey --throttle 3000 5
4. 调整事件的百分比
(1)调整触摸事件的百分比:
--pct-touch
$ adb shell monkey –pct-touch
(2)调整手势事件百分比:
--pct-motion
(3)调整屏幕旋转事件百分比:
--pct-rotation
(4)调整应用启动事件的百分比:
--pct-appswitch
4.3 约束类参数
1.包约束:-p
测试一个或多个包名,如果不指定包,monkey将允许系统启动全部包里的activity。
注:每个-p后面接一个包名。
$ adb shell monkey -p
eg:
如豌豆荚包名com.wandoujia.phoenix2
$ adb shell monkey -p com.tal.kaoyan -p com.tencent.mm 500
2.activity约束 :-c
将monkey限制在一个或几个类中。
$adb shell monkey
eg:
以下表示运行Intent.CATEGORY_LAUNCHER类别的Activity并发送1000个随机事件。
$ adb shell monkey -c Intent.CATEGORY_LAUNCHER 1000
4.4 调试类参数1.应用程序崩溃后,继续发送事件:
--ignore-crashes
2.超时错误后,继续发送事件:
--ignore-timeouts
3.应用程序权限错误后,继续发送事件:
--ignore-security-exceptions