Appium自动化测试中ADB常用命令实战指南
本文汇总了Appium自动化测试中高频使用的ADB命令。内容涵盖设备连接检查、APK安装与卸载、进程管理、Shell基础操作、文件双向传输以及基于包名的Logcat日志过滤技巧,帮助测试人员提升Android测试效率。
ADB命令基础与设备连接检查
前言:
在Appium自动化测试框架中,ADB(Android Debug Bridge)命令是不可或缺的基础工具。对于从事Android端测试的工程师而言,熟练掌握并日常使用ADB命令是基本工作要求。因此,本文专门整理了一份实用的ADB命令清单,供读者参考。
关于ADB的具体定义及其环境安装步骤,网络上已有大量详尽教程,此处不再赘述,读者可自行查阅相关资料完成基础配置。
本文旨在对网络上分散的常用ADB命令进行系统性汇总,便于测试人员在实战中快速查阅和使用。
一、检查设备连接状态
执行以下操作前,请确保Android设备已开启“开发者模式”,并在设置中启用了“USB调试”功能。
1. 验证设备连接:在电脑命令行(CMD)中输入以下命令,以确认手机或模拟器是否已成功连接至电脑:

APK安装与卸载操作
二、安装应用程序(APK)
第一步:首先将需要安装的APK文件包下载并保存至电脑本地。
第二步:在CMD命令行中输入“adb install”,随后直接将APK文件拖入命令行窗口即可执行安装操作。
当命令行返回“success”字样时,即代表安装成功。
三、卸载应用程序(APK)
1. 在CMD中输入以下指令,即可删除设备上的指定应用:
>adb uninstall 包名
注意:此处“包名”指的是应用的Package Name,而非APK文件名。若不清楚包名,可使用aapt工具查看,具体命令为“aapt dump badging +apk路径”,从中可提取包名信息。
例如,以淘宝App为例,其包名为:com.taobao.taobao

若命令行返回“success”,则代表卸载操作成功。
ADB服务管理与设备重启
四:终止ADB服务器进程
adb kill-server
五:启动ADB服务器
adb start-server
六:重启Android设备
adb reboot
Shell模式与文件目录操作
七:进入Shell交互模式
注:Android系统基于Linux内核开发,通过“adb shell”命令即可进入Linux Shell交互模式,进行更底层的系统操作。
adb shell

八:查看文件详情及目录切换
成功进入Shell模式后,可使用“cd sdcard”命令切换至SD卡目录。

九:列出当前目录下的所有文件及子目录
在指定文件夹路径下,执行命令“ls -a”以列出当前目录下的所有目录及文件(包括隐藏文件)。

十:退出Shell模式
直接在命令行输入“exit”并回车,即可退出Shell模式返回CMD。

设备与电脑文件双向传输
十一:从设备下载文件至电脑
首先确定手机中需要导出的文件路径,然后先通过“exit”命令退出Shell模式,再执行以下操作:
命令格式:adb pull [手机文件路径] [电脑目标路径]
注意事项:手机文件路径使用左斜杠“/”,电脑目标路径使用右斜杠“\”。注意:不能直接导出至电脑根目录,必须指定电脑端已存在的文件夹路径。

如上图所示,若命令行提示成功,则代表文件已成功导入本地电脑。

2. 若需导出文件夹内的全部内容,无需指定具体文件名,只需指定到文件夹层级即可,例如:/sdcard/DCIM/Camera/Screenshots D:\Testapk

十二:将电脑文件导入手机
.将电脑文件导入手机的操作与上述下载操作相反,具体步骤如下:
命令格式:adb push [电脑文件路径] [手机目标路径]
若需在手机上创建新文件夹,可先通过“adb shell”进入Shell模式,然后使用“mkdir”命令创建目录。
如下示例:我在SD卡根目录下创建了一个名为“haha”的文件夹。

接下来将文件导入该手机目录:
前提操作:同样需要先通过“exit”命令退出Shell模式。
实现效果如下:

检查“haha”文件夹下是否已成功导入文件:

如图所示,文件已成功导入手机指定目录!
总结:CMD命令与Shell模式下的命令格式存在差异,原因在于CMD运行于Windows系统,而Shell基于Linux系统。例如,在CMD中返回上级目录使用“cd..”(cd后跟两个点),而在Shell中则使用Linux标准命令“cd -”(注意cd与减号之间需有空格)。因此,在Shell模式下必须使用Linux兼容命令。昨日编写至第十二部分时已下班,今日继续补充剩余内容。
Logcat日志抓取与过滤技巧
十三:Logcat日志输出与抓取
在App测试过程中,遇到异常情况时查看日志是排查问题的关键步骤。本文将介绍如何将日志输出至手机SD卡或电脑指定目录,这主要依赖于logcat命令的使用。
以下操作示例基于Windows平台:adb logcat | find
若在Linux平台操作,可将“find”替换为“grep”:adb logcat | grep
注:Windows DOS环境下默认不包含grep指令,故Windows用户需使用find。
1. 将日志保存至电脑指定目录,例如:d:\Testapk

2. 使用find命令过滤特定包名的日志
若直接运行“adb logcat”抓取日志,会包含大量系统无关信息。若仅需抓取被测App的日志,可通过指定包名进行过滤。
命令示例:adb logcat | find "com.mld.Lantin" >d:\Testapk\22.txt


3. 终止Logcat抓取进程
1. 终止Logcat抓取,可使用Ctrl+C快捷键结束进程,此为手动操作方式。
4. Logcat其他高级功能
1. 在CMD中输入“adb logcat -help”可查看其他可用功能选项。
命令示例:adb logcat -help
C:\Users\admin>adb logcat -help
Unrecognized Option h
Usage: logcat [options] [filterspecs]
**选项**:
-- "-s"选项 : 设置输出日志的标签, 只显示该标签的日志;
-- "-f"选项 : 将日志输出到文件, 默认输出到标准输出流中, -f 参数执行不成功;
-- "-r"选项 : 按照每千字节输出日志, 需要 -f 参数, 不过这个命令没有执行成功;
-- "-n"选项 : 设置日志输出的最大数目, 需要 -r 参数, 这个执行 感觉 跟 adb logcat 效果一样;
-- "-v"选项 : 设置日志的输出格式, 注意只能设置一项;
-- "-c"选项 : 清空所有的日志缓存信息;
-- "-d"选项 : 将缓存的日志输出到屏幕上, 并且不会阻塞;
-- "-t"选项 : 输出最近的几行日志, 输出完退出, 不阻塞;
-- "-g"选项 : 查看日志缓冲区信息;
-- "-b"选项 : 加载一个日志缓冲区, 默认是 main, 下面详解;
-- "-B"选项 : 以二进制形式输出日志;
**过滤项格式** : <tag>[:priority] , 标签:日志等级, 默认的日志过滤项是 " *:I " ;
-- V : Verbose (明细);
-- D : Debug (调试);
-- I : Info (信息);
-- W : Warn (警告);
-- E : Error (错误);
-- F : Fatal (严重错误);
-- S : Silent(Super all output) (最高的优先级, 可能不会记载东西);
'*' by itself means '*:D' and <tag> by itself means <tag>:V.
If no '*' filterspec or -s on command line, all filter defaults to '*:V'.
eg: '*:S <tag>' prints only <tag>, '<tag>:S' suppresses all <tag> log messages.
If not specified on the command line, filterspec is set from ANDROID_LOG_TAGS.
If not specified with -v on command line, format is set from ANDROID_PRINTF_LOG
or defaults to "threadtime"
注:在使用logcat时,建议参考上述help文档内容,其功能详尽,此处不再逐一列举。读者可根据实际需求,参照上图文档自行探索使用。
以上关于Appium结合Python进行ADB常用命令的分享即为全部内容,希望能对各位测试同仁有所帮助,也欢迎大家多多支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













