• 第九章 APP项目测试(2) 测试工具


    9.4 APP测试工具

    因为手机的局限性给测试带来了很多不便,所以在APP的测试相对Web测试更关注是一些工具的使用,介绍一下Android手机测试工具的使用。

    Android系统主要的目录描述,详见表9-1

    9.4.1   ADB 工具介绍

    ADB(Android Debug Bridge的缩写)是Android SDK里面一个多用途调试工具,可以通过ADB来管理设备或模拟器的状态。ADB工具由3个组成部分;

    1)在计算机上运行的客户端。PC端主要通过客户端与模拟器或设备通信。

    2)在计算机上作为后台进程运行的服务器。负责管理客户端与模拟器或设备上的adbd进程间的通信。

    3)守护进程adb以后台进程的形式运行于模拟器或设备上。

    当启动一个ADB客户端,客户端首先确认是否有一个ADB服务器进程运行。如果没有进程,则启动服务器进程。当ADB服务器运行,就会绑定本地的TCP端口5037,并监听ADB客户端发来的命令。接着服务器将所有运行中的模拟器或设备实例建立连接。它会扫描所有5554~5584之间的端口来定位所有模拟器或设备。一旦服务器与所有模拟器实例建立连接,可以使用ADB命令控制和访问该设备。发送命令的一般格式:adb-s设备命令(通过命令adb devices 可获取设备名)

    使用ADB主要可以完成以下功能:

    1)可以快速更新设备或模拟器上的软件;

    2)可以在设备或模拟器上运行shell命令

    3)可以同步设备或模拟器上的文件、即上传、下载文件;

    4)可以实时抓取APP运行时的Log信息。

    2、ADB工具安装过程(略过)

    3、ADB 基本命令介绍

    (1)adb device

    adb device:查询连接的设备或模拟器,使用adb前需要先查询adb是否跟设备或模拟器连接上。在命令提示窗口输入命令:adb device按(Enter)键,运行命令后,出现如下信息表示连接到设备,如图9-4所示。


    命令adb device 运行后有3种状态,如下:

    device:表示找到设备并与adb连接上

    no device:表示当前没有模拟器在运行,或没有找到任何设备

    offline:表示设备或模拟器没有与adb相连或没有响应

    如果出现多个device时,说明当前有多个设备或模拟器在运行。此时使用adb时,需要用-s指定一个目标设备。命令格式如下:

    adb-s 目标设备名命令

    (2) adb install

    adb install:用来向设备安装软件。命令格式如下:adb install[ption]<path>

    如:adb install D:\TensonCourse.apk运行命令后出现Success,表示成功安装到设备或模拟器上。

    (3)adb uninstall

    adb uninstall:用来卸载设备上的软件。命名格式如下:adb uninstall[option]<package>

    (4)adb pull

    adb pull:将设备或模拟器中文件复制到PC端。命令格式如下:adb pull<remote><local>

    如:adb pull init.rc命令,表示设备上的init.rc文件复制到本地的当前目录(init.rc表示设备中的文件,.表示PC端当前的目录)

    (5)adb push

    adb push:将PC端文件复制到设备或模拟器中。命令格式如下:adb push <local><remote>

    如:adb push D:\tenson.txt/sdcard/命令,表示将文件复制到设备/sdcard/目录下。

    (6) adb logcat

    adb logcat:用来抓取log信息进行跟踪Bug跟踪。命令格式如下:

     adb logcat[option][filter-spec]

    logcat命令选项详见表9-2,具体用法如下:

     adb logcat,表示实时抓取整个手机的log信息并在命令提示窗口输入信息。

    adb logcat>D:\log.txt,将实时抓取log信息并保存到本地log.txt文件。

    adb logcat-v time>D:\log.txt,获取的log.txt文件中加上时间信息。

    adb logcat-b radio>D:\log.txt,获取网络射频信息。

    adb logcat-b events>D:\log.txt,获取事件消息

    adb logcat-v time-b main-b radio-b system>logcat.txt常用,获取log信息加上时间信息,主要显示缓冲区以及电话和系统相关的日志。

    logcat命令过滤详见表9-3

     此外adb logcat可以用来过滤设置过滤内容,还可以结合匹配正则表达过滤内容。

    注:当应用或系统出现重启或奔溃异常后抓取log

     adb bugreport获取bugreport信息。bugreport记录android启动过程的 log,以及启动后的系统状态,包括进程列表、内存信息、VM信息等。

    adb shell dumpsys dropbox-print获取dropbox信息。记录出现过的异常等信息,用于分析crash、重启等。

    adb pull/data/anr/获取anr信息,系统或应用响应时抓取信息文件。

    (7)adb shell

    提供了shell 终端,通过shell终端可以在模拟器或设备上运行各种命令,这些命令是linux shell的一个子集。可以通过adb shell命令来使用这些命令,比如:adb shell ls,,也可以先用命令:adb shell进入设备或模拟器的shell终端,再使用相应的命令。当设备在shell状态下,可以用exit来退出shell终端。

     adb shell dumpsys battery

    功能:查看电池电量的相关信息。输入这条命令后,出现图9-5所示。

    在图9-5中,显示内容说明如下:

      AC powered:true  表示电源供电

     USB powered:true:表示使用usb供电

    status:5表示电池电量是满的,总共5个等级

    health:2电池健康状态,有6个值,分别是0和1表示未知状态,2表示良好,3表示过热,4表示损坏,5表示过压。

    present:true表示手机上有电池

    level:100表示电池剩余电量是100%

    scale:100表示电池电量最大值是100%

    voltage:3800表示当前电池电压值,正常范围应该在4350内

    voltage:3800表示当前电池温度值,300表示30度,范围一般在300~380之间。

     technology:li-ion为电池技术标准,Li-ion表示锂电池。

     adb shell dumpsys wifi 功能:查看WIFI 网络信息。内容的含义:wi-fi is enabled,表示wifi处于连接状态,共有5种状态;

    disabled:关闭, disabling:正在关闭  enabled:已连接 enabling:  正在启动。unknown:未知状态   Internal state:包含WIFI设备名、状态IP地址,MAC地址,网络加密方式等信息。

    adb shell dumpsys power :功能 参考电源管理相关信息。内容显示信息包括ower Manager State
      Settings and Configuration,UID states Wireless Charger DetectorState等信息。

    如果想单独看某个信息,可以加上find命令来查找。比如查看屏幕关闭时间,需要查找“mScreen OffTimeout Setting"值,命令如下:adb shell dumpsys power find "mScreen OffTimeout setting"得到如下结果,60000表示60s,就是1min

    adb shell dumpsys cpuinfo 功能:查看CPU的动态占用率,按CPU的使用率可以从大到小排列

    命令:adb shell top-m5- n 10-s cpu也可以参考CPU占用率,运行后显示图9-6所示。

    参数说明:

    -m:显示进程数量

    -n:数据的刷新次数

    -s:按说明方式排序

    -d:刷新时间间隔,默认5s

     adb shell dumpstate 功能:查看系统当前状态的信息。信息内容包括:系统构建版本信息、

     网络相关信息、内核相关信息、运行时间信息、内存使用情况、CPU使用情况、进程相关信息等。

    注:显示信息非常多,为了方便查看,最后重定向导一个文件里面。

    adb shell dmesg 功能:查看内核日志信息

    adb shell df  功能:查看手机系统各个区分信息

    adb shell getprop gsm.network.type  功能:获取手机网络类型信息

    adb shell getprop ro.build.version.release 功能:获取手机系统版本信息

    adb shell cat/proc/cpuinfo功能:查看内存相关信息。其中memtotal 表示总运行内存,MemFree表示剩余内存。

    adb shell cat/proc/version  功能:获取设备内核版本信息

     adb shell cat/proc/net/xt qtaguid/stats 功能:查看手机流量数据。内容信息比较多,每一行表示每次获得的流量信息,包括发送与接收的数据,重点关注:第四列表示UID(应用运行的用户ID),第六列表示接收的数据量,第八列表示发送的数据量。

    (8)adb 其他命令详解

    adb get-serialno 功能:获取设备的序列号

    adb get state,功能:查看设备或模拟器的当前状态,其中device表示已连接

     adb statt-server,功能:关闭adb服务器,当abd状态不稳定,可用关闭adb

    adb shell am(Activity Manager)功能:模拟一些操作设备动作

    adb shell pm(package manager)功能:查询设备上的应用

    总述adb命令比较多,记住常用的命令即可。

  • 相关阅读:
    Qt教程 — 3.1 深入了解Qt 控件:Buttons按钮
    【一天一个设计模式】—— 单例模式
    【2023-10-12】如何保证代码质量
    leetcode数据结构基础
    Centos 7.6安装LXC
    WiFi6E Lead :IPQ8072- equipped with QCN5024 and QCA8075- future of WiFi IIOT
    2022年2022年9月5日中软国际Linux-C开发一面
    并行多核体系结构基础知识
    从本地到全球:跨境电商的壮丽崛起
    [C++] 布隆过滤器的模拟实现
  • 原文地址:https://blog.csdn.net/zhhzc/article/details/125446800