【MonkeyTest】
logcat:
adb logcat -v time > D:\文件夹\包名.log
Monkey命令
monkey -p com.android.camera -s 100 --pkg-blacklist-file /sdcard/blacklist.txt --ignore-crashes --ignore-timeouts --ignore-security-exceptions --kill-process-after-error --pct-trackball 0 --pct-nav 0 --pct-majornav 0 --pct-anyevent 0 -v -v -v --throttle 500 1200000000 > /sdcard/monkeytest.aaa 2>&1 &
- -p com.android.camera
指定monkey测试的范围,无此项表示范围为整机系统
- -s 100
设置事件随机数, 不设定此项则每次执行的事件均不相同
- -pkg-blacklist-file /sdcard/blacklist.txt
存放于手机根目录的黑名单文件(可根据项目增删)
- --ignore-crashes
忽略程序崩溃(Monkey会执行完所有的事件,不会因Crash而停止)
- --ignore-timeouts
忽略程序超时无响应(Monkey会执行完所有的事件,不会因ANR而停止)
- --ignore-security-exceptions
忽略证书或认证异常(Monkey会执行完所有的事件,不会因证书或认证异常而停止)
- --kill-process-after-error
杀掉出错的进程
- --pct-trackball 0
调整轨迹球事件的百分比
- --pct-nav 0
调整基本导航事件的百分比
- --pct-majornav 0
调整主要导航事件的百分比
- --pct-anyevent 0
调整任意事件的百分比
- -v -v -v
提供最详细的设置信息,每个-v都将增加反馈信息的级别
- --throttle 500
事件之间插入的固定延迟,通过这个选项可以减缓Monkey的执行速度(500ms)
- 1200000000
事件执行次数
- > /sdcard/monkeytest.aaa 2>&1 &
monkeytest.aaa的log文件保存在根目录
一般测试结果分析-搜索关键字:
1.程序无响应,ANR问题:在日志中搜索“ANR”
2.崩溃问题:在日志中搜索“CRASH”
3.其他问题: 在日志中搜索”Exception”
详细分析monkey日志
Switch--查看log中的Switch,主要是查看Monkey执行的是那一个Activity,两个swtich之间如果出现了崩溃或其他异常,可以在该Activity中查找问题的所在。
Sleeping--Sleeping for 500 milliseconds这是执行Monkey测试时,throttle设定的间隔时间,每出现一次,就代表一个事件。
重现问题
Monkey测试出现错误后,一般的查错步骤为以下几步:
1.找到是monkey里面的哪个地方出错
2.查看Monkey里面出错前的一些事件动作,并手动执行该动作
3.若以上步骤还不能找出,可以使用之前执行的monkey命令再执行一遍,注意seed值要一样
Monkey测试的og分析,我们可以通过几个关键词来判断测试是否通过。
1)Monkey finished
打开LOG,查看log的最下端,是否有类似以下字段:
## Network stats: elapsed time=5123ms (5123ms mobile, 0ms wifi, 0ms not connected)
// Monkey finished
这个字段表明本次的Monkey没有异常,测试通过。
2)CRASH
同样,在得到LOG后,搜索”CRASH”字段,如果搜索到有结果,则表明有进程出现问题,测试不通过。
// CRASH: com.onekchi.downloadmanager (pid 12919)
3)ANR
在Log中搜素该字段,如果有搜索有结果,则表示测试过程中,测试对象出现了无响应的现象,因此测试不通过。--throttle <毫秒>值建议为500
adb shell ps(查找进程PID)
adb shell kill pid (杀掉进程)