用户可通过该项目自动化蓝牙测试流程,提升测试效率。它利用PTSControl COM API实现测试自动化,支持Zephyr、Mynewt等蓝牙协议栈,可运行460多个测试用例,采用客户端/服务器架构,支持跨平台协作与结果报告生成。【此简介由AI生成】
目录
引言
蓝牙配置调整套件(PTS)是由蓝牙 SIG 提供的蓝牙测试工具。PTS 是一个 Windows 程序,通常通过其 GUI 以手动模式使用。
auto-pts 是蓝牙 PTS 自动化框架。auto-pts 使用 PTSControl COM API 来自动化测试。
目前已为 Zephyr OS 和 Mynewt OS 自动化了超过 460 个测试用例,将测试时间从一个月缩短至 9 小时。auto-pts 已经用于自动化测试以下三种蓝牙堆栈:
- BlueZ
- Zephyr BLE
- Mynewt NimBLE
架构

auto-pts 服务器:使用 Python 3 实现。在 Windows 上运行,并提供面向网络的 XML-RPC 接口与 PTS 通信。
auto-pts 客户端:使用 Python 2.7 实现。在 GNU/Linux 上运行,与 auto-pts 服务器(用于启动/停止测试用例,向 PTS 发送响应)通信,并与被测试的实施(IUT)进行通信,以采取适当的操作。
被测试的实施(IUT):运行要测试的蓝牙堆栈的主机,这可以是模拟器或真实硬件。IUT 通过使用蓝牙测试协议进行控制。
蓝牙测试协议(BTP):用于与 IUT 通信。参见 doc/btp_spec.txt
Linux 预先要求
-
socat,用于从 UART 的 tty 文件传输 BTP 数据流。sudo apt-get install python-setuptools socat -
此外,使用以下命令安装所需的 Python 模块:
python2 -m pip install --user -r autoptsclient_requirements.txt
Windows 预先要求
为了能够在自动化模式下运行 PTS,不应有 PTS 实例在 GUI 模式下运行。因此,在运行这些脚本之前,请关闭 PTS GUI。
-
使用以下命令安装所需模块:
python.exe -m pip install --user -r autoptsserver_requirements.txt
PTS 工作空间设置
在运行任何脚本之前,您需要在 PTS 中创建一个工作空间,将所需项目添加到工作空间中,并配置 PICs 和 PIXITs。
或者,您可以使用 auto-pts 工作空间。Auto-pts 在 "workspaces" 目录中提供了预先配置好的 PTS 工作空间。可用工作空间列表如下:
- bluez
- Mynewt Nimble 主机
- zephyr-master
- zephyr-v1.14
- zephyr-v2.2.0
在客户端/服务器模式下运行
auto-pts 框架使用客户端服务器架构。在这种设置中,PTS 自动化服务器在 Windows 上运行,客户端在 GNU/Linux 上运行。
以下命令在 Windows 上启动 AutoPTS 服务器:
python.exe autoptsserver.py
根据测试的堆栈,有单独的 autoptsclient-*.py 脚本来启动 AutoPTS 客户端。
在 QEMU 上测试 Zephyr 主机堆栈
使用 BlueZ 的 btproxy 工具为蓝牙适配器启动一个代理:
sudo bluez/tools/btproxy -u -z
然后使用例如自己的工作空间文件来启动 AutoPTS 客户端:
./autoptsclient-zephyr.py "C:\Users\USER_NAME\Documents\Profile Tuning Suite\PTS_PROJECT\PTS_PROJECT.pqw6" zephyr.elf -i SERVER_IP -l LOCAL_IP
在 nRF52 上测试 Zephyr 组合(控制器 + 主机)构建:
./autoptsclient-zephyr.py zephyr-master
在 nRF52 上测试 Mynewt 构建:
./autoptsclient-mynewt.py "Mynewt Nimble Host" -i SERVER_IP -l LOCAL_IP -t /dev/ttyACM0 -b nordic_pca10056
在 Linux 上测试 BlueZ
参见 ptsprojects/bluez/README.md
运行 AutoPTSClientBot
AutoPTSClientBot 被添加用于自动化在各种配置上运行测试用例并报告结果。
主要功能
- 获取最新的项目源代码
- 通过 "iut_config" 的 "overlay" 对项目配置文件应用更改以适应 "test_cases"
- 构建 ZephyrOS/MynewtOS 镜像
- 烧录板子
- 运行所有测试用例
- 存档测试执行日志
- 将结果存储在 Excel 工作表文件中
- 测试用例状态
- 饼图
- 将文件发送到 Google Drive
- 发送电子邮件
配置
机器人配置文件位于 bot 目录中。提供了示例文件 bot/config.py.zephyr.sample 和 bot/config.py.mynewt.sample。文件包含设置和项目特定配置。
这可能包含以下几个部分:
name- AutoPTS 项目名称
auto_pts- AutoPTS 配置server_ip- AutoPTSServer IP 地址client_port- 本地 AutoPTSClient 端口project_path- 项目源目录路径workspace- 要使用的 PTS 工作空间路径board- 使用的 IUT。目前仅支持 nrf52enable_max_logs- 启用调试日志retry- 每个测试的最大重试次数bd_addr- IUT 蓝牙地址(可选)
mail- 邮件配置(可选)sender- 发件人电子邮件地址smtp_host,smtp_port- 发件人 SMTP 配置name- 用于消息底部passwd- 发件人邮箱密码。当使用 Google 账户时,需要 允许不太安全的应用访问账户recipients- 电子邮件地址列表
gdrive- GDrive 配置(可选)root_directory_id- 根目录 ID,可以从 URL 中获取,https://drive.google.com/drive/u/0/folders/<GoogleDriveDirID>credentials_file- 访问 Google 账户的凭据文件路径。更多信息请阅读 此处。
iut_config- IUT 配置覆盖。这用于对 IUT 配置应用特定于测试用例的更改。它由配置名称和相关的键:值对组成的字典构成:overlay- 要应用的配置更改test_cases- 使用此配置运行的测试用例
scheduler- 计划程序配置(可选)weekday: "time" 字典。
安装
使用以下命令安装所需的 Python 模块:
pip2 install --user -r bot/requirements.txt
使用
./autoptsclient_bot.py
在 freenode.net 上的 IRC 频道
我们在 freenode.net 上的 IRC 频道是 #autopts