monkey学习笔记

Monkey简介

在Android的官方自动化测试领域有一只非常著名的“猴子”叫Monkey,这只“猴子”一旦启动,就会让被测的Android应用程序像猴子一样活蹦乱跳,到处乱跑。人们常用这只“猴子”来对被测程序进行压力测试,检查和评估被测程序的稳定性。

Monkey路径

Monkey程序是Android系统自带的,其启动脚本是位于Android系统的/system/bin目录的Monkey文件,其jar包是位于Android系统的/system/framework目录的Monkey.jar文件。用户主要是通过adb命令来启动Monkey的,Monkey在运行时,会根据命令行参数的配置,生成伪随机的事件流,并在Android设备上执行对应的测试事件。

Monkey启动步骤

1.连接移动设备

2.连接成功后,启动PC的控制台,输入命令adb shell monkey

强制关闭Monkey

1.adb shell ps查看全部正在运行的进程

2.查找出com.android.commands.monkey进程PID

3.adb shell kill pid 杀掉monkey进程

Monkey命令

1)指定包名,并指定随机发送时间的数

adb shell monkey -p package-name


01.png

Monkey操作时间

1)触摸事件

触摸事件是指在屏幕某处按下并抬起的操作,可通过--pct-touch参数来配置其事件百分比

2)手势事件

手势事件是指在屏幕某处的按下、随机移动、抬起的操作,即直线滑动操作。可通过--pct-motion参数来配置其事件百分比。

3)二指缩放事件

二指缩放事件是指在屏幕上的两处同时按下,并同时移动,最后同时抬起的操作,即智能机上的放大缩小手势操作。可通过--pct-pinchzoom参数来配置其事件百分比。

4)轨迹事件

轨迹事件是由一个或多个随机的移动组成的,有时会伴随着点击。很早之前的Android手机带有轨迹球,这个事件就是模拟的轨迹球的操作。现在的手机几乎都没有轨迹球,但轨迹球事件中包含曲线滑动操作,如果被测程序需要曲线滑动时可以选用此参数。可通过--pct-trackball参数来配置其事件百分比。

5)屏幕旋转事件

屏幕旋转事件是一个隐藏事件,在Android官方文档中并没有记录这个事件。它其实是模拟的Android手机的横屏和竖屏切换。可通过--pct-rotation参数来配置其事件百分比。

6)基本导航事件

基本导航事件是指点击方向输入设备的上、下、左、右按键的操作,现在手机上很少有上、下、左、右按键,这种事件一般用得比较少。可通过--pct-nav参数来配置其事件百分比。

7)主要导航事件

主要导航事件是指点击“主要导航”按键的操作,这些按键通常会导致UI界面中的动作,如键盘的中间键、回退按键、菜单按键。可通过--pct-majornav参数来配置其事件百分比。

8)系统按键事件

系统按键事件是指点击系统保留使用的按键的操作,如点击Home键、返回键、音量调节键等。可通过--pct-syskeys参数来配置其事件百分比。

9)启动activity事件

启动Activity事件是指在手机上启动一个Activity的操作。在随机的时间间隔中,Monkey将执行一个startActivity()方法,作为最大限度上覆盖被测包中全部Activity的一种方法。可通过--pct-appswitch参数来配置其事件百分比。

10)键盘事件

键盘事件主要是一些与键盘相关的操作。比如点击输入框、键盘弹起、点击输入框以外区域、键盘收回等。可通过--pct-flip参数来配置其事件百分比。

11)其他类型事件

其他类型事件包括了除前面提到的10种事件外其他所有的事件,如按键、其他不常用的设备上的按钮等。可通过--pct-anyevent参数来配置其事件百分比。

Monkey参数

(1)帮助类参数adb shell monkey -h

(2)日志类级别 adb shell monkey -v

-v:打印出日志信息,每个-v将增加反馈信息的级别。-v越多日志信息越详细,不过目前最多支持3个-v,即:


monkey学习笔记_第1张图片
02.png

(3)事件类参数

执行指定脚本 adb shell monkey -f /mnt/sdcard/test1

伪随机数生成种子值 adb shell monkey -s 通过指定伪随机值,可以保证每次运行都按照同一个随机值去执行操作,方便重现bug。

如:adb shell monkey -p com.uu.test -s 666 100 就是随机值是666(可以自定义值),执行100次操作。

设置间隔,如果你希望在每一个指令之间加上固定的间隔时间,可以用--throttle命令。

adb shell monkey --throttle

如:adb shell monkey --throttle 3000 5 执行5个指令,每个指定之间有3s延时。

超时错误继续发送指令adb shell monkey --ignore-timeouts

如果你希望monkey在应用程序权限错误发生后继续发送事件,则需要用到--ignore-security-exceptions命令

实例:

adb shell monkey -p com.tal.kaoyan

--pct-touch 40 --pct-motion 25

--pct-appswitch 10

--pct-rotation 5

-s 1666 --throttle 400

--ignore-crashes

--ignore-timeouts

-v -v  200

你可能感兴趣的:(monkey学习笔记)