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

蔡瑞淳 for 君海游戏QA · March 25, 2018 · Last by 蔡瑞淳 replied at January 28, 2019 · Last modified by admin 恒温 · 7276 hits

一、前提:

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命令连接手机

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up