1、首先使用adb,进行安装和配置环境变量
2、连接手机,获取包名
adb shell pm list package -f
将获取手机内所有apk对应的包名和路径
3、输入命令进行操作app
adb shell monkey + 行为参数 + ">" + {日志保存路径}
示例:
adb shell monkey -p com.xxx.myapp --throttle 100 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 1000000 > d:\mylog.log
--throttle 100 :每个事件结束后的间隔时间
--ignore-crashes: 忽略崩溃
--ignore-timeouts: 忽略超时
--ignore-security-exceptions: 忽略安全异常
--ignore-native-crashes: Monkey 测试时忽略本地代码导致的崩溃,若发生崩溃,将继续发送事件给系统,直到事件计数完成(若不设置此项,在遇到本地代码导致的奔溃时,Monkey 将停止运行)
--monitor-native-crashes: 跟踪本地方法的崩溃问题,监控并报告Monkey运行时Android系统native code的崩溃事件
-v-v-v: 每个 -v 都将增加反馈信息的级别。共3个级别,因此 -v -v -v 可以提供最详细的设置信息。
-v:0级,除启动提示、测试完成和最终结果外提供较少信息
-v -v:1级,提供较详细测试信息,如逐个发送到 Activity 的事件
-v -v -v:2级,提供更详细安装信息,如测试中被选中或未被选中的 Activity
1000000: Monkey 测试事件次数
d:\mylog.log: Monkey 测试日志记录文件
四、结果分析整理
从 Monkey 日志中看问题:
1、程序无响应的问题:在日志中搜索“ANR”
2、崩溃问题:在日志中搜索“Exception”,Java常见异常:
(1)算术异常类:ArithmeticExecption
(2)空指针异常类:NullPointerException
(3)类型强制转换异常:ClassCastException
(4)数组负下标异常:NegativeArrayException
(5)数组下标越界异常:ArrayIndexOutOfBoundsException
(6)违背安全原则异常:SecturityException
(7)文件已结束异常:EOFException
(8)文件未找到异常:FileNotFoundException
(9)字符串转换为数字异常:NumberFormatException
(10)操作数据库异常:SQLException
(11)输入输出异常:IOException
(12)违法访问错误:IllegalAccessError
(13)内存不足错误:OutOfMemoryError
(14)堆栈溢出错误:StackOverflowError
3、ForceClosed和程序异常退出问题:在日志中搜索“致命”