乐于分享
好东西不私藏

App测试新人必会的adb操作,7个场景就够了

App测试新人必会的adb操作,7个场景就够了

App测试新人必会的adb操作,7个场景就够了

测 App 不会 adb,就像开车没有后视镜。

App 闪退了不知道怎么抓日志、想截图但手机不在手上、查包名不知道用哪个命令。adb 就是干这些事的。

这篇不讲原理,直接上场景。

场景1:确认手机连上了

做任何操作之前,先确认手机和电脑连通了。

手机打开开发者选项,开启 USB 调试。插上线后在终端跑:

adb devices

如果看到类似这样的输出:

List of devices attachedemulator-5554 device

说明连接成功。device 表示正常,offline 表示连上了但没授权,unauthorized 表示手机端没点同意。

常见连不上的原因:

  • 没开 USB 调试:设置 → 开发者选项 → USB 调试
  • 没点授权弹窗:插线后手机上会弹"允许 USB 调试吗",要点确定
  • 驱动问题:Windows 下可以装一个手机厂商的 USB 驱动

每天开工前跑一遍 adb devices 确认状态,养成习惯。

场景2:App崩溃了抓日志

App 闪退了,开发问"有日志吗?"

这是测试新人最怕的问题。有 adb 就不慌。

只看崩溃日志:

adb logcat -b crash

这个命令只输出崩溃相关的日志,不会刷其他无关信息。

看所有日志,但只过滤你关心的 App:

adb logcat | grep com.example.myapp

把包名替换成你的 App 包名。建议把这个命令单独开一个终端窗口,测到什么异常直接在这里搜关键词。

抓整个日志保存到文件:

adb logcat -d > crash_log.txt

-d 是一次性输出当前所有日志然后退出,不会持续刷屏。把文件发给开发,他们自己看。

贴士:测 App 的时候,先开好 adb logcat | grep 包名 这个命令。复现 bug 后,看终端里有没有 ERROR 关键词,有的话直接复制那几行到 bug 单里。

场景3:装测试包和清数据

装包:

开发扔给你一个 apk 文件,装一下:

adb install app-debug.apk

常见报错:

  • INSTALL_FAILED_ALREADY_EXISTS:手机上已安装同名 App,加 -r 覆盖安装
  • INSTALL_FAILED_VERSION_DOWNGRADE:新版本号比旧的低,先卸载再装
adb install -r app-debug.apk

清数据重新测:

测到一半,想从头来过。不需要卸载重装,清数据就行:

adb shell pm clear com.example.myapp

这个命令会清除 App 的所有本地数据,回到首次安装状态。测登录、测引导页、测首次启动场景时特别有用。

卸载:

adb uninstall com.example.myapp

场景4:提bug时截图

提 bug 的时候,一张截图比三行文字管用。

截图到相册:

adb shell screencap /sdcard/screenshot.png

截图后直接拉到电脑,一次搞定:

adb shell screencap /sdcard/screenshot.png && adb pull /sdcard/screenshot.png

场景5:拉取手机文件到电脑

场景:你在手机上生成了某些测试结果文件,或者想查看 App 的数据库文件。

adb pull /sdcard/测试数据.txt ./

把手机上的文件拉到当前目录。数据库文件通常在:

adb shellrun-as com.example.myappcd databases/cp test.db /sdcard/exitadb pull /sdcard/test.db ./

反向操作,把电脑文件推到手机上:

adb push ./test_case.csv /sdcard/

场景6:查包名和App信息

不知道包名是什么?几种方式查:

列举所有包名,过滤关键词:

adb shell pm list packages | grep 微信adb shell pm list packages | grep tencent

看手机上当前打开的 App 是什么:

adb shell dumpsys window windows | grep mCurrentFocus

输出类似:mCurrentFocus=Window{xxx com.tencent.mm/com.tencent.mm.ui.LauncherUI}

com.tencent.mm 就是微信的包名。

查看 App 的详细信息:

adb shell dumpsys package com.example.myapp

能看到版本号、权限列表、Activity 列表、签名信息。新包到手上时跑一下,看看和上个版本有什么区别。

场景7:模拟点击和滑动

场景:你不想手动点点点,或者需要在自动化脚本里模拟操作。

模拟点击:

adb shell input tap 500 800

坐标 x=500, y=800。怎么知道坐标?打开开发者选项里的"指针位置",点一下就能看到坐标。

模拟滑动:

adb shell input swipe 500 1200 500 400

从 (500,1200) 滑到 (500,400),模拟上滑翻页。

模拟按键:

adb shell input keyevent 4

4 是返回键。常用的:4=返回、3=Home、26=电源键、24=音量+、25=音量-。

贴士:做兼容性测试的时候很管用。多个机型,写个脚本统一操作,不用每个手机手动点。

7个场景速查表

确认连接:

adb devices

只看崩溃日志:

adb logcat -b crash

装测试包:

adb install -r app.apk

清数据从头测:

adb shell pm clear 包名

截图+拉到电脑:

adb shell screencap /sdcard/s.png && adb pull /sdcard/s.png

查当前打开的App:

adb shell dumpsys window windows | grep mCurrentFocus

模拟点击:

adb shell input tap x y

写到最后

这 7 个场景覆盖了 App 测试新人 90% 的 adb 操作。

不需要背命令,保存这篇文章,遇到场景翻出来用就行。

觉得有用?点个「在看」给身边的测试小伙伴看看吧 👇

相关学习资料