第3章 前置条件确认

在执行 Mock BLE 设备数据快照回归之前,必须确认硬件、软件、工具和权限等前置条件均已满足。本章列出所有必要依赖,并提供检查流程与验收标准,确保环境一致性,避免因基础配置差异导致回归结果偏差。

适用场景

本确认流程适用于以下场景:

  • 首次搭建 Mock BLE 设备测试环境
  • 更换测试主机或 BLE 硬件(如 USB 蓝牙适配器、模拟器固件升级)
  • 快照回归基线版本变更(如 SDK 升级、系统固件更新)
  • 跨团队协作时统一环境基准

前置条件

硬件依赖

硬件项规格要求备注
BLE 模拟器 / 真实设备支持 BLE 4.2 及以上,可响应广播与连接推荐使用 nRF52840 Dongle 或同类
测试主机CPU ≥ 4 核,RAM ≥ 8 GB,支持 USB 3.0Windows / Linux / macOS 均可
USB 蓝牙适配器(可选)CSR 或 Broadcom 芯片,支持 BLE仅主机未内置 BLE 时使用
逻辑分析仪(调试用)采样率 ≥ 1 MHz非强制,用于波形异常时定位

软件环境

软件 / 工具版本要求安装方式
Python≥ 3.8,≤ 3.11官方安装包 / pyenv
BlueZ (Linux)≥ 5.50apt / yum / 源码编译
Windows BLE SDKWindows 10 v1809+ 内置启用开发人员模式
nRF Connect / Wireshark最新稳定版官方安装包
Mock 数据生成器版本号与快照基线一致Git 仓库 / 容器镜像

工具清单

工具名称用途来源
bluetoothctl扫描并验证 BLE 设备可达性系统内置 / BlueZ 套件
hcitool查看 HCI 接口状态BlueZ 套件
gatttool手动读写 BLE 属性BlueZ 套件
tcpdump / btmon抓取 BLE 空口包系统内置 / BlueZ
pytest(Python)执行回归用例pip install pytest

权限准备

  • Linux:用户需属于 bluetooth 组,或具备 sudo 权限执行蓝牙扫描。
  • Windows:需要管理员权限安装 BLE 虚拟设备驱动。
  • macOS:需在“安全性与隐私”中启用蓝牙权限,并授权终端访问。
  • 仓库访问:具备 Mock 数据生成器源码或镜像拉取权限。
  • 日志目录:测试用户对 /var/log/ble_regression(Linux)或 %TEMP%\ble_regression(Windows)有写入权限。

操作步骤

  1. 硬件连接
    将 BLE 模拟器通过 USB 接入测试主机,确认主机识别设备(Linux: lsusb / Windows: 设备管理器查看“蓝牙”)。
  2. 软件版本验证
    执行版本检查命令,确保满足上述表格要求:
    python --version
    bluetoothctl --version
    hcitool --version
    gatttool --help 2>&1 | head -1
  3. 工具可用性测试
    运行 bluetoothctl scan on 并观察是否能发现附近的 BLE 设备(包括模拟器)。
  4. 权限验证
    尝试创建日志目录并写入文件:
    mkdir -p /var/log/ble_regression
    echo "precheck ok" > /var/log/ble_regression/precheck.log
    cat /var/log/ble_regression/precheck.log
  5. 记录检查结果
    将每一步的输出填入下方记录材料中的检查清单。

输入输出物

类型内容来源 / 去向
输入Mock BLE 设备型号、固件版本、SDK 配置文档产品 / 开发团队提供
输入前置条件检查清单模板本课程配套资源
输出前置条件检查报告(含版本号、通过/失败状态、异常记录)测试工程师归档,作为回归基线附件

责任边界

  • 测试工程师:负责搭建并验证硬件/软件/工具环境,填写检查清单;若环境不达标,返回开发或运维团队整改。
  • 系统管理员 / DevOps:负责提供权限、安装系统级依赖(如 BlueZ、驱动)。
  • QA 主管:审批前置条件检查报告,确认环境就绪后进入回归执行阶段。

记录材料

检查项预期结果实际值状态
BLE 设备已连接lsusb 显示设备 VID/PID
Python 版本≥ 3.8
BlueZ 版本≥ 5.50
蓝牙扫描可用设备被发现有广播
日志写入权限文件写入成功

预检日志示例(可以保存为 precheck.log):

2025-02-18 10:32:15 [INFO] Python 3.9.12 (checked)
2025-02-18 10:32:16 [INFO] BlueZ 5.55 (checked)
2025-02-18 10:32:18 [INFO] BLE simulator detected at /dev/ttyACM0
2025-02-18 10:32:20 [INFO] bluetoothctl scan discovered device EA:12:34:56:78:9A
2025-02-18 10:32:22 [INFO] Log directory writable: /var/log/ble_regression

异常处理

常见异常场景

  • BLE 模拟器未识别:检查 USB 线缆、更换端口;Linux 下运行 dmesg | tail -20 查看驱动加载情况;若为 nRF52840 Dongle,需刷写 nrf-ble-driver 固件。
  • Python 版本不满足:使用 pyenv 安装符合版本要求的 Python,或通过 Docker 镜像隔离。
  • 蓝牙扫描无响应:确认主机蓝牙已开启(rfkill unblock bluetooth / Windows 蓝牙开关)。
  • 日志写入权限拒绝:将用户加入 bluetooth 组或修改日志目录权限:sudo chmod 777 /var/log/ble_regression(临时方案)。
  • 权限不足无法安装工具:申请 sudo 或联系管理员;Windows 使用 chocolatey / winget 避免手动安装错误。

验收标准

  • 所有检查项状态均为“通过”。
  • 预检日志无报错条目。
  • 前置条件检查报告已归档至本次回归目录。
  • 测试工程师与 QA 主管双签确认。
前置条件确认流程 开始环境检查 1. 检查 BLE 设备连接 2. 验证软件版本 3. 验证工具可用性 4. 确认权限配置 全部通过? 环境就绪 异常处理 注意: 每步检查失败应记录 具体错误并返回整改