蓝牙测试基础 2019-11-14
蓝牙的背景
蓝牙相关的测试产品,例如蓝牙音箱、蓝牙手环、蓝牙耳机、蓝牙灯等消费类电子产品。小编曾经进行蓝牙测试,特此分享经验,不当之处,欢迎纠正。
蓝牙作为一种近距离的无线传输技术,功率低,从蓝牙 1.0 到蓝牙 5.0,满足用户在给定距离范围内(一般 10 米)快速和安全数据或语音传输要求,所以被大量的集成到给中设备上。
蓝牙测试相关技术点
蓝牙 - 中心模式
* 建立中心
* 扫描外设
* 连接
* 连接外设(不同的连接状态)
* 连接失败
* 连接断开
* 连接成功
* 扫描外设的服务和特征
* 获取外设的服务
* 获取外设的特征集
* 特征值:描述值
* 订阅通知
* 断开连接
蓝牙 - 外设模式
* 启动外设对象
* 设置外设服务,特征,描述,权限等等
* 外设发送广播
* 设置处理/取消订阅
* 读特征
* 写特征
IOS 蓝牙
- iOS 平台蓝牙使用 CoreBluetooth 框架,功能强大,支持蓝牙 4.0 标准
- BLE 蓝牙
- 优点:传输快,耗电低
- 缺点:传输数据有限,可调整具体的传输字节大小(约 512 字节)
- CoreBluetooth 框架包括外设和中心两种模式,发起者(central) 为中心设备,被连接者(peripheral)为外设设备。例如手机通过蓝牙连接音箱,手机蓝牙为 central,蓝牙音箱为外设。
- 服务 (service) 和特征(chatacteristic),蓝牙设备通过 GATT 协议定义数据的通讯内容。一个外设可以提供多种服务,一种服务包括多个不同的特征。特征的数据结构是键值对,存储数据。每个特征属性分为读、写、通知等几种方式。
- 中心设备通过外设的特征来读写外设的数据和获取通知。外设可通过广播自己的 service 和 characteristic,中心设备可以通过订阅某一个具体的特征。外设和中心设备之间通过特征建立双向连接,形成传输数据的通道。
- UUID:蓝牙唯一标识符,区分不同服务和特征。
Android 蓝牙
- 蓝牙耳机 BluetoothHeadset
- 蓝牙音频 A2DP
- 蓝牙健康设备 HDP(例如心率监测仪、血糖仪、温度计、台秤等)进行通信
- 蓝牙 Socket 通道,手机与其他蓝牙设备通过 InputStream 和 OutputStream 交换数据
蓝牙测试
- 认识不同平台的蓝牙,找到其共同点,例如苹果平台与安卓平台的蓝牙 BLE 框架类似,都有中心和外设两种模式,测试环境搭建分清楚中心设备和外设设备
- 蓝牙扫描、连接、收发数据等全流程进行测试
- 对蓝牙的连接、断开进行功能和间隔断连测试
- 收发数据(大量数据、小量数据)等压力测试
- 蓝牙收发数据的距离限制
- 蓝牙传输速率测试
- 不同手机硬件平台的兼容性测试
- 蓝牙与 WiFi(同频段)同时工作测试
- 不同平台的不同系统版本蓝牙连接搜索测试(主流手机系统版本,谷歌搜索)
蓝牙的知识补充
蓝牙资源
https://www.bluetooth.com/bluetooth-resources/?types=study-guide
谷歌文档
https://developer.android.google.cn/guide/topics/connectivity/bluetooth