一、命令adb shell monkey
- -p 指定packageName ,如果是多个则每个包名前面都要加上 -p
- count 设置执行次数,adb shell monkey 100
- -s 设置种子数,相当于设置一条路径,以便复现问题的时候,能按照同一路径进行回归
- --throttle 设置每次随机事件的时间间隔(单位:毫秒) 例:adb shell monkey 100 --throttle 500
- -v 日志详细级别,默认一个最多三个,例:adb shell monkey 100 --throttle 500 -v -v -v 100(100次时间,间隔500毫秒,最细log)
- --ignore-crashes 运行中忽略crash ,直至用例事件跑完
- -ignore-timeouts 忽略运行中的超时,直至用例事件跑完
- >d:\monkey001.txt 打印输出日志
- 设置事件百分比:
- --pct-touch 触摸事件
- --pct-motion 滑动事件
- --pct-pinchzoom 缩放事件
- --pcy-trackball 轨迹球事件
- --pct-rotation 屏幕旋转事件
- --pct-nav 基本导航事件
- --pct-majornav 主要导航事件【(menu等)】
- --pct-syskeys 系统事件百分比【系统按键事件(音量,home,返回按键等)】
- --pct-appswitch Activity启动事件比分比
- --pct-flip 键盘翻转事件
- --pct-anyevent 其他事件百分比
例如: adb shell monkey 1000 -p 包名 -s 123 --throttle 500 --ignore-crash --ignore-timeout -v -v --pct-touch 50 --pct-motion 50 2>d:/error.txt 1>d:/verbose.txt【详细级别为1 的主要是用来观看日志信息和事件分布信息,为2的主要是用来观看error的信息,做进一步的bug分析】
二、报告分析
一般执行完毕后日志结尾处都会有finish及用时等信息。Monkey test跑出来crash的bug等级永远为1,版本release前,Monkey跑出的结果中crash要为0。业内标准:final release前,Monkey跑完的总次数应为25W次,其结果里不允许有nullPointException出现.
结果分析可以通过关键字定位:ANR、CRASH、GC、Exception
1、无响应问题搜索关键字:ANR【 ANR问题:在日志中搜索“ANR”(“Application Not Responding"),说明有bug,出现ANR,一般是主线程的响应超过5秒,或者BroadcastReceiver没有在10秒内作出响应。这个就是一个比较严重的缺陷。】
2、崩溃问题搜索:CRASH
3、内存泄漏:GC
4、空指针:Exception