软件测试 | abd常用命令是什么

518 篇文章 3 订阅
514 篇文章 2 订阅

1、adb命令

adb 全称为 Android Debug Bridge(Android 调试桥),是 Android SDK 中提供的用于管理 Android 模拟器或真机的工具。

adb 是一种功能强大的命令行工具,可让 PC 端与 Android 设备进行通信。adb 命令可执行各种设备操作,例如安装和调试应用,并提供对 Unix shell 的访问权限。

2、adb组成

adb采用了客户端-服务器(c/s)模型,包括3部分,如图

 adb的Client:当adb运行在计算机上时,我们可以在命令行中通过adb命令来调用adb的客户端(Client)。Client本质上就是Shell,它可以发送命令给Server。Client发送命令时,首先会检测PC上有没有启动Server,如果没有启动Server,则会自动启动一个Server,然后将命令发送到Server。

adb的Server:运行在计算机后台的进程,用于管理客户端与运行在模拟器或真机上的守护进行通信。

adb的daemon:守护进程作为一个后台进程在Android设备或模拟器系统中运行,它的作用是连接adb服务端,并且为运行在主机上的adb客户端提供一些服务。

3、adb工作原理

当adb客户端启动时,客户端会先检查adb服务端是否启动。如果没有,会先启动服务端进程。adb服务端启动后,会与计算机上的5037端口绑定,并监听adb客户端发出的命令。

然后服务端会与正在运行的Android设备建立连接。服务端通过扫描计算机上的5555到5585之间的奇数号端口查找Android设备。服务端一旦发现Android设备都使用一对端口,偶数端口用于控制台连接,奇数端口用于与adb连接。

服务端与所有Android设备建立连接后,就可以使用adb命令来访问Android设备了。服务端会管理已经建立的连接,并处理来自adb客户端的命令,如图

 4、启用adb调试

Android系统的移动设备(如手机)可以通过USB连接到adb,连接时需要在移动设备的系统设置中启动USB调试(位于手机的开发者选项下),启动USB调试后,设备上的adb守护进程就会被启动,adb服务端才可以和Android设备建立连接。

如果希望计算机连接Android模拟器或者真机,需要先打开USB调试开关。

(1)模拟器,不需要手动设置USB调试开关,默认就是打开USB调试开关。

(2)真机设备,需要手动打开USB调试开关。

1)首先需要在计算机上安装Android手机驱动。

2)然后打开移动设备的设置应用,进入关于界面,然后开启USB调试模式。

5、adb常用命令

1.adb命令格式

adb [-d|-e|-s <serialNumber>] <command>

-d:指定当前唯一通过USB连接的Android设备为命令目标。

-e:指定当前唯一运行的模拟器为命令目标。

-s:指定相应serialNumber号的设备/模拟器为命令目标。

命令格式中方括号的内容是可选的,尖括号中的内容是必填的。方括号中参数可以指定设备,关于设备的指定有3个参数可以使用:-d、-e和-s。其中使用最多的是-s。程序员在连接多台设备的时候,一般都是使用-s加上设备的序列号这种方式去指定具体设备。

一台计算机上可以同时连接多台设备,当计算机上连接多台设备时,我们如果想通过adb操作某台设备,必须在命令中指定设备的序列号,这样命令才可以在某个特定的设备上被执行。

2.查询设备

把Android设备连接到adb服务端后,需要确认设备的连接状态。这时可以使用查询命令进行查询。

3.连接模拟器(以MuMu模拟器为例)

adb connect 127 0.0.1:7555
adb devices
  • adb connect命令可以通过WLAN的方式连接到模拟器,7555为MuMu模拟器使用的计算机上的端口。

  • adb devices可以查询设备连接的状态。

Windows系统中,连接模拟器需要先执行connect命令去连接模拟器,127.0.0.1是本地的IP地址,因为模拟器是安装在本地计算机上的,所以要使用本地的IP地址,加上模拟器使用的一个端口来连接模拟器。MuMu的端口是7555,如果使用的是其他类型的模拟器,需要先了解它用的计算机上端口是什么,然后再去连接。macOS系统中连接模拟器不需要执行connect命令,直接执行adb kill-server && adb devices命令即可。

4.连接真机

真机直接用USB连接到计算机,不需要执行connect命令。

在计算机上直接用adb devices命令,可查看已经连接到计算机上的设备列表。

hogwarts@ ~ % adb devices
List of devices attached
emulator-5554  device

使用命令后,如果设备已经成功连接到计算机上,那么设备列表中就会展示已连接设备的信息。主要信息包括如下。

emualotr-5554:设备序列号。

device:设备连接状态为成功。

5.安装或卸载App

测试人员在测试App过程中,如果需要安装或者卸载App,可以直接用adb命令来操作。

  • 普通安装:adb install <apk 路径>

  • 覆盖安装:abd install -r<apk 路径>

  • 完全卸载:adb uninstall <包名>

  • 保留配置文件的卸载:adb uninstall -k <包名>

6、设备与计算机传输文件

adb命令支持计算机和Android设备之间的文件互传,例如,要提取Android设备中的日志文件到本地计算机,就可以通过adb命令的方式来完成。

从计算机上传文件至设备:adb push <计算机路径><设备路径>

从设备上复制文件至计算机:adb pull <设备路径><计算机路径>

7、日志

打印与计算机连接的设备的日志(log)信息命名格式与描述如下。

  • 屏幕输出日志:adb logcat

  • 通过标签过滤信息:adb logcat -s标签

  • 显示时间:adb logcat -v time

  • 输出所有信息:adb logcat -v long

  • 输出日志到文件:adb logcat -v time > log.txt

  • 清楚缓存中日志信息:abd logcat -c

使用adb shell 命令远程登录Android系统,可以进入Android设备的系统内部。进入Android设备系统内部后,测试人员在系统内部即可以执行一些简单的Lunix命令,也可以执行很多特有的命令。

使用adb shell 命令有两种方式。

一种是直接在adb shell后面跟上命令

adb [-s serial_number]  shell <command>

例如:

hogwarts@ ~ % adb shell ls
acct
cache
charger
config
d
data
default.prop
dev
etc
...

另一种是在Android设备上启动交互adb shell

adb [-s serial_number] shell

例如,进入Android设备内部,可以查看设备内部的目录结构和内容,执行的命令如下:

hogwarts@ ~ % adb shell
root@x86:/ # ls
acct
cache
Charger
config
d
data
default.prop
dev
...

要退出交互式adb shell,可以按Ctrl+D组合键或输入“exit” 实现退出操作。

8、Android 常用测试命令

1.设备截图/录屏

在测试过程中,测试人员如果需要对测试过程中进行截图或者录屏,也可以使用adb命令完成

截图:adb shell screencap<设备路径>

录屏:adb shell screenrecord<设备路径>

2.调用Activit管理器

在adb shell中,我们可以使用Activity管理器(am)工具发出命令以执行各种系统操作,如启动Activity、强行停止进程、修改设备屏幕属性等。

在测试过程中,如果我们需要启动App或强制关闭App,可以通过adb命令来实现。

  • 启动应用(App):adb shell am start -n <包名>/<Activity 名>

  • 强制停止应用(App):adb shell am force-stop<包名>

3.调用软件包管理器

在adb shell中,我们可以使用软件包管理器(pm)工具发出命令,以对Android设备上安装的App包执行一些操作。

如果需要查询Android设备里都安装了什么应用(App),我们即可以使用adb shell pm list 命令来查看,也可以再上述命令中加上不同的参数区查看不同类型的应用,还可以通过adb命令来清楚应用中相关的数据。具体命令格式如下。

  • 显示Android 设备中安装的所有应用:adb shell pm list packages.

  • 只显示系统应用:adb shell pm list packages -s.

  • 只显示第三方应用:adb shell pm list packages -3

  • 删除与App 包关联的所有数据:adb shell pm clear<包名>

4.adb shell dumpsys

dumpsys是一种在Android设备上运行的工具,它可提供有关系统服务的信息。我们可以在adb中使用命令行调用dumpsys,用以获取链接的设备上运行的所有系统服务的信息。

在测试中,如果我们需要通过adb命令启动App,则需要知道App的包名和人口的Activity名。这个时候,我们就可以通过下面这个条命令获取到这两个信息。

注:这个场景下,需要我们启动应用程序,让应用程序在前台运行,然后再执行下面的命令。

adb shell dumpsys activity | grep mFocusedActivity
 
    hogwarts@ ~ % adb shell dumpsys activity | grep mFocusedActivity
      mFocusedActivity: ActivityRecord 9date986 u0
      com.xueqiu.android/.common.MainActivity t139}

上面的信息中展示了当前的App包名和Activity名称。

  • 包名:com.xueqiu.android。

  • Activity 名:common.MainActivity。

5.adb uiautomator

adb 命令还支持直接获取App的页面信息。页面信息包含了页面中元素的属性,我们做自动化测试时,可以通过这些元素的属性去定位元素。获取到的页面元素布局会输出到一个xml文件中。

  • 获取当前窗口的UI布局简化信息:adb shell uiautomator dump --compressed。

hogwarts@ ~ % adb shell uiautomator dump --compressed
UI hierchary dumped to : /sdcard/window_dump.xml

不指定输出文件路径时,dump输出的文件默认存储路径为/sdcard/window_dump.xml。

我们可以通过adb pull 命令把文件传输到计算机中,然后用UI Automator Viewer 工具打开文件并查看页面布局。

  • 指定输出文件路径:adb shell uiautomator dump file<设备路径>。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值