软件测试

APP测试辅助神器之ADB

2020-04-25  本文已影响0人  测试allen说

知乎首发地址:https://zhuanlan.zhihu.com/p/134135268

作者:捉虫布道人

ADB,即 Android Debug Bridge,ADB具有安装卸载apk、拷贝推送文件、查看设备硬件信息、查看应用程序占用资源、在设备执行shell命令等功能,是 Android 开发/测试人员不可替代的强大工具,必须将常用的 adb 命令熟记于心, 将会为 Android 测试带来很大的方便,其中很多命令将会用于自动化测试的脚本当中。

一、ADB安装

下载adt-bundle-windows,并解压到本地文件夹:D:\adt-bundle-windows;并配置其环境变量。

在cmd窗口验证ADB安装是否成功:

C:\Users\chang>adb version

Android Debug Bridge version 1.0.31

二、ADB连接手机或模拟器

当您连接运行 Android 4.2.2 或更高版本的设备时,系统将显示一个对话框,询问您是否接受允许在这台计算机上调试的 RSA 密钥。这种安全机制可以保护用户设备,因为它可以确保只有在您能够解锁设备并确认对话框的情况下才能执行 USB 调试和其他 ADB 命令。

Android手机用usb数据线连接到pc的usb口上(或启动模拟器)

打开手机的开发者模式(默认没打开):设置->关于手机->版本号10.0.0.162,连续点五次以上,会提示已经打开开发者模式

在设置的最上端,搜索“开发人员选项”,点进去

勾选其中的USB调试,确定弹出的提示框

在屏幕的通知栏,点击usb连接的通知,选传输文件mtp

在cmd->adb devices,如果能够列出设备的序列号就说明环境搭建成功

C:\Users\chang>adb devices

List of devices attached

127.0.0.1:56001 device

三、常见的ADB命令

1、列出所有的设备(模拟器、真机)

如果有多个设备连接的话,在使用ADB的时候需要使用-s参数指定设备的序列号,如adb -s emulator-5554 shell top。

C:\Users\chang>adb devices

List of devices attached

127.0.0.1:56001 device

emulator-5554 devices

2、获取设备状态

设备的状态有 3 种,device , offline , unknown

device:设备正常连接

offline:连接出现异常,设备无响应

unknown:没有连接设备

C:\Users\chang>adb get-state

device

3、 开启adb服务

C:\Users\chang>adb start-server

* daemon not running. starting it now on port 5037 *

* daemon started successfully *

4、关闭adb服务

C:\Users\chang>adb kill-server

5、adb logcat 查看Log日志信息(熟练掌握)

    #比较直接的方法

    adb logcat

    #-v的选项:brief(默认的、简要的) process tag thread raw time threadtime long

    adb logcat -v time

    #打印在控制台上,不太好查阅,能不能直接写到文件中去

    adb logcat -v time > e:\log.txx

    #日志等级,每一条日志记录都有一个等级的

    V:所有的信息都打印

    D:debug调试信息

    I: Information,信息

    W:warning,警告,编译器认为你可能有问题;实际上可能没问题

    E:error,错误

    F: fatal,致命的

    S:静默的,啥也不打印到日志

    #通过分析,v、s没啥用,D、I、W对我们测试人员来说用处也不大,需要过滤掉

    adb logcat -v time *:W > e:\log1.txt

6、挂载到Linux的空间

C:\Users\chang>adb shell

root@iToolsAVM_T0018628S:/ # ls

ls

acct

cache

config

d

data

default.prop

dev

etc

file_contexts

fstab.vbox86

init

init.environ.rc

init.rc

init.trace.rc

init.usb.rc

init.vbox86.rc

init.vbox86p.rc

mnt

proc

property_contexts

root

sbin

sdcard

seapp_contexts

sepolicy

storage

sys

system

ueventd.goldfish.rc

ueventd.rc

ueventd.vbox86.rc

vendor

7、 获取linux下运行系统进程

adb shell top -n 1 -d 1

-n 1:表示获取后台进程的次数

-d 1:获取多次的时候,每次之间的时间间隔1秒

C:\Users\chang>adb shell top -n 1 -d 1

User 0%, System 0%, IOW 0%, IRQ 0%

User 1 + Nice 0 + Sys 1 + Idle 400 + IOW 0 + IRQ 0 + SIRQ 0 = 402

  PID PR CPU% S  #THR    VSS    RSS PCY UID      Name

2029  2  0% S    61 998000K  72336K    system  system_server

    2  0  0% S    1      0K      0K    root    kthreadd

    3  0  0% S    1      0K      0K    root    ksoftirqd/0

    4  0  0% S    1      0K      0K    root    kworker/0:0

    5  0  0% S    1      0K      0K    root    kworker/0:0H

    6  0  0% S    1      0K      0K    root    kworker/u8:0

    7  2  0% S    1      0K      0K    root    rcu_preempt

    8  3  0% S    1      0K      0K    root    rcu_sched

    9  0  0% S    1      0K      0K    root    rcu_bh

  10  3  0% S    1      0K      0K    root    rcuop/0

  11  2  0% S    1      0K      0K    root    rcuos/0

  12  0  0% S    1      0K      0K    root    rcuob/0

8、 安装应用程序手机或模拟器

C:\Users\chang>adb install e:\data\2048.apk

3428 KB/s (24140275 bytes in 6.875s)

        pkg: /data/local/tmp/2048.apk

Success

此安装方式,如果应用已经存在,会安装失败,推荐使用覆盖安装,adb install -r e:\data\2048.apk

9、应用程序的包名

C:\Users\chang>adb shell dumpsys window | findstr mCurrentFocus

  mCurrentFocus=Window{4a9e5314 u0 com.lilysgame.calculatorjw/com.lilysgame.calculator.b.Es}

C:\Users\chang>adb uninstall com.lilysgame.calculatorjw

Success

10、将本地的文件推送到远程设备上

adb push <local> <remote>

C:\Users\chang>adb push e:\data\2048.apk /data

3051 KB/s (24140275 bytes in 7.724s)

11、将远程设备上文件拉取到本地(pc)

adb pull <remote> <local>

C:\Users\chang>adb pull /data/2048.apk d:\

2247 KB/s (24140275 bytes in 10.490s)

12、获取当前焦点的包名及activity名

C:\Users\chang>adb shell dumpsys window | findstr mCurrentFocus 

mCurrentFocus=Window{4a9e5314 u0 com.lilysgame.calculatorjw/com.lilysgame.calculator.b.Es}

欢迎关注作者,如果觉得写的还不错,就给点个赞同、喜欢、收藏(后续持续更新)。

【全文手打 如需转载 请标注此出处】

上一篇下一篇

猜你喜欢

热点阅读