当前位置:网站首页>第九章 APP项目测试(2) 测试工具
第九章 APP项目测试(2) 测试工具
2022-06-25 04:01:00 【zhhzc】
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命令比较多,记住常用的命令即可。
边栏推荐
猜你喜欢
随机推荐
Retrofit 源码分析
Introduction to intstream API
Laravel document sorting 7. View
js的sort()函数
SQL injection details
EasyRecovery15非常好用的电脑数据恢复软件
GBASE 8s的并行操作问题场景描述
Use of deferred environment variable in gbase 8s
js的arguments
GBASE 8s的隔离级别介绍
English Grammar - pronunciation rules
Retrofit source code analysis
Finereport displays and hides column data according to conditions
PHP extracts and analyzes table contents, and collects bidding information
CTF_ Web: Learn flask template injection (SSTI) from 0
Office macro virus bounce shell experiment
Basic use of OBS browser+ browser
三角形类(构造与析构)
BSC smart contract dividend mainstream currency | including marketing wallet | deflation | reflow | dividend free token | available for direct deployment
Win10 environment phpstudy2016 startup failure record









