外观
侧栏会话列表、设备信息与偏好设置窗口:产品设计
Owner 2026-11-02 要求:① 会话列表去掉“多选”“刷新”与“历史测试”标题,保留数量,增加“清空”;② 选择与 Finder 一致,右键菜单(打开、导出、删除),双击打开报告;③ “设备发现”改为“设备信息”,只显示设备信息;④ 设置入口改为菜单栏 Perfowl 菜单中的偏好设置,独立窗口,只保留必要项。
1. 侧栏结构
两个页签:设备信息、会话。原“设置”页签移除。
2. 会话列表
- 顶部:左侧“共 N 份”(多选时显示“已选 M / 共 N 份”);右侧“清空”。
- 清空:二次确认“将删除全部 N 份测试数据(移到废纸篓,可从废纸篓恢复)”;测试进行中不可清空,正在录制的会话永不删除。
- 刷新:不再提供按钮。窗口出现、测试结束、删除后自动刷新。
- 选择(与 Finder 一致):
- 单击:选中一份;
- ⌘ 单击:跳选(加入/移出);
- Shift 单击:连续选择;
- 双击:打开报告;
- 右键:弹出菜单,作用于当前选中项(右键未选中的行时先选中该行)。
- 说明:Owner 提到的“按住 ctrl 跳选”。macOS 中 Control+单击是系统约定的“右键”,Finder 跳选用 ⌘;为不与右键冲突,跳选采用 ⌘,Control+单击弹出右键菜单。
- 右键菜单:
- 选中 1 份:打开报告、导出 Excel…、删除…
- 选中多份且为同一应用:生成汇总报告、导出 Excel…(每份一个文件)、删除…
- 选中多份不同应用:导出、删除可用,汇总置灰并注明“需同一应用”。
- 删除:二次确认,移到废纸篓;已打开的报告窗口不受影响(窗口内数据已加载)。
- 导出:选择文件夹后为每份导出 Excel(不含截图 ZIP,需截图时在报告窗口内导出)。
3. 设备信息
只显示用户关心的设备事实:
| 项 | 说明 |
|---|---|
| 设备名称 | 用户在手机上设置的名称 |
| 设备型号 | 商品名(如 iPhone 14 Pro Max),无法识别时显示型号代码 |
| 系统版本 | iOS 版本与 Build |
| 连接状态 | 已连接 · 性能服务就绪 / 连接中 / 未连接;出错时显示“重新连接”按钮 |
| 目标应用 | 当前选择的应用 |
Route、DVT、身份校验、采集状态、样本数等内部信息只在开启“开发者模式”时以“诊断信息”分组显示。
4. 偏好设置(Perfowl 菜单 → 设置…,⌘,)
独立窗口,只保留会改变用户使用的项:
| 分组 | 项 | 说明 |
|---|---|---|
| 通用 | 实时截图预览 | 测试时在工作台显示手机画面;关闭可减少采集干扰(下次测试生效) |
| 通用 | 开发者模式 | 显示诊断信息、来源与原始统计 |
| 数据 | 存储位置 | 显示路径,“在 Finder 中显示” |
| 高级(仅开发者模式) | 保留 CoreProfile 原始块 | 研发回放用,长测占用更大 |
移除:发现通道、设备通道、采集器、当前 Route 等内部信息(开发者模式下在设备信息的诊断分组可见);“重新检查设备 / 重试性能服务”移到设备信息的“重新连接”。
5. 验收
- E2:会话删除只作用于存储目录内、非录制中的会话,并移到废纸篓;型号映射单元测试。
- E4:Owner 确认 Finder 式选择、右键菜单、双击打开、清空、设备信息与偏好设置窗口。
Implementation Update · 2026-11-02
| 文件 | 修改 |
|---|---|
PerfowlApp/SessionReviewViews.swift | 会话列表改为系统 List(selection:):单击/⌘/Shift 选择与 Finder 一致,双击打开(primaryAction),右键与 Control+单击弹出菜单(打开报告/生成汇总报告/导出 Excel…/删除…);顶部“共 N 份 / 已选 M”与“清空”;去掉“历史测试”标题、多选与刷新按钮;测试结束自动刷新;删除与清空二次确认。 |
PerfowlCore/PerformanceSessionStore.swift、SessionReviewController.swift | 新增 trashSessions:只处理存储目录内、manifest 可读且非 preparing/recording/stopping 的会话,移到废纸篓;控制器 delete 后刷新。 |
PerfowlApp/PerfowlWorkbenchView.swift | 侧栏页签改为“设备信息 / 会话”,移除“设置”页签;设备信息只显示设备名称、型号(商品名)、系统版本、连接状态、目标应用,异常时提供“重新检查设备 / 重新连接”;内部信息仅开发者模式在“诊断信息”分组显示。 |
PerfowlApp/PerfowlSettingsView.swift(新)、PerfowlApp.swift | Settings 场景:Perfowl → 设置…(⌘,)独立窗口;通用(实时截图预览、开发者模式)、数据(存储位置与“在 Finder 中显示”)、高级(仅开发者模式:保留 CoreProfile 原始块)。 |
PerfowlCore/DeviceModelName.swift(新) | iPhone 型号代码到商品名映射(未知时显示代码),用于设备信息、会话列表、报告头部、Excel 与 PDF。 |
PerfowlCore/SessionReportArtifacts.swift | 列表报告摘要去掉“(整机100%)”,新会话内存改为 MB(十进制);旧摘要中的 MiB 数值保持原样。 |
偏差
- Owner 原文“按住 ctrl 跳选”:macOS 中 Control+单击是系统右键,跳选按 Finder 约定使用 ⌘;Control+单击弹出右键菜单。
- 右键“导出”只导出 Excel(不含截图 ZIP);需要截图时在报告窗口中导出。
验证(E2)
- Swift 全量 447 项 0 失败(12 项跳过,含手动开启的渲染/真实数据测试;排除既有挂起的
UserReportIntegrationTests);新增型号映射与渲染测试。 - 渲染核对:会话列表(共 20 份、清空、商品名型号)与偏好设置窗口。
- Finder 式选择、右键菜单、双击、清空与设置菜单入口需 Owner 实际操作确认(E4 待测)。
Validation Update · 2026-11-02:内部包 244 构建与同址安装(E3)
- 来源:main
d4850a93,Developer ID 签名构建 186.4 秒,来源门禁passed。 - 校验:冻结核心 107 个模块与 CLI 和源码一致,严格签名、DMG 与安装后文件树一致,安装后
probeready;启动器只剩/Applications/Perfowl.app。 - 产物:
MacApp/dist/Perfowl-244-macos-x86_64-internal.dmg,146,415,745 B,SHA-256d9e5ee4a3e901f291a02360ec727524bf39fdf6de551f5a972ae811ac4d0e6fc;243 安装包与回滚包在私有归档,回滚已核对。 - 未完成:公证暂缓(Gatekeeper exit 3);界面交互的真机 E4 待 Owner 确认。