欢迎光临
我们一直在努力

软件测试核心知识整合(ADB 命令 + Monkey 测试 + 测试流程与工具)

一、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 卡

  • 以上就是软件测试核心知识的整合,涵盖了日常工作中高频使用的命令、工具和流程,适合收藏备用~ 如有疑问或补充,欢迎在评论区交流!

    赞(0)
    未经允许不得转载:171主机测评 » 软件测试核心知识整合(ADB 命令 + Monkey 测试 + 测试流程与工具)
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址