Monkey是一款app的自动化测试工具,monkey是猴子的意思,所以从原理上说,它的自动化测试就类似猴子一样在软件上乱敲按键,猴子什么都不懂,就爱捣乱。Monkey原理也是类似,通过向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、滑动Trackball、手势输入等操作),来对设备上的程序进行测试,检测程序长时间的稳定性,多久的时间会发生异常。
首先手机要打开开发者选项
Ps:小米手机更多设置,打开开发者选项,关闭miui优化,允许USB调试
adb安装apk
adb shell 查看设备是否在线
adb install –r +apk包 安装
adb devices查看设备是否连接正常
adb shell pm list packages 列出所有包名
adb shell monkey -p
adb shell pm list packages –f查看应用对应的apk文件在手机上的安装位置
aapt dump badging [yourapp.apk] 查看一个apk文件的相关信息/aapt命令在sdk文件的build tools目录下面,需添加系统变量
adb shell monkey -v -p com.xx.xx 100 简单输出测试信息
adb shell monkey –p com.eastmoney.android.berlin –v 300对此包进行300 次无规律点击测试
adb shell monkey -p com.eastmoney.android.berlin -v 1000>F:\monkey.txt对此包进行1000次无规律点击后将日志导出到电脑的某一位置
adb shell monkey -p com.eastmoney.android.berlin --ignore-crashes --ignore-timeouts -v 2000>F:\dfcf_log.txt出现carash或者timeout时,Monkey测试会终止。这里是防止Monkey测试终止
无响应问题(ANR问题):在日志中搜索“ANR ”(此处有空格)
崩溃问题:在日志中搜索“Exception”,快速定位到关键事件信息
参数说明:
-p指定包,不指定包:adb shell monkey 100随机启动APP并发送100个随机事件
-v 日志详细程度 提供三个级别-v越多日志越详细
-s用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。adb shell monkey -p com.htc.Weather –s 10 100
--throttle <毫秒>指定用户操作(即事件)间的时延adb shell monkey -p com.htc.Weather –throttle 3000 100
模拟事件比例:
0:触摸事件百分比,即参数--pct-touch
1:滑动事件百分比,即参数--pct-motion
2:缩放事件百分比,即参数--pct-pinchzoom
3:轨迹球事件百分比,即参数--pct-trackball
4:屏幕旋转事件百分比,
5:基本导航事件百分比,即参数--pct-nav
6:主要导航事件百分比,即参数--pct-majornav
7:系统事件百分比,即参数--pct-syskeys
8:Activity启动事件百分比,即参数--pct-appswitch
9:键盘翻转事件百分比,即参数--pct-flip
10:其他事件百分比,即参数--pct-anyevent