一、ADB 命令大全
ADB(Android Debug Bridge)是 Android 开发和测试的核心工具,以下是工作中高频使用的命令分类整理:
1. 设备管理
bash
运行
adb devices -l # 查看已连接设备
adb kill-server # 终止ADB服务
adb start-server # 启动ADB服务
adb connect <IP>:<端口> # 连接远程设备(如模拟器)
示例:adb connect 127.0.0.1:7555
2. 系统操作
bash
运行
adb shell # 进入Android系统
exit # 退出Android系统
adb reboot # 重启设备
3. 输入事件模拟
bash
运行
# 滑动(x1,y1起点坐标;x2,y2终点坐标;可选时长单位ms)
adb shell input swipe <x1> <y1> <x2> <y2> [时长(ms)]
adb shell input tap <x> <y> # 点击指定坐标
adb shell input text "字符串" # 输入文本(不支持中文)
adb shell input keyevent <键码> # 按键事件(如26=电源键)
4. 应用管理
bash
运行
adb install <apk路径> # 安装应用
adb uninstall <包名> # 卸载应用
adb shell pm list packages # 查看所有应用包名
adb shell pm list packages -3 # 查看第三方应用
adb shell pm clear <包名> # 清除应用数据缓存
5. 文件传输
bash
运行
adb push <本地文件> <设备路径> # 推送文件到设备(如 /sdcard/)
adb pull <设备文件> <本地路径> # 从设备拉取文件
6. 日志与调试
bash
运行
adb logcat # 实时查看日志
adb logcat *:E > error.log # 保存错误日志到文件
# 获取当前Activity
adb shell dumpsys activity | findstr "mFocusedActivity"
7. 性能监控
bash
运行
adb shell dumpsys meminfo # 查看内存使用
adb shell dumpsys cpuinfo # 查看CPU使用
adb shell dumpsys battery # 查看电池信息
adb shell dumpsys wifi # 查看WiFi状态
电池信息参数说明:
- AC powered: false :交流电供电状态(false = 未供电)
- USB powered: false :USB 供电状态
- Wireless powered: false:无线供电状态
- status: 5 :充电状态(1 = 充电,2 = 未充电)
- health: 2 :电池健康度(2 = 优秀)
- level: 87 :电池剩余百分比
- temperature: 362 :电池温度(华氏度)
- technology: Li-ion :电池类型(锂电池)
8. 启动时间分析
bash
运行
adb shell am start -W <包名>/<Activity>
# 输出说明:ThisTime(界面耗时) / TotalTime(应用启动耗时) / WaitTime(系统启动耗时)
二、Monkey 压力测试
Monkey 是 Android 自带的压力测试工具,通过模拟随机用户操作验证应用稳定性。
1. 基础命令
bash
运行
adb shell monkey [选项] <事件数量>
常用选项:
bash
运行
-p <包名> # 指定测试应用(支持多包)
--throttle <ms> # 事件间隔(默认0ms,建议设置50-100ms)
-s <种子> # 固定随机序列(用于复现Bug)
--ignore-crashes # 忽略崩溃继续测试
--ignore-timeouts # 忽略ANR继续测试
--ignore-security-exceptions # 忽略安全异常
--monitor-native-crashes # 监视并报告原生代码崩溃
--ignore-native-crashes # 忽略原生代码崩溃
--kill-process-after-error # 发生错误后终止进程
-v # 日志详细级别(-v/-v/-v 最详细)
2. 事件比例控制
bash
运行
--pct-touch PERCENT # 触摸事件百分比(点击屏幕)
--pct-motion PERCENT # 手势事件百分比(滑动屏幕)
--pct-trackball PERCENT # 轨迹球事件百分比(极少使用)
--pct-syskeys PERCENT # 系统按键百分比(Home、Back等)
--pct-nav PERCENT # 导航键事件百分比(上下左右)
--pct-majornav PERCENT # 主要导航事件(菜单、返回)
--pct-appswitch PERCENT # 应用切换事件百分比
--pct-pinchzoom PERCENT # 缩放事件百分比
--pct-permission PERCENT # 权限请求事件百分比
--pct-anyevent PERCENT # 其他类型事件百分比
3. 性能监控
bash
运行
--hprof # 测试过程中生成HPROF性能数据文件
--profile-wait MILLISEC # 等待应用启动的时间
4. 包过滤
bash
运行
--pkg-blacklist-file PACKAGE_BLACKLIST_FILE # 指定黑名单包名文件
--pkg-whitelist-file PACKAGE_WHITELIST_FILE # 指定白名单包名文件
5. 调试选项
bash
运行
--wait-dbg # 等待调试器连接
--dbg-no-events # 启动应用但不发送事件(用于调试)
--port port # 指定调试端口
6. 随机控制
bash
运行
-s SEED # 指定随机数种子(重现测试场景)
--randomize-throttle # 随机化事件间隔时间
--throttle MILLISEC # 设置事件固定延迟(毫秒)
7. 脚本相关
bash
运行
--setup scriptfile # 指定初始化脚本文件
-f scriptfile # 指定执行脚本文件(可重复使用)
--randomize-script # 随机化脚本执行顺序
--script-log # 启用脚本日志记录
8. 设备控制
bash
运行
--device-sleep-time MILLISEC # 指定设备休眠时间
--bugreport # 测试完成后生成错误报告
--periodic-bugreport # 定期生成错误报告
--permission-target-system # 针对系统应用的权限测试
三、Monkey 日志信息分析
Monkey 测试后需重点分析日志,定位问题:
1. 测试基础信息
日志开头会记录:随机种子数、运行事件数量、可运行应用列表、事件百分比配置。
2. 应用与 Activity 跳转
- 可追踪应用切换记录(单一应用测试时多次切换可能是异常重启)
- 明确 Activity 跳转链路,定位异常发生的页面。
3. 伪随机事件流
记录各类操作及延时,包括:
- 触碰、点击操作
- 滑动、曲线滑动操作
- 缩放、旋转操作
4. 异常信息排查
- 崩溃问题:搜索关键词
exception或crash - 无响应(ANR):搜索关键词
anr - 其他错误:搜索关键词
error
5. Monkey API 函数
java
运行
LaunchActivity(package,activity) // 启动应用的Activity
Tap(x,y) // 点击指定坐标(x,y)
UserWait(time) // 等待指定时间(毫秒)
DispatchPress(key_code) // 触发指定键码事件(参考键码表)
DispatchString(string) // 输入字符串
LongPress() // 长按(默认2秒)
RunCmd() // 运行shell命令
四、软件测试基础
1. 测试环境分类
| 环境类型 | 说明 |
|---|---|
| 开发环境 | 开发电脑(非真实服务器),虚拟数据,用于强依赖功能测试(依赖服务未完成时) |
| 测试环境 | 真实服务器(单台,无域名,内部使用),系统测试专用,可能存在脏数据,迭代频繁 |
| 准生产 / 预发布环境 | 与线上一致的真实服务器,数据同步线上,服务稳定,用于上线前验证和性能测试 |
| 生产 / 线上环境 | 用户访问的真实环境,有域名服务,禁止随意操作 |
| 挡板 / 沙盒 / 沙箱 | 用于支付、敏感信息类测试,安全性要求高 |
2. 标准测试流程
- 需求评审会(由 PD 主导)
- 制定测试计划
- 编写测试用例
- 测试用例评审会
- 开发提测(开发完成后交付测试)
- 执行测试(功能 / 性能 / 兼容性等)
- 预发布验证
- 正式发布
- 项目复盘
3. 核心文档类型
- 开发文档:代码、技术设计文档
- 设计文档:切图、平面图、交互设计图
- 测试文档:测试计划、测试用例(冒烟用例 + 全功能用例)、缺陷报告、测试报告、用户操作手册
- 冒烟用例:正向核心业务场景,30 分钟内完成,不超过 5 条
- 全功能用例:正向 + 反向 + 异常场景全覆盖
- 运维文档:部署文档
五、Charles 抓包工具
Charles 是测试常用的 HTTP/HTTPS 抓包工具,核心功能及使用步骤如下:
1. 核心功能
- Proxy:抓取 HTTP/HTTPS 请求
- Throttle:模拟弱网环境(2G/3G/4G)
- Breakpoints:拦截并修改请求 / 响应数据
- Map Remote/Local:请求重定向(域名 / IP → 本地文件)
- Repeat:并发压力测试
2. 手机抓包步骤
- 确保手机与电脑连接同一网络
- Charles 配置:Proxy → SSL Proxying → 保存 Charles 根证书(charles.cer)
- 手机 Wi-Fi 设置:手动代理(输入电脑 IP+Charles 端口,默认 8888)
- 安装证书:手机设置 → 搜索 "证书" → 安装 CA 证书 → 选择下载的 charles.cer
- 信任证书:完成安装后信任该用户证书
六、崩溃率标准
| 平台 | 优秀 | 合格 | 轻微隐患 | 严重隐患 |
|---|---|---|---|---|
| iOS | ≤0.3% | 0.3%~0.8% | 0.8%~1.5% | >1.5% |
| Android | ≤0.2% | 0.2%~0.4% | 0.4%~1.2% | >1.2% |
七、补充知识
1. 网络诊断命令
bash
运行
ping <IP/域名> # 测试网络连通性
telnet <IP> <端口> # 检测端口是否开放(无报错即成功)
netstat -ano | findstr <端口> # 查看端口占用情况
ifconfig / ipconfig # 查看本机IP(Linux/macOS用ifconfig,Windows用ipconfig)
2. 夜神模拟器 ADB 连接配置
- 进入夜神安装目录,将
adb.exe改为adb.exe.bak,nox_adb.exe改为nox_adb.exe.bak - 从
platform-tools目录复制adb.exe到夜神安装目录,并重命名为nox_adb.exe - 再次将
platform-tools中的adb.exe复制到夜神安装目录(保留原文件名) - 模拟器开启开发者模式(双击版本号 5 次),USB 调试选择 "充电" 模式
- 命令行执行以下命令:
bash
运行
adb connect 127.0.0.1:62001 # 连接夜神模拟器
adb devices -l # 查看设备是否连接成功
adb kill-server # 终止ADB服务(异常时使用)
adb start-server # 重启ADB服务(异常时使用)
adb shell # 进入Android系统
ls # 查看当前目录文件
exit # 退出Android系统
3. Maxim 测试框架特性
Maxim 是基于 Monkey 优化的测试框架,核心优势:
- 执行速度快:每秒 10-15 个事件,界面解析速度≤50ms,响应迅速
- 全平台兼容:通过反射原理适配各 Android 版本 API 差异
- 防跳出机制:解析进程堆栈,锁定活动页面,屏蔽状态栏误操作
- 防休眠:自动检测并唤醒休眠屏幕
- 熔断机制:避免事件执行陷入死循环,自动拉活
- 场景控制:支持黑白名单,精准限制测试范围
- 智能输入:检测输入模式时,随机输入字符串或键盘事件
- 崩溃自动捕获:崩溃堆栈自动保存到设备 SD 卡
以上就是软件测试核心知识的整合,涵盖了日常工作中高频使用的命令、工具和流程,适合收藏备用~ 如有疑问或补充,欢迎在评论区交流!