Monkey 的事件类型总共有 11 种,分别是触摸(Touch)、手势(motion)、二指缩放(pinchzoom)、轨迹(trackball)、旋转(rotation)、基本导航(nav)、主要导航事件(majornav)、系统按键(syskeys)、启动 activity(appswitch)、键盘事件(flip)和其它类型事件(anyevent),在日志中分别用 0-10 来表示;
如:
C:\Users\XXX>adb shell monkey –p cn.mopon.film --throttle 1000 -v –v –v 100
:Monkey: seed=160364725750 count=100
:IncludeCategory: android.intent.category.LAUNCHER
:IncludeCategory: android.intent.category.MONKEY
// Event percentages:
// 0: 15.0%
// 1: 10.0%
// 2: 2.0%
// 3: 15.0%
// 4: -0.0%
// 5: -0.0%
// 6: 25.0%
// 7: 15.0%
// 8: 2.0%
// 9: 2.0%
// 10: 1.0%
// 11: 13.0%
事件说明:
- 触摸事件:指在屏幕某处按下并抬起的操作。
- 手势事件:指在屏幕某处的按下、随机移动、抬起的操作(划动)。
- 缩放事件:指在屏幕上某处放大缩小事件,如地图的测试,这类事件较多。
- 轨迹事件:模拟的轨迹球的操作,早期手机较多,现在的手机几乎都没有轨迹球,但轨迹球事件中包含曲线滑动操作,如果被测程序需要曲线滑动时可以选用此参数。
- 屏幕旋转事件:屏幕旋转事件是一个隐藏事件,它是模拟屏幕的横屏和竖屏转换。
- 基本导航事件:指点击方向输入设备的上、下、左、右按键的操作,现在手机多数没有上下左右的操作,这类事件很少。
- 主要导航事件:指点击“主要导航”按键的操作,这些按键通常会导致 UI界面中的动作,如键盘回退,菜单,中间键等。
- 系统按键事件:指点击系统保留使用的按键的操作,如点击 Home 键、返回键、音量调节键等启动 Activity 事件:指在手机上启动一个 Activity 的操作,即打开某个应用的某个 activity 界面。
- 键盘事件:键盘事件主要是一些与键盘相关的操作,如点击输入框、键盘弹起、键盘收回等。
- 其它类型事件:除以上事件以外的其它事件,比如按键、其他不常用的设备上的按钮等。
好了,事件介绍完了,下面需要介绍在 monkey 测试中如何指定事件的比例,比如地图类的可以指定缩放事件较多一些,连连看游戏指定划动类较多一些,这样有利于测试的有效性,事件比例的设置是通过(--pct-事件名)的格式来指定事件的百分比,相关案例如下:
指定触摸事件的百分比
adb shell monkey -p cn.mopon.film --pct-touch 20 1000
注:--pct-{+事件类别}{+事件类别百分比}用于指定每种类别事件的百分比(在 Monkey事件序列中,该类事件数目占总事件数目的百分比),--pct-touch {+百分比}用于调整触摸事件的百分比(触摸事件是一个 down-up 事件,它发生在屏幕上的某单一位置)。
指定动作事件的百分比
adb shell monkey -p cn.mopon.film --pct-motion 30 1000
注:指定动作事件的百分比(动作事件由屏幕上某处的一个 down 事件、一系列的伪随机事件和一个 up 事件组成)。
指定多个事件的百分比
adb shell monkey -p cn.mopon.film --pct-touch 20--pct-pinchzoom30--pct-motion 15 --pct-appswitch 301000
说明:指定多个事件百分比时,各百分比之和不能超过 100% 如果不指定事件的百分比,monkey 会随机按事件百分比来跑 app。