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 44 是返回键。常用的: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 操作。
不需要背命令,保存这篇文章,遇到场景翻出来用就行。
觉得有用?点个「在看」给身边的测试小伙伴看看吧 👇
夜雨聆风