# ShowenV2 测试指南 ## 测试环境 ### 目标运行环境 - **操作系统**: Debian 11 (bullseye) - **架构**: ARM64 (aarch64) - **桌面环境**: KDE Plasma - **设备类型**: 嵌入式设备(Radxa、树莓派等) ### 硬件要求 - **CPU**: ARM Cortex-A 系列 - **内存**: ≥ 2GB - **存储**: ≥ 8GB - **显示**: 支持 HDMI 输出 - **网络**: WiFi + 蓝牙 ### 软件环境 - Rust toolchain: stable-aarch64-unknown-linux-gnu - OpenCV 库(ARM64 版本) - D-Bus(用于 BLE) - NetworkManager(用于 WiFi) - KDE Plasma 桌面环境 ### 环境验证 ```bash # 检查系统信息 uname -a # 应显示 aarch64 cat /etc/os-release # 应显示 Debian 11 # 检查桌面环境 echo $XDG_CURRENT_DESKTOP # 应显示 KDE # 检查 Rust 环境 rustc --version # 应显示 stable-aarch64 # 检查依赖库 pkg-config --modversion opencv4 # OpenCV 版本 systemctl status dbus # D-Bus 状态 nmcli --version # NetworkManager 版本 ``` --- ## 测试类型 ### 1. 编译测试 ```bash # 检查编译 cargo check # 代码质量检查 cargo clippy # 运行单元测试 cargo test ``` ### 2. 功能测试 #### 配置文件测试 ```bash # 配置文件已在 configs/ 目录中 # 验证配置加载 cargo run --release -- --config configs/dog_state_machine.json --validate ``` #### 视频播放测试 ```bash # 启动程序 cargo run --release -- --config configs/dog_state_machine.json # 测试点: # - 视频是否正常播放 # - 帧率是否达到 60fps # - 状态机切换是否正常 # - 触发器是否响应 ``` #### HTTP API 测试 ```bash # 启动程序后,在另一个终端测试 API # 获取状态 curl http://localhost:8080/api/status # 播放控制 curl -X POST http://localhost:8080/api/play curl -X POST http://localhost:8080/api/pause curl -X POST http://localhost:8080/api/next curl -X POST http://localhost:8080/api/previous # 跳转到指定视频 curl -X POST http://localhost:8080/api/goto/0 # 触发状态切换 curl -X POST http://localhost:8080/api/trigger/happy # 场景切换 curl -X POST http://localhost:8080/api/scene/0 # 获取配置 curl http://localhost:8080/api/config # 访问 Web UI curl http://localhost:8080/ ``` #### BLE 测试 ```bash # 使用手机蓝牙扫描设备 # 设备名应该显示为配置文件中的 device_name # 连接后测试 GATT 服务 # - WiFi 配置特征值 # - 状态查询特征值 # - 命令发送特征值 ``` #### WiFi 测试 ```bash # 通过 BLE 或 HTTP API 测试 WiFi 功能 # 扫描 WiFi curl -X POST http://localhost:8080/api/wifi/scan # 连接 WiFi curl -X POST http://localhost:8080/api/wifi/connect \ -H "Content-Type: application/json" \ -d '{"ssid": "YourSSID", "password": "YourPassword"}' # 断开 WiFi curl -X POST http://localhost:8080/api/wifi/disconnect # 开启热点 curl -X POST http://localhost:8080/api/wifi/hotspot/start # 关闭热点 curl -X POST http://localhost:8080/api/wifi/hotspot/stop ``` #### 屏幕管理测试 ```bash # 程序运行时应该: # - 阻止屏幕休眠 # - 隐藏鼠标光标 # - 全屏显示视频 # 程序停止时应该: # - 恢复屏幕休眠 # - 显示鼠标光标 ``` ### 3. 性能测试 #### 帧率测试 ```bash # 运行程序并观察日志 cargo run --release -- --config configs/dog_state_machine.json # 检查点: # - 视频渲染帧率 ≥ 60fps # - 无明显卡顿 # - CPU 占用合理 ``` #### 内存测试 ```bash # 启动程序 cargo run --release -- --config configs/dog_state_machine.json & PID=$! # 监控内存占用 watch -n 1 "ps aux | grep $PID | grep -v grep" # 检查点: # - 内存占用 ≤ 旧版本 120% # - 无内存泄漏(长时间运行内存稳定) ``` #### 启动时间测试 ```bash # 测量启动时间 time cargo run --release -- --config configs/dog_state_machine.json # 检查点: # - 启动时间 ≤ 3秒 ``` #### 稳定性测试 ```bash # 长时间运行测试(7x24小时) cargo run --release -- --config configs/dog_state_machine.json # 检查点: # - 连续运行 7天无崩溃 # - 内存占用稳定 # - 无资源泄漏 ``` ### 4. 集成测试 #### 插件通信测试 - 测试 HTTP → Video 消息传递 - 测试 BLE → WiFi 消息传递 - 测试 Broadcast 消息到所有插件 #### 配置验证测试 - 测试各种配置组合 - 测试边界条件(空配置、超大值等) - 测试错误配置的处理 ### 5. 对比测试 #### 功能对比 ```bash # 运行 ShowenV2 cd /home/showen/Showen/ShowenV2 cargo run --release -- --config configs/dog_state_machine.json # 对比: # - 功能是否一致 # - 性能是否相当 # - 用户体验是否改善 ``` --- ## 截图和录屏 ### 截图工具 ```bash # 安装截图工具 sudo apt-get install scrot # 截图 scrot screenshot.png # 延迟 5秒后截图 scrot -d 5 screenshot.png # 截取当前窗口 scrot -u screenshot.png ``` ### 录屏工具 ```bash # 安装录屏工具 sudo apt-get install ffmpeg # 录制屏幕 ffmpeg -f x11grab -s 1920x1080 -i :0.0 -r 30 output.mp4 # 录制 30秒后停止 ffmpeg -f x11grab -s 1920x1080 -i :0.0 -r 30 -t 30 output.mp4 ``` ### 性能监控截图 ```bash # 安装 htop sudo apt-get install htop # 运行 htop 并截图 htop & sleep 2 scrot htop_screenshot.png ``` --- ## 测试报告模板 ### 测试报告结构 ```markdown # ShowenV2 测试报告 ## 测试信息 - 测试人员:[姓名] - 测试日期:[日期] - 测试版本:[commit hash] - 测试环境:[硬件/软件信息] ## 测试结果概览 - 编译测试:✅/❌ - 功能测试:✅/❌ - 性能测试:✅/❌ - 集成测试:✅/❌ - 对比测试:✅/❌ ## 详细测试结果 ### 编译测试 - cargo check: ✅ - cargo clippy: ⚠️ 7个 warning - cargo test: ✅ ### 功能测试 #### 视频播放 - 基本播放:✅ - 状态切换:✅ - 触发器:✅ - 截图:[附件] #### HTTP API - 状态查询:✅ - 播放控制:✅ - Web UI:✅ - 截图:[附件] #### BLE - 设备发现:✅ - GATT 服务:✅ - WiFi 配置:✅ #### WiFi - 扫描:✅ - 连接:✅ - 热点:✅ ### 性能测试 - 帧率:60fps ✅ - 内存占用:150MB ✅ - 启动时间:2.5秒 ✅ - 稳定性:运行 24小时无问题 ✅ ### 发现的问题 1. [问题描述] - 严重程度:P0/P1/P2/P3 - 复现步骤:[步骤] - 截图:[附件] - 建议:[修复建议] ## 质量评估 - 整体质量:优秀/良好/一般/较差 - 是否可以发布:是/否 - 风险提示:[风险说明] ## 建议 - [改进建议] ``` --- ## 测试检查清单 ### 编译检查 - [ ] cargo check 通过 - [ ] cargo clippy 零 warning - [ ] cargo test 通过 - [ ] cargo build --release 成功 ### 功能检查 - [ ] 配置文件加载正确 - [ ] 视频播放正常 - [ ] 状态机切换正确 - [ ] HTTP API 全部可用 - [ ] BLE 连接正常 - [ ] WiFi 功能正常 - [ ] 屏幕管理正常 ### 性能检查 - [ ] 帧率 ≥ 60fps - [ ] 内存占用合理 - [ ] 启动时间 ≤ 3秒 - [ ] 长时间运行稳定 ### 质量检查 - [ ] 无崩溃 - [ ] 无内存泄漏 - [ ] 无资源泄漏 - [ ] 错误处理完善 - [ ] 日志输出合理 ### 对比检查 - [ ] 功能对齐旧版本 - [ ] 性能不低于旧版本 - [ ] 用户体验改善 --- **文档版本**: v1.0 **最后更新**: 2026-03-12 **负责人**: 林晓峰 (QA 负责人)