一、执行monkey步骤:
1.重新在cmd下执行adb shell,这个时候会识别手机
2.接着输入如下命令:执行命令:monkey -p com.baidu.BaiduMap --throttle 500 -v -v -v 1000000 >/sdcard/monkey.log &logcat -v time >/sdcard/logcat.log &(详细命令参数看Monkey介绍)这个命令是进行测试的常用命令, 如果还需要设置别的参数,可以根据Monley测试简介上的详细介绍去学习
3. 同时可以在另外一个cmd窗口下执行 adb logcat -v time >>file (这样会把执行的日志打印到指定的文件中),如果不想存在C盘,可以存在其他的路径下:比如, adb logcat -v time >>d:\file即可
4.测试完成后,进入手机/sdcard/monkey.log,把log导出来,如果直接打开log,不方面查看log,在网上下载一个EditPlus,用这个工具打开log文件,清楚明了,方便查找crash和ANR,采用Ctrl+F搜索的方式可以快速定位
(在monkey中搜索提示的crash的事件号,在fie中搜索crash、anr,exception)
二、调试选项
常用调试选项:
--ignore-crashes:忽略崩溃
--ignore-timeouts:忽略超时
--ignore-security-exceptions:忽略安全异常
--ignore-native-crashes:忽略本地崩溃
--monitor-native-crashes:跟踪本地方法的崩溃问题
--kill-process-after-error:发生错误后直接杀掉进程
--wait-dbg:直到连接了调试器才执行monkey测试
--dbg-no-events:初始化启动的activity,但不产生任何事件
--hprof:指定该项后在事件序列发送前后会立即生成分析报告
参数:–pct-{事件类别}{事件百分比}
含义:用于指定每种类别事件的数目百分比(在monkey事件序列中,该类事件数目占总事件数目的百分比)。
示例: --pct-touch{百分比}
调整触摸事件的百分比(触摸事件是down-up事件)。
adb shell monkey -p cn.xxx.xxx --pct-touch 80 1000
例如:
adb shell monkey -p com.xxxxx.xxxxx --throttle 200 --pct-touch 70 --pct-motion 30 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --monitor-native-crashes -v -v -v 250000 ->F:BUG\bug01.txt
三、输入提示error: device still connecting时
adb服务启动异常(重启服务)
adb kill-server
adb start-server
adb root
adb remount
一些方法:
1.adb nodaemon server
查看adb服务是否启动并查看其端口号
-
netstat -ano|findstr “5037”
列出TCP/IP连接(-a所有连接-n以数字形式-o列出进程号),并筛选出包含“5037”的行 -
查看是哪个进程使用了5037端口
tasklist|findstr “3028”
3.杀掉该进程
taskkill /F /PID 1100
四、monkey日志分析
日志开头显示:
- 本次monkey的seed值
- 执行次数(count)
- 执行的对应包名(AllowPackage)
- 执行的类别(IncludeCategory)
- 每种事件执行的百分比(Event percentages)
日志结尾:
如果Monkey测试顺利执行完成,在log的最后,会打印出当前执行事件的次数和所花费的时间;Monkey finished代表执行完成。
(如果Monkey执行中断,在log的最后也能查看到当前已执行的次数。)
日志内容分析
一般测试结果分析-搜索关键字:
1.程序无响应,ANR问题:在日志中搜索“ANR”(application no response)
2.闪退问题:在日志中搜索“CRASH”
3.其他问题:在日志中搜索”Exception”
4.强制退出:搜索"force closed"