在日常測試app時,經常會遇到崩潰問題,測試快速抓取到崩潰日誌可以有效方便開發進行定位,快速解決問題所在
測試做到測試分析,定位是非常重要的,這也是判斷一個測試能力指標的一大維度。
# 清除日誌,新手上路時,日誌內容很多,對於能畢現的日誌,可以先清除後重新獲取 adb logcat -c # 然後再次執行崩潰操作,再抓取日誌 # 儲存日誌到當前目錄下的 carsh.log 中 adb logcat -d *:W > crash.log # W指的是警告以上日誌 # 這個日誌檔案包含了所有列印的日誌,需要自己篩選下崩潰日誌,比如搜尋 begin、crash、Exception # 爲了更精確的篩選日誌,可以加入篩選條件 adb logcat -d *:W grep 「包名」 >crash.log
在logcat中檢視實時日誌,需要選擇連線的手機和應用包名
封裝成shell指令碼,可以快速列印最新的崩潰日誌
#!/bin/bash # path="/data/system/dropbox" # 在手機這個目錄下儲存了崩潰日誌 newest_time=$(adb shell dumpsys dropbox | grep 'data_app_crash' | awk 'END {print $1,$2}') adb shell dumpsys dropbox --print ${newest_time} # echo -e "時間是:${newest_time}"
# 在/data/anr/目錄下儲存所有了ANR日誌 adb pull /data/anr/ ~/Downloads
常見的異常:javaException(runtimeException):
NullPointerException-空指針參照異常
ClassCastException-型別強制轉換異常。
IllegalArgumentException-傳遞非法參數異常。
ArithmeticException-算術運算異常
ArrayStoreException-向陣列中存放與宣告型別不相容物件異常
IndexOutOfBoundsException-下標越界異常
NegativeArraySizeException-建立一個大小爲負數的陣列錯誤異常
NumberFormatException-數位格式異常
SecurityException-安全異常
UnsupportedOperationException-不支援的操作異常
路徑:設定 -> 隱私 -> 分析 -> 分析數據
這裏可以獲取手機上的所有崩潰日誌。不過日誌是密文,需要在xcode中開啓,會自動翻譯成明文。
開啓xcode,選單欄選擇window,選擇 Devices and Simulators,點選View Device Logs,可以看到日誌列表。
在日誌中主要看Last Exception Backtrace(即發生崩潰的原因,也是我們要研究的重點) 預設是密文,開啓後xcode會翻譯成明文,需要等待幾秒。
路徑:
Mac OS X: ~/Library/Logs/CrashReporter/MobileDevice/
可以看到所有和該電腦同步過的裝置的崩潰日誌(.crash檔案)