01 执行 monkey测试
monkey执行命令:
monkey -p com.xxx.xxx -s $RANDOM --throttle 300 -v -v -v 200000 2>/sdcard/monkeytest/error.txt 1>/sdcard/monkeytest/info.txt
命令说明:
-s 用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。
--throttle(毫秒)事件之间插入的固定延迟。通过这个选项可以减缓Monkey的执行速度。如果不指定,Monkey将尽可能快的产生并执行事件。
--ignore-crashes 忽略程序崩溃。设置此选项后,Monkey会执行完所有的事件,不会因crash而停止。
--ignore-timeouts 忽略程序无响应。设置此选项后,Monkey会执行完所有的事件,不会因ANR而停止。
--ignore-security-exceptions 忽略证书或认证异常。设置此选项后,Monkey会执行完所有的事件,不会因认证或证书异常而停止。
--ignore-native-crashes 监视系统中本地代码发生的崩溃
--monitor-native-crashes 忽略本地代码导致的崩溃。设置忽略后,Monkey将执行完所有的事件,不会因此停止。
-v -v –v 提供最详细的设置信息
- monkey参数可根据实际情况进行添加。
02 log分析
info.txt 日志:
info.txt日志开头:显示本次测试seed值,执行次数,测试包名
info.txt日志中间内容:显示本次monkey测试执行的操作(点击、滑动、长按等)
info.txt日志结尾:如果Monkey测试顺利执行完成,在log的最后,会打印出当前执行事件的次数和所花费的时间;Monkey finished代表执行完成。(如果Monkey执行中断,在log的最后也能查看到当前已执行的次数。)
error.txt日志:
搜索关键字:
1.程序无响应,ANR问题:在日志中搜索“ANR”
2.崩溃问题:在日志中搜索“CRASH”
3.其他问题:在日志中搜索”Exception”
详细分析monkey日志:
1、Switch --查看log中的Switch,主要是查看Monkey执行的是那一个Activity,两个swtich之间如果出现了崩溃或其他异常,可以在该Activity中查找问题的所在。
2、Sleeping --Sleeping for 500 milliseconds这是执行Monkey测试时,throttle设定的间隔时间,每出现一次,就代表一个事件。
03 问题重现
monkey测试出现错误后,一般的查错步骤为以下几步:
1.找到是monkey里面的哪个地方出错
2.查看Monkey里面出错前的一些事件动作,并手动执行该动作
3.若以上步骤还不能找出,可以使用之前执行的monkey命令再执行一遍,注意seed值要一样
网友评论