對于app測試所獲取的日志,主要是為了看程序出現(xiàn)的crash和anr
crash:程序崩潰或閃退,一般會給出提示框:程序停止運行
anr:程序無響應(yīng)(響應(yīng)延遲),當(dāng)操作在一段時間內(nèi)系統(tǒng)無法處理的時候,彈出對話框:程序無響應(yīng),是否關(guān)閉
手工測試app,需要提交給開發(fā)的內(nèi)容
adb logcat -c 清理現(xiàn)有日志
adb logcat -v time > D:\log.txt
輸出帶時間戳的日志到電腦上,開始手工測試,日志會自動持續(xù)記錄到log.txt中
1. 對于crash錯誤,需要提交給開發(fā)的內(nèi)容?
日志中搜索crash
,在附近尋找,或者搜索fatal exception
,給開發(fā)截取從這一行開始,到下面所有E級別的日志,注意是連續(xù)的E級別的日志為止
并直接將整個日志發(fā)給開發(fā),告知存在crash錯誤
2.對于anr錯誤,需要提交給開發(fā)的內(nèi)容?
(1)日志中搜索anr in
,在anr in前面可以看到方法調(diào)用棧信息寫入的文件(驅(qū)使文件)
(2) adb pull /data/anr/traces.txt D:\111.txt
將方法調(diào)用棧文件拉到電腦上
可忽略:如果想進(jìn)入設(shè)備中先查看該traces.txt文件是不是方法調(diào)用棧文件
adb shell 進(jìn)入設(shè)備內(nèi)部
cd /data/anr 進(jìn)入該文件所處的目錄
ls 列出該目錄下所有的文件
cat traces.txt 查看方法調(diào)用棧文件
exit 退出shell模式
(3) 查看日志中產(chǎn)生anr的時間與方法調(diào)用棧文件的時間,確認(rèn)是否有效,若相差幾秒則有效,否則無效
(4) 將logcat日志中anr相關(guān)信息截圖給開發(fā),告知anr錯誤,并將整個logcat文件和traces.txt文件,一起提交給開發(fā)
問題1: 關(guān)于方法調(diào)用棧寫入的文件(驅(qū)使文件)只能記載最新一次的anr信息,第二次的會將第一次的覆蓋掉,如果發(fā)生多次anr,想查看每次發(fā)生anr所寫入的方法調(diào)用棧文件如何做?
答:可以進(jìn)入到設(shè)備的dropbox目錄下面,查看多次產(chǎn)生anr寫入的多個方法調(diào)用棧文件
adb shell 進(jìn)入設(shè)備
cd /data/system/dropbox 找到dropbox目錄
ll 列出其中的文件詳情,列出詳情是為了用時間來分辨文件產(chǎn)生的先后,知曉對應(yīng)的是日志中的哪次anr
exit 退出shell
adb pull /data/system/dropbox D:\dropbox 將整個dropbox目錄拉到本地
問題2:現(xiàn)在安卓碎片化普遍,沒有dropbox目錄怎么辦? 答:安卓碎片化,即很多手機(jī)廠商有自己的操作系統(tǒng),在定制的過程中可能會對android原生進(jìn)行修改,導(dǎo)致沒有drop目錄,那就看不了過往的,只能老老實實去 `/data/anr/traces.txt`中看最新一次的
monkey測試app,需要提交給開發(fā)的內(nèi)容?
看這部分之前,強(qiáng)烈建議將上文“手工測試app,需要提交給開發(fā)的內(nèi)容”先看完
1. 對于crash錯誤,需要提交給開發(fā)的內(nèi)容?
adb shell monkey 參數(shù)> D:\log.txt
,輸出monkey日志到電腦上
在monkey日志中搜索crash,將這些關(guān)鍵字,連同上下文,包括一些exception異常信息,一起發(fā)給開發(fā),或者將整個日志發(fā)給開發(fā)可以通過在monkey日志中搜索switch找到切換到了哪個APP,若指定了被測程序,那就只會有一個switch
也可以通過搜索 allowing start of intent,找到程序跳轉(zhuǎn)到了那個Activity
2. 對于anr錯誤,需要提交給開發(fā)的內(nèi)容?
答:需要提交logcat日志和trace.txt(方法調(diào)用棧寫入的文件)及monkey日志一起提交給開發(fā)
monkey日志中anr相關(guān)信息不夠詳細(xì),而logcat為Android系統(tǒng)日志,包含的內(nèi)容更加詳細(xì),可以幫助開發(fā)人員定位問題。如果要獲取logcat日志,則需要在執(zhí)行monkey測試之前開始記錄,完整步驟如下:
adb logcat -c #清除現(xiàn)有日志
adb logcat -v time >D:\logcat.log #開始記錄logcat日志
adb shell mnokey 參數(shù) >D:\monkey.log #執(zhí)行monkey測試并輸出monkey日志
adb pull /data/anr/traces.txt D:\traces.log #根據(jù)logcat日志中記錄的traces文件目錄,將traces.txt文件拉到電腦上
將以上三份文件中的關(guān)鍵信息給開發(fā)進(jìn)行簡要說明,然后將三份文件一起發(fā)給開發(fā)
問:需要跟開發(fā)簡要說明什么?
答:自己的操作,monkey命令執(zhí)行使用的一些參數(shù),出現(xiàn)anr時所處的頁面,在monkey日志中可以看到,,logcat日志中出現(xiàn)anr的上下文截圖
問題: monkey執(zhí)行過程中,發(fā)生多次crash或anr
答:眾所周知,monkey命令運行時若加了--ignore-crashes
,app出現(xiàn)崩潰退出后還會自動重啟并繼續(xù)執(zhí)行事件,所以日志中可以有多次crash,那么我們需要在monkey腳本結(jié)束之后,在monkey日志中直接搜索crash,記錄每次發(fā)生crash的關(guān)鍵信息給開發(fā)說明,并將整個monkey日志提交給開發(fā)
執(zhí)行monkey命令時若加了--ignore-timeouts
,app出現(xiàn)anr錯誤時還是會繼續(xù)執(zhí)行事件,所以日志中會有多次anr,那么我們需要在monkey日志和logcat日志中搜索anr,記錄每次發(fā)生anr的關(guān)鍵信息給開發(fā)說明,并將整個logcat日志,monkey日志,trace.txt文件發(fā)給開發(fā)文章來源:http://www.zghlxwxcb.cn/news/detail-768846.html
總結(jié):發(fā)生了什么錯誤就去日志中搜什么關(guān)鍵字,給開發(fā)提供自己執(zhí)行命令的參數(shù),統(tǒng)計發(fā)生錯誤的次數(shù),發(fā)生錯誤時所處的頁面,將錯誤前后進(jìn)行截圖,發(fā)給開發(fā),然后將整個日志記錄文件發(fā)給開發(fā)文章來源地址http://www.zghlxwxcb.cn/news/detail-768846.html
到了這里,關(guān)于adb logcat輸出日志分析和monkey輸出日志分析,提交給開發(fā)的內(nèi)容的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!