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

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

一、前提:

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

3.adb 车看设备品牌、型号、机型等信息

adb shell getprop ro.product.model

4.过滤 日志 

输出包含xxxx关键字的日志到D盘根目录的log.txt文件夹没有则创建

adb logcat | find “xxxx”  >D:log.txt  

输出指定app的日志到D盘根目录的log.txt文件夹没有则创建

adb logcat find “包名” >D:log.txt 

输出指定级别的日志到D盘根目录的log.txt文件夹没有则创建

adb logcat *:E > D:log.txt

** Log 优先级是下面的字符,顺序是从低到高 **:

  • V — 明细 (最低优先级)
  • D — 调试
  • I — 信息
  • W — 警告
  • E — 错误
  • F — 严重错误
  • S — 无记载 (最高优先级,没有什么会被记载)

选项解析 :

"-s"选项 : 设置输出日志的标签, 只显示该标签的日志;

"-f"选项 : 将日志输出到文件, 默认输出到标准输出流中, -f 参数执行不成功;

"-r"选项 : 按照每千字节输出日志, 需要 -f 参数, 不过这个命令没有执行成功;

"-n"选项 : 设置日志输出的最大数目, 需要 -r 参数, 这个执行 感觉 跟 adb logcat 效果一样;

"-v"选项 : 设置日志的输出格式, 注意只能设置一项;

"-c"选项 : 清空所有的日志缓存信息;

"-d"选项 : 将缓存的日志输出到屏幕上, 并且不会阻塞;

"-t"选项 : 输出最近的几行日志, 输出完退出, 不阻塞;

"-g"选项 : 查看日志缓冲区信息;

"-b"选项 : 加载一个日志缓冲区, 默认是 main, 下面详解;

"-B"选项 : 以二进制形式输出日志;

   输出指定选项的日志到D盘根目录的log.txt文件夹没有则创建

adb logcat -s unity >D:log.txt 




二、自动化测试辅助命令

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

adb logcat | find "Unity" > log.txt

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

 

三、各种辅助命令的详解

1.aapt dump badging 
查看apk包的packageNameversionCodeapplicationLabellauncherActivitypermission等各种详细信息,效果图如下:

 

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

3.adb shell input tap x y
此命令模拟的是点击屏幕的事件,xy坐标对应的是真实的屏幕分辨率,比如手机屏幕分辨率为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信息

原文地址:https://www.cnblogs.com/wutaotaosin/p/9647876.html