adb工具即Android Debug Bridge,就是起到调试桥的作用,是客户端测试常用的辅助工具。借助adb工具,我们可以管理设备或手机模拟器的状态。
adb主要功能有:
1、在Android设备上运行Shell(命令行)
2、管理模拟器或设备的端口映射
3、在计算机与设备之间可以上传和下载文件
4、可以将电脑上的apk软件安装到Android模拟器或设备上
下载SDK 下载地址
下载完成后解压到C盘(解压位置可自行选择)
下载adb(选择对应的文件)
Windows: 提取码: nrnj
MacOSX: 提取码: x6sh
Linux: 提取码: sury
下载完成以后,解压到sdk安装目录下(以Windows系统为例):
配置一下变量(先查看有没有变量名,有的话直接把变量值添加进去,没有就新建)
变量名:ANDROID_HOME
变量值:C:\android-sdk-windows(sdk的安装目录)
变量名:Path
变量值:%ANDROID_HOME%\tools
变量值:%ANDROID_HOME%\platform-tools
adb是一个 客户端-服务器端 程序, 其中客户端是你用来操作的电脑, 服务器端是android设备.
1、连接android设置
adb connect 设备名
例如:
adb connect 127.0.0.1:62025
adb connect 127.0.0.1:62001
2、查看设备
adb devices
这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示
3、 安装软件
adb install 软件包的名称
这个命令将指定的apk文件安装到设备上
adb install 路径\app-weichi-release.apk
#如果显示success,那么久安装apk包成功,显示Failure,则安装失败。
检查错误,排错,再执行如下命令:abd install -r 包名.apk
4、获取app的包名和activity名称
adb logcat -v time | findstr START
脚本中,cmp= 后面的值就是 包名
查看当前运行的APP的包名和打开的Activity
adb shell "dumpsys window | grep mCurrentFocus"
5.、卸载软件
获取包名(单个设备)adb shell pm list packages -3 (3指的第三方的)
(多个设备)adb -s 设备名 shell pm list packages -3
adb uninstall <软件名>
6、把本地的文件上传到Android设备
语法:adb push 本地文件路径 Android设备路径
例子:把本地磁盘中的E:\android\test.txt上传到安卓服务器的/storage/sdcard0/目录
adb push E:\android\test.txt /storage/sdcard0/
PS: 文件管理器,依次进入storage/sdcard0,就能查看到刚才上传的文件
7、把Android设备的文件下载到本地的
语法:adb pull Android设备上的文件路径 本地路径
例子:把本地磁盘中的E:\android\test.txt上传到安卓服务器的/storage/sdcard0/目录
adb pull /storage/sdcard0/test.txt E:\android
1、monkey命令
adb shell monkey -p app-weichi-release.apk -v 500
这个命令将会启动你的软件并且触发500个事件.
2、使用monkey做回归测试
monkey命令后面可以带很多参数,常见的除了-v、-p还有-s,
-s 后面加上monkey上一次运行时候的产生seed值,就可以让monkey重复上一次运行时的操作路径,
从而实现回归测试。
例如:
adb shell monkey -p app-weichi-release.apk -s 45544215878 -v 5
3、测试期间收集monkey日志
adb shell monkey -p your.package.name -v 500 > E:\share\monkey.log
把monkey日志导入到E盘的share目录下。
4、收集logcat日志(logcat日志,记录了用户的在系统上的所有操作)
先清空系统上原有的logcat日志:adb logcat -c
获取logcat日志:adb logcat -v time > E:\share\logcat.log
把logcat日志导入到E盘的share目录下。
monkey在运行过程中,可能会出现异常,一般的原因有以下方面:
1)、应用程序崩溃(crash)或接收到任何失控异常;
导致crash的原因有:
a)、程序存在空指针;
b)、数组越界;
c)、CPU不足;
d)、内存不足。
2)、应用程序不响应(application not responding,简称:ANR); ---- 当系统5秒内无法响应用户输入事件,就报ANR的错误。
导致ANR的原因有:
a)、线程堵塞;
b)、CPU不足;
c)、内存不足。