测试基础 如何使用 adb 命令实现自动化测试

蔡瑞淳 for 君海游戏QA · 2018年03月25日 · 最后由 蔡瑞淳 回复于 2019年01月28日 · 2680 次阅读

一、前提:

1.打开手机调试模式,确保手机已正常连接电脑,可在电脑上通过 adb devices 命令查看,结果如下说明连接成功:
List of devices attached
90xxxxc9 device
2.确保电脑上安装 sdk 等相关软件,可正常使用 adb 命令和 aapt 命令

二、自动化测试辅助命令

1.获取要测试的 apk 包的相关信息,比如
aapt dump badging

2.对某个手机执行卸载、安装及启动应用的操作
adb uninstall
adb install
adb shell monkey -p -v 1

3.获取手机所有控件信息,为后面执行操作做准备
adb shell uiautomator dump /sdcard/ui.xml

4.实现对具体坐标的点击操作
adb shell input tap x y

5.获取手机应用执行时的 logcat 日志:
adb logcat | grep adb shell ps | grep <package> | cut -c10-15

6.获取应用执行时的 CPU、内存等相关信息
adb shell top -n -1 | grep package
adb shell dumpsys meminfo package

三、各种辅助命令的详解

1.aapt dump badging
查看 apk 包的 packageName、versionCode、applicationLabel、launcherActivity、permission 等各种详细信息,效果图如下:

2.adb shell uiautomator dump /sdcard/ui.xml
可以获取手机屏幕上当前所有控件的信息并保存在 sdcard 下 ui.xml 文件里面,之后可通过解析 ui.xml 文件就可以拿到想要的控件信息,比如拿到坐标就可以做相关的点击操作

3.adb shell input tap x y
此命令模拟的是点击屏幕的事件,x 和 y 坐标对应的是真实的屏幕分辨率,比如手机屏幕分辨率为 1920x1080,你想点击中间位置,假设手机横屏,则 (x,y) 为 (960,540)

4.adb logcat | grep adb shell ps | grep <package> | cut -c10-15
首先 adb shell ps | grep | cut -c10-15 命令获取的是你的应用执行时对应的进程 id,然后通过 adb logcat 来抓取对应进程 id 的日志

5.adb shell top -n -1 | grep package
top 命令是 Linux 下常用的性能分析工具,能够实时显示系统中各个进程的资源使用情况。

6.adb shell dumpsys meminfo package

### 内存说明:
###VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
###RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)
###PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
###USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)
### 一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS,此条命令获取的是 PSS 信息

共收到 4 条回复 时间 点赞

感谢楼主整理,好多实用的 adb 命令~

感谢🙏楼主,非常的实用,学习啦

最后怎么实现用 SecureCRT 实时连接手机的啊,用手机 ip?端口是啥呢?

玛雅 回复

首先确保电脑正常连接手机,然后通过 SecureCRT 连接到电脑,再通过 adb shell 命令连接手机

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册