zoukankan      html  css  js  c++  java
  • 嘘,我已经瞒着开发解锁APP日志文件抓取及分析啦!

    ——————·今天距2020年87·——————

    这是ITester小栈第49次推文


    大家好,我是coco小锦鲤

    经过之前的APP系列

    我们知道了APP的测试流程

    也列举了APP通用测试用例

    还解答了APP常见的问题

    并且搭建好ADB环境

    熟知基本的ADB命令

    今天介绍Android日志文件抓取及分析

    主要包括APP日志查看工具

    APP日志文件分类

    APP日志文件抓取详解

    APP日志相关面试题分享

    APP日志查看工具

    (一)DDMS

    Dalvik Debug Monitor Service ( Dalvik调试监控服务) ,可视化的图形界面调试监控工具。不同等级log信息显示的颜色不同,使用起来方便直观。ddms监控系统或应用日志、监控线程状态、VM使用状况(内存泄漏通过它来判断)、模拟短信电话事件、生成logcat日志、文件管理及截屏等功能。

    打开方式:

    (前提:已增加JAVA环境变量及androidsdk环境变量)

    1.双击android-sdk windows ools (部分可能在platform-tools )目录下ddms.bat直接启动;

    2.在eclipse右上角添加工具图标中,点击ddms;

    使用方法:

    1.接入设备, ddms设备列表中会识别到该设备(如果没有识别,可尝试结束任务管理器中所有adb相关的进程,并重置ddms的adb );

    2.设备列表中选中需要抓取的设备名称, logcat区会显示该设备的相关日志信息,默认显示verbose;

    3.选择日志信息等级为error ,若程序崩溃,抓取error等级下与所测应用相关的日志即可;

    使用示例:

    (二)LOGCAT

    命令行工具,输出命令行的日志信息。

    打开方式:

    (前提:已增加JAVA环境变量及android sdk环境变量)

    进入cmd ,进入命令行后输入adb logcat;

    使用方法:

    1.接入设备,且adb devices中有设备信息;

    2.输入adb logcat ,即可打印设备相关的日志信息,默认打印verbose,若只是想抓取程序崩溃的相关日志信息,可输入adb logcat *:E ,选择与所测应用相关的日志即可;

    使用示例:

    (三)Monkey中断日志

    Monkey运行时,遇到异常并报错时,产生的命令行日志信息。

    打开方式:

    打开cmd ,进入命令行后输入adb shell ,进入shell命令行后输入monkey -p com.xxx.xxx -V 1000

    使用方法:

    1.接入设备,且adb devices中有设备信息;

    2.打开cmd,输入monkey -p com.xx.xxx -v 1000 ,当monkey异常中断(即应用程序崩溃或接收到异常、应用程序产生应用程序不响应( ANR )异常两种异常)后;

    3.查看异常日志是否与所测的APP相关,如相关则保存异常输入的日志信息即可;

    使用示例:

    LOG文件分类

    实时打印的主要有:logcat main,logcat radio,logcat events,tcpdump等。

    状态信息的有:adb shell cat /proc/kmsg ,adb shell dmesg,adb shell dumpstate,adb shell dumpsys,adb bugreport等。

    LOG文件抓取详解

     

    一、实时打印

    //打印应用程序的log

    adb logcat -b main -v time>app.log  

    //打印射频相关的log

    adb logcat -b radio -v time> radio.log 

    //打印系统事件的日志,比如触屏事件

    adb logcat -b events -v time 

    //android log的抓取

    adb logcat

    //kernel log的抓取

    adb shell cat /proc/kmsg

    //log 信息的保存

    mkdir  /data/anr

    logcat *:V > /data/anr/android

    demsg >/data/anr/kernel

    //按ctrl+c结束log输出

    adb pull /data/anr ./log/

    tcpdump 是很有用的,对于TCP/IP协议相关的都可以使用这个来抓,adb shell tcpdump -s 10000 -w /sdcard/capture.pcap。

    二、状态信息

    1.bugreportadb bugreport>bugreport.log),里面包含有dmesg,dumpstate和dumpsys。

    2.dumpstate是系统状态信息,里面比较全,包括手机当前的内存信息、cpu信息、logcat缓存,kernel缓存等等。

    3.adb shell dumpsys这个是关于系统service的内容,这个命令还有更详尽的用法,比如adb shell dumpsys meminfo system是查看system这个process的内存信息。

    4.kmsg抓取

    adb shell cat /proc/kmsg > kmsg.txt,打开后查msm_kgsl字段

    说明:用于检索用printk生成的内核消息,任何时刻只能有一个具有超级用户权限的进程可以读取这个文件。

    5.dmsg抓取

    adb shell dmesg > dmesg.txt

    说明:dmesg用来显示开机信息,kernel会将开机信息存储在ring buffer中。若是开机时来不及查看信息,可利用dmesg来查看。dmesg是kernel的log,凡是跟kernel相关的,比如driver出了问题(相机,蓝牙,usb,启动,等等)开机信息亦保存在/var/log目录中,名称为dmesg的文件里,more /var/log/dmesg

    6.工程模式下log的抓取

    对于Apollo手机请拨打*#*#8888#*#* ,然后勾选相应的LOG。待测试结束后,通过SD卡导出LOG到PC。

    三、Log分析:

    Get Log from Android System
    adb bugreport > bugreport.txt
    copy bugreport to the current directory.

    bugreport里面包含了各种log信息,大部分log也可以通过直接运行相关的程序来直接获得.

    获取该log:读取文件/proc/wakelocks

    内核对一些程式和服务唤醒和休眠的一些记录:

    KERNEL CPUFREQ

    (Linux kernel CPUfreq subsystem) Clock scaling allows you to change the

    clock speed of the CPUs on the fly.

    This is a nice method to save battery power, because the lower the

    clock speed is, the less power the CPU consumes.

    PROCESSES

    面试题分享

    作为测试怎么在app发生异常的时候提交有效信息:

    1、描述复现场景(复现步骤、复现现象)

    2、发生异常截图

    3、日志文件

    (1)如果发生了崩溃(crash):

    adb logcat -v time >本地文件中

    直接拉取dropbox目录中的data_app_crash开头的文件

    (2)如果发生的无响应(ANR):

    发生单次ANR:

    adb logcat -v time 获取logcat,拉取/data/anr/traces.txt

    发生多次ANR:

    拉取dropbox目录中的data_app_anr开头的文件

    跑monkey压力稳定性测试,记得清空dropbox里面的相关的异常文件信息哦

    最后是今天的分享:pytorch深度学习

    ITester软件测试小栈今日分享

    分享内容

    pytorch(包括视频、代码、课件等)

    领取方式

    微信公众号后台回复:pytorch

    有图有真相

    以上


    That‘s all

    ITester小栈

    往期内容宠幸

    叮—这有一打让你666的测试终极资料包,请查收!

    QQ空间面试题放送,速度教科书式扑街补救offer!

    金九银十加薪季,测试题预热一波。

    APP测试流程及测试点总结;

    无法拒绝APP测试的理由,如果你不知道,是我的错!

    给我两小时,我能写很长长长长长长的APP测试用例!

    速看,APP测试之ADB最全指南!

    说好不哭,现在就带你了解直播类音视频测试!

    视频码率/帧率/采样率,了解一下?

    windows性能分析指标解释

    手机信号G、E、O、3E代表什么意思?

    IOS手机耗电量测试的一个文艺玩法


    快来星标 置顶 关注

     T ester

    想要获取相关资料软件 ?

    Q群:701841415

  • 相关阅读:
    windows环境下pycharm如何设置Linux编码
    centos安装Nginx1.9.9
    http无状态协议,cookie和session详解(一)
    windows7安装flaskmysqldb遇到的坑
    python文件处理b模式
    windows7安装MySQLpython遇到的坑
    flask数据库迁移理解及命令
    Python循环文件推荐的方式,可用于读取文本最后一行或删除指定行等
    XMLHttpRequest
    Javascript鼠标事件
  • 原文地址:https://www.cnblogs.com/ITester520/p/13203391.html
Copyright © 2011-2022 走看看