通過一系列參數(shù)和事件的了解瓶盛,我們也看到了用 monkey 進(jìn)行穩(wěn)定性測(cè)試其實(shí)很簡(jiǎn)單莲绰。但是經(jīng)過 monkey 測(cè)試后吼畏,要如何去分析測(cè)試的結(jié)果呢?怎么才知道應(yīng)用是否穩(wěn)定懈万?
要獲取 monkey 的執(zhí)行結(jié)果拴清,最好的方式是分析 monkey 執(zhí)行過程中產(chǎn)生的日志。
獲取 monkey 日志
要獲取 monkey 日志的話会通,通過重定向
命令即可贷掖。
示例:
adb shell monkey -p com.huomaotv.mobile --pct-appswitch 20
--pct-rotation 20 --pct-touch 30 --pct-motion 20
--ignore-crashes --ignore-timeouts --monitor-native-crashes 10000 > d:/monkey.log
在命令的最后,加上>
重定向到本地文件渴语。d:/monkey.log
放在 d 盤的根目錄苹威。
分析日志
那么對(duì)于 monkey 跑完之后,我們要如何去確認(rèn)有沒有出現(xiàn) bug 呢驾凶?
最直觀簡(jiǎn)單的方式就是通過搜索以下關(guān)鍵字:
- 程序無響應(yīng)的情況:搜索關(guān)鍵字
ANR in
- 崩潰的情況1:搜索關(guān)鍵字
CRASH
- 崩潰的情況2:搜索關(guān)鍵字
Exception
如下牙甫,為一個(gè) Crash 的例子:
procrank:
// CRASH: com.huomaotv.mobile (pid 3071)
// Short Msg: Native crash
// Long Msg: Native crash: Aborted
// Build Label: Android/vbox86p/vbox86p:6.0/MRA58K/91:userdebug/test-keys
// Build Changelist: 91
// Build Time: 1526948635000
// *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
// Build fingerprint: 'Android/vbox86p/vbox86p:6.0/MRA58K/91:userdebug/test-keys'
// Revision: '0'
// ABI: 'x86'
// pid: 3071, tid: 3193, name: RenderThread >>> com.huomaotv.mobile <<<
// signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
// Abort message: 'Encountered EGL error 12291 EGL_BAD_ALLOC during rendering'
// eax 00000000 ebx 00000bff ecx 00000c79 edx 00000006
// esi dbb3f980 edi 00000004
// xcs 00000023 xds 0000002b xes 0000002b xfs 00000107 xss 0000002b
// eip f73196c6 ebp 00000c79 esp dbb3f150 flags 00200206
// backtrace:
// #00 pc 000836c6 /system/lib/libc.so (tgkill+22)
// #01 pc 00081728 /system/lib/libc.so (pthread_kill+70)
// #02 pc 00027255 /system/lib/libc.so (raise+36)
// #03 pc 00020a34 /system/lib/libc.so (abort+80)
// #04 pc 0000cbd3 /system/lib/libcutils.so (__android_log_assert+128)
// #05 pc 00023759 /sys