monkey--“猴子测试”是指一个什么都不懂的人,就像猴子一样,不需要知道程序方面的任何知识,如果给他一个程序,他就会对他看到的界面进行无目的的、乱点乱按的操作。
这种方式在早期阶段会找到很多很好的bug,可以节省很多的时间。
一,首先你要先搭建环境
先下载jdk,再下载sdk
二,打开手机的开发者调试工具,用usb数据线连接一台手机,或者使用手机模拟器
三,monkey前的准备命令
1.windows+r 输入cmd进入dos命令行;
2.输入adb devices 下面出现类似下图的组合你就成功了
如果显示
使用adb kill -server 杀死adb服务即可
3.再输入 adb shell pm list packages 可以查看手机上所有的安装包
输入 adb shell pm list packages -3 查看手机上所有的第三方安装包,尽量让手机少安装第三方软件,这样可以尽快的找到想要的安装包名称。
四,使用monkey
-p参数:表示指定测试的程序(空格后面跟安装包名字,拿刚才的第三方安装包一个个试)
-v参数:表示查看monkey执行过程的信息(日志级别)-v 越多越详细,最多三个
数字100:表示测试事件数为100
指定一个包 adb shell monkey -p com.baidu.BaiduMap -v -v -v 100 此时指定软件会被打开并开始乱点乱按
指定多个包 adb shell monkey -p com.tal.kaoyan -p com.baidu.BaiduMap -v 1000
不指定包 adb shell monkey -v 1000
运行结果:
Event percentages(事件百分比):
0:触摸事件百分比,参数--pct-touch
1:滑动事件百分比,参数--pct-motion
2:缩放事件百分比,参数--pct-pinchzoom
3:轨迹球事件百分比,参数--pct-trackball
4:屏幕旋转事件百分比,参数--pct-rotation
5:暂时不知道这个是什么
6:基本导航事件百分比,参数--pct-nav
7:主要导航事件百分比,参数--pct-majornav
8:系统事件百分比,参数--pct-syskeys
9:Activity启动事件百分比,参数--pct-appswitch
10:键盘翻转事件百分比,参数--pct-flip
11:其他事件百分比,参数--pct-anyevent
我们也可以让我们的操作有一定的规律性,即按键、触屏等各类事件操作有所偏重。
.--throttle 设定两个事件之间一个固定延迟,可以减缓monkey的执行速度。如果不指定,monkey将不会被延迟,事件将尽可能快地生成和发送消息。单位:毫秒
adb shell monkey --throttle 3000 -p com.baidu.BaiduMap 100
向百度地图发送100次随机事件,每次事件间隔为3秒。
--pct-touch (空格后加数字)设定触屏事件生成的百分比。触屏事件是一个有手指按下,抬起事件的手势。
adb shell monkey --throttle 3000 --pct-touch 70 -p com.baidu.BaiduMap 100
向百度地图发送1000次随机事件,每次事件间隔为3秒。设定触屏的事件占比为70%。
--pct-touch (空格后加数字)设定触屏事件生成的百分比。触屏事件是一个有手指按下,抬起事件的手势。
adb shell monkey --throttle 3000 --pct-touch 50 -p com.baidu.BaiduMap 100
向百度地图发送1000次随机事件,每次事件间隔为3秒。设定触屏的事件占比为50%。
--pct-motion 设定滑动事件生成的百分比。滑动事件是一个先在某一个位置手指按下,滑动一段距离后再抬起手指的手势。
adb shell monkey --throttle 3000 --pct-motion 50 -p com.baidu.BaiduMap 100
向百度地图发送1000次随机事件,每次事件间隔为3秒。设定滑动的事件占比为50%。
--pct-trackball 设定轨迹球事件生成的百分比。轨迹球事件是包含一系列随机移动和单击事件的事件
adb shell monkey --throttle 3000 --pct-trackball 50 -p com.baidu.BaiduMap 100
向百度地图发送1000次随机事件,每次事件间隔为3秒。设定轨迹球的事件占比为50%。
.--pct-nav 设定基本导航事件生成的百分比。基本导航事件是模拟方向性在设备上输入向上、向下、向左、向右的事件。
adb shell monkey --throttle 3000 --pct-nav 50 -p com.baidu.BaiduMap 100
向百度地图发送1000次随机事件,每次事件间隔为3秒。设定基本导航事件的占比为50%。
--pct-majornav 设定主要导航事件生成的百分比。主要导航事件通常会导致UI产生回馈信息,如单击Back键、Home键、Menu键等、
adb shell monkey --throttle 3000 --pct-majornav 50 -p com.baidu.BaiduMap 100
向百度地图发送1000次随机事件,每次事件间隔为3秒。设定主要导航事件的占比为50%。
.--hprof
指定了该参数,Monkey会在发送事件序列的前、后,生成性能分析报告。通常会在data/misc目录下生成一个5MB左右大小的文件