操作事件简介
Monkey 所执行的随机事件流中包含 11 大事件, 分别是触摸事件, 手势事件, 二指缩放事件, 轨迹事件, 屏幕旋转事件, 基本导航事件, 主要导航事件, 系统按键事件, 启动 Activity 事件, 键盘事件, 其他类型事件. Monkey 通过这 11 大事件来模拟用户的常规操作, 对手机 App 进行稳定性测试. 下面让我们来详细了解这 11 大事件.
1, 触摸事件
触摸事件是指在屏幕某处按下并抬起的操作, 可通过 --pct-touch 参数来配置其事件百分比. 从 Monkey 执行该事件对外输出的日志可以看到. 该事件由一组 Touch(ACTION_DOWN) 和 Touch(ACTION_UP) 事件组成, 在手机上看到实际操作类似于点击.
2, 手势事件
手势事件是指在屏幕某处的按下, 随机移动, 抬起的操作, 即直线滑动操作. 可通过 --pct-motion 参数来配置其事件百分比.
该事件是由一个 ACTION_DOWN 事件, 一系列 ACTION_MOVE 事件和一个 ACTION_UP 事件组成的, 在手机上看到的实际操作是一个没有拐弯的直线滑动操作.
3, 二指缩放事件
二指缩放事件是指在屏幕上的两处同时按下, 并同时移动, 最后同时抬起的操作, 即智能机上的放大缩小手势操作. 可通过 --pct-pinchzoom 参数来配置其事件百分比. 从 Monkey 执行该事件对外输出的日志可以看到:
该事件起始是一个 ACTION_DOWN 事件和一个 ACTION_POINTER_DOWN 事件, 即模拟两个手指同时点下; 中间是一系列的 ACTION_MOVE 事件, 即两个手指同时在屏幕上直线滑动; 结束是由一个 ACTION_POINTER_UP 事件和一个 ACTION_UP 事件组成的, 即两个手指同时放开.
4, 轨迹事件
轨迹事件是由一个或多个随机的移动组成的, 有时会伴随着点击. 很早之前的 Android 手机带有轨迹球, 这个事件就是模拟的轨迹球的操作. 现在的手机几乎都没有轨迹球, 但轨迹球事件中包含曲线滑动操作, 如果被测程序需要曲线滑动时可以选用此参数. 可通过 --pct-trackball 参数来配置其事件百分比. 从 Monkey 执行该事件对外输出的日志可以看到:
该事件是由一系列的 Trackball(ACTION_MOVE) 事件组成的, 观察手机上的操作, 即为一系列的曲线滑动操作.
5, 屏幕旋转事件
屏幕旋转事件是一个隐藏事件, 在 Android 官方文档中并没有记录这个事件. 它其实是模拟的 Android 手机的横屏和竖屏切换. 可通过 --pct-rotation 参数来配置其事件百分比. 从 Monkey 执行该事件对外输出的日志可以看到: [代码] 该事件由一个 rotation 事件组成, 其中 degree 表示的是旋转方向, 顺时针旋转, 0 表示旋转 90 度的方向, 1 表示旋转 180 度的方向, 2 表示旋转 270 度的方向, 3 表示旋转 360 度的方向. 在执行过程中, 可以看到手机屏幕在横竖屏之间不断地切换.
6, 基本导航事件
基本导航事件是指点击方向输入设备的上, 下, 左, 右按键的操作, 现在手机上很少有上, 下, 左, 右按键, 这种事件一般用得比较少. 可通过 --pct-nav 参数来配置其事件百分比. 从 Monkey 执行该事件对外输出的日志可以看到:
该事件是由一个 Key(ACTION_DOWN) 和一个 Key(ACTION_UP) 组成的, 点击的就是上, 下, 左, 右四个方向按键.
7, 主要导航事件
主要导航事件是指点击 "主要导航" 按键的操作, 这些按键通常会导致 UI 界面中的动作, 如键盘的中间键, 回退按键, 菜单按键. 可通过 --pct-majornav 参数来配置其事件百分比. 从 Monkey 执行该事件对外输出的日志可以看到: [代码] 该事件是由一个 Key(ACTION_DOWN) 和一个 Key(ACTION_UP) 组成的, 点击的按键就是中间键和菜单键.
8, 系统按键事件
系统按键事件是指点击系统保留使用的按键的操作, 如点击 Home 键, 返回键, 音量调节键等. 可通过 --pct-syskeys 参数来配置其事件百分比. 从 Monkey 执行该事件对外输出的日志可以看到: [代码] 该事件是由一个 Key(ACTION_DOWN) 和一个 Key(ACTION_UP) 组成的, 点击的就是上面说到的几个系统按键.
9, 启动 Activity 事件
启动 Activity 事件是指在手机上启动一个 Activity 的操作. 在随机的时间间隔中, Monkey 将执行一个 startActivity() 方法, 作为最大限度上覆盖被测包中全部 Activity 的一种方法. 可通过 --pct-appswitch 参数来配置其事件百分比. 从 Monkey 执行该事件对外输出的日志可以看到: [代码] 该事件是由一个 Switch 操作组成的, 从手机上看, 上面的操作实际是打开了 com.Android.settings 这个应用的一个 com.Android.settings.Settings 的 Activity 界面.
10, 键盘事件
键盘事件主要是一些与键盘相关的操作. 比如点击输入框, 键盘弹起, 点击输入框以外区域, 键盘收回等. 可通过 --pct-flip 参数来配置其事件百分比. 从 Monkey 执行该事件对外输出的日志可以看到: [代码] 如日志所示, 这里主要是键盘的打开和关闭操作.
11, 其他类型事件
其他类型事件包括了除前面提到的 10 种事件外其他所有的事件, 如按键, 其他不常用的设备上的按钮等. 可通过 --pct-anyevent 参数来配置其事件百分比. 从 Monkey 执行该事件对外输出的日志可以看到: [代码] 该事件是由一个 Key(ACTION_DOWN) 和一个 Key(ACTION_UP) 组成的, 点击的按键就是其他的一些系统按键, 如字母按键, 数字按键等. 因为现在手机很少带字母按键或数字按键, 所以这个事件一般使用得比较少.
12, 小结
好了, Monkey 事件暂且到这里, 下一篇计划介绍分享 Monkey 参数!!!
您的肯定就是我进步的动力. 如果你感觉还不错, 就请鼓励一下吧! 记得点波 推荐 哦!!!(点击右边的小球即可)
个人公众号
微信群
来源: https://www.cnblogs.com/du-hong/p/11175687.html