appium---adb logcat 命令详解

时间:2023-03-10 05:48:45
appium---adb logcat 命令详解

  我们在做app测试的过程中,肯定会遇到需要抓取日志问题,这几天安静也遇到了此问题,后台日志生成的太多了,保存本地了吧,设备多没有这么USB,通过wifi连接又太麻烦,你说这怎么是好?不要着急,我们往下看

adb logcat介绍

adb 是android一个操作命令,前面有讲过----常用的adb命令

logcat 是android一个打印日志的工具,当然也可以通过命令行进行操作。最主要的是不仅仅可以PC端使用,还可以在app内部进行使用

logcat原理

appium---adb logcat 命令详解

格式

[adb] logcat [<option>] … [<filter – spec>] …

PC端使用:

adb logcat

shell模式下使用:

logcat

logcat 命令行参数

参数 描述
-b 加载一个可使用的日志缓冲区供查看,比如event和radio。默认值是main
-c 清除缓冲区中的全部日志并退出(清除完后可以使用-g查看缓冲区)
-d 将缓冲区的log转存到屏幕中然后退出
-f  将log输出到指定的文件中<文件名>.默认为标准输出(stdout)
-g 打印日志缓冲区的大小并退出
-n  设置日志的最大数目<count>,默认值是4,需要和-r选项一起使用
-r  没<kbytes>时输出日志,默认值是16,需要和-f选项一起使用
-s 设置过滤器
-v  设置输出格式的日志消息。默认是短暂的格式。支持的格式列表

PC端使用

pc端使用肯定是结合这adb进行使用

# 查看日志
adb logcat # 过滤关键字日志 win用find mac 用grep
adb logcat | find "xxxxx" # 保存日志
adb logcat >路径\名称.txt # 保存过滤日志
adb logcat >find "xxxx" >路径\名称.txt # 清空缓存日志
adb logcat -c # 打印缓冲区大小并退出
adb logcat -g

接下来就是重点了,也是这个地方帮我解决了问题。

app端

在app端使用的时候必须要通过adb shell 进入到app内中,进入adb shell 其实就是android的终端(也就是liunx系统中,就可以敲命令了)

我们通过几个需求来了解app端的log使用方法:

需求1:实时过滤“XXX”日志并保存下来

PC端的方法上面已经写过了可以参考下,app端的可以这样写

# app端保存日志
logcat -s 标签名 -f /app内存路径/名称.txt # 通过保存在app中,然后再通过adb pull 提取出来

我们知道在PC端中-s是过滤关键字,但是这个地方不是,这个地方是过滤的日志标签名(就是打印日志前面写的标签类型)

需求2:不连接usb实时保存日志

可能会有人想通过wifi连接,但是如果我们的app不在办公室测试的时候怎么通过wifi连接呢?

# 不一直连接usb实时抓取日志

logcat -s 标签名 -f /路径/名称.txt &

# & 表示后台运行

通过这个命令,只要手机不关机,命令就会一直进行中,这样我们不用实时连接USB也能实时抓取日志了

注意:app的命令必须要进入到adb shell 的状态下

就是这个命令帮助了安静解决了领导的要求, 监控的设备多了,还不用连接USB。只需要2行命令,多么简单,快去尝试下吧~~~