Android稳定性测试之Log分析

时间:2021-05-17 07:36:24

做手机自动化测试已经快两年了,很久没写Blog了。今天抽空总结一下。

用自动化做稳定性测试,主要是为了发现系统或者应用出现FC/ ANR/ Reboot/ Freeze等问题。

先详细说下各种问题对应Log的关键字:

一. FC: 所有FC在EventLog中对应的关键字是“am_crash”。

  1. 常规FC,在Main/Sys.log 关键字 "FATAL EXCEPTION"

  2. Native Crash,在Main/Sys.log 关键字 "backtrace"

二.ANR:在EventLog中对应的关键字是“am_anr”。

  在Main/Sys.log 中关键字“ANR IN”,并且会生成相应的trace文件。

  ANR 主要原因有以下三种:

  1. KeyDispatchTimeout(5 seconds) --主要类型按键或触摸事件在特定时间内无响应;

  2. BroadcastTimeout(10 seconds)BroadcastReceiver在特定时间内无法处理完成;

  3. ServiceTimeout(20 seconds) --小概率类型Service在特定的时间内无法处理完成。

三.Reboot:主要分Framwork层重启和底层重启。所有重启在Main/Sys.log 中关键字"Entered the Android system server!"。

  1.Framework 层重启(快速重启,系统开机时间不变):在Main/Sys.log 对应关键字“Watchdog killing system proces”/"system_server_crash";

  2.底层重启(系统开机时间重置);在Main/Sys.log 对应关键字“Kernel panic”

四. Freeze: 待分析

拿到一份Log,我一般的分析流程是> Event.log> Main/Sys.log> Tarce.log。

注:常见抓Log 方法

1. 停止MTKlog

am broadcast -a com.mediatek.mtklogger.ADB_CMD -e cmd_name stop --ei cmd_target 1

2.打开MTKlog

am broadcast -a com.mediatek.mtklogger.ADB_CMD -e cmd_name start --ei cmd_target 1

3. adb logcat -v time > logcat.txt

4. adb shell cat /proc/kmsg > kernel.txt

5. adb pull data/aee_exp