一:前言
在日常測試app時,經常會遇到崩潰問題,測試快速抓取到崩潰日志可以有效方便開發進行定位,快速解決問題所在
測試做到測試分析,定位是非常重要的,這也是判斷一個測試能力指標的一大維度。
二:Android崩潰日志
一、通過adb logcat獲取
# 清除日志,新手上路時,日志內容很多,對於能畢現的日志,可以先清除后重新獲取 adb logcat -c # 然后再次運行崩潰操作,再抓取日志 # 存儲日志到當前目錄下的 carsh.log 中 adb logcat -d *:W > crash.log # W指的是警告以上日志 # 這個日志文件包含了所有打印的日志,需要自己篩選下崩潰日志,比如搜索 begin、crash、Exception # 為了更精確的篩選日志,可以加入篩選條件 adb logcat -d *:W grep “包名” >crash.log
二、通過Android Studio
在logcat中查看實時日志,需要選擇連接的手機和應用包名
三、通過adb shell dumpsys dropbox命令獲取
封裝成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}"
四、獲取ANR日志
# 在/data/anr/目錄下存儲所有了ANR日志
adb pull /data/anr/ ~/Downloads
五、常見日志類別
常見的異常:javaException(runtimeException):
NullPointerException-空指針引用異常
ClassCastException-類型強制轉換異常。
IllegalArgumentException-傳遞非法參數異常。
ArithmeticException-算術運算異常
ArrayStoreException-向數組中存放與聲明類型不兼容對象異常
IndexOutOfBoundsException-下標越界異常
NegativeArraySizeException-創建一個大小為負數的數組錯誤異常
NumberFormatException-數字格式異常
SecurityException-安全異常
UnsupportedOperationException-不支持的操作異常
二:iOS崩潰日志
一、iOS手機上獲取崩潰日志
路徑:設置 -> 隱私 -> 分析 -> 分析數據
這里可以獲取手機上的所有崩潰日志。不過日志是密文,需要在xcode中打開,會自動翻譯成明文。
二、在xcode中打開崩潰日志
打開xcode,菜單欄選擇window,選擇 Devices and Simulators,點擊View Device Logs,可以看到日志列表。
在日志中主要看Last Exception Backtrace(即發生崩潰的原因,也是我們要研究的重點) 默認是密文,打開后xcode會翻譯成明文,需要等待幾秒。
三、通過iTunes同步后獲取崩潰日志
路徑:
Mac OS X: ~/Library/Logs/CrashReporter/MobileDevice/
可以看到所有和該電腦同步過的設備的崩潰日志(.crash文件)