一:前言
在日常测试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文件)