真机实验室测试流程
发布于
一项测试是在设备上打开公开测试页、按编号完成的一段简短流程,编号从 T0、T1 依次往下。回答同一个问题的结果收在同一张行为页里。编号后缀表示变体:-WI 需要接一台开着 Web Inspector 的 Mac,T4b 是 T4 的状态栏样式变体,T5b 用第三方浏览器重做一遍「添加到主屏幕」检查。
一个测试由哪些部分组成
链接到“一个测试由哪些部分组成”一节动手之前,先记下预期结果和出处。完成操作后,记录屏幕和页面实际显示了什么,与预期不同也算一项发现。流程要求每个测试不超过 5 分钟,整张清单不超过 1 小时;超时的测试就地停下,记为 incomplete 并写明原因。
干净状态
链接到“干净状态”一节标明「干净状态」的测试,开始时不能留有上一次测试的痕迹。测试流程给出了 iPhone 上的做法:重新添加之前先删掉主屏图标(长按图标,选移除 App,再选删除 App),并在「设置 > App > Safari > 高级 > 网站数据」里清除该网站的数据(更早的版本在「设置 > Safari > 高级」)。「网站数据」这一项,Apple 在 Delete your Safari history, cache, and cookies on iPhone(apple.com)里有说明。依赖先前状态的测试(比如要求在「添加到主屏幕」之前先在 Safari 里写入一个 Cookie)会写明它需要什么状态。
标签页与主屏应用
链接到“标签页与主屏应用”一节同一个页面,在 Safari 标签页里和从主屏图标启动时,表现可能不一样。2026-10-20 那次测试里,带 manifest 的主屏 Web 应用运行在独立于 Safari 的进程中,存储也独立;而没有 manifest、没有图标的页面从主屏打开后,仍在 Safari 的进程里运行,用的也是 Safari 的存储(主要发现第 1 条)。每次读数都标明环境,tab 或 app,每条结果也写明覆盖哪个环境。各版本测试页见测试页版本。
记录与置信度
链接到“记录与置信度”一节测试记录使用同一组字段,包括结果(as-expected、differs、附原因的 could-not-run,或附原因的 incomplete)、一两句事实性的观察(屏幕上的文字按界面语言原样引用)、关键数值、截图文件名和用时。结果还附置信度标签,按研究报告第 5.4 节的定义填写。A 表示代理测得的仪器读数,原样存放在 raw/ 里(来自 Web Inspector 读数,部分标签页数值来自 WebDriver 读数);S 表示操作员拍下、事后由代理分析的截图或录屏;O 表示只有操作员的口头报告。A+S 这样的组合表示几个相互独立的来源结论一致。
测试列表
链接到“测试列表”一节测试索引按编号列出用时、适用平台、各版本对应的测试页及相关行为。v1 测试页都在 /lab/device-tests/ 下,设置了 noindex,在要测试的设备上打开。
| 测试 | 名称 | 用时 | 平台 | 测试页 | 对应行为 |
|---|---|---|---|---|---|
| T0 | Web Inspector 设置与 UA | 5 分钟 | iOS | 测试页 v1:PWA Lab | 无。 |
| T1 | 无 manifest 页面添加到主屏 | 5 分钟 | iOS | 测试页 v1:t1/no-manifest | 无 manifest 页面从主屏启动 |
| T1-WI | 用 Web Inspector 读取无 manifest 图标的显示模式 | 2 分钟 | iOS | 测试页 v1:t1/no-manifest | 无 manifest 页面从主屏启动 |
| T2 | 安装 demo 并启动 | 4 分钟 | iOS | demo 页面:/demo/ | 独立窗口的视口与显示模式 |
| T3 | 主屏图标 | 4 分钟 | iOS | 测试页 v1:PWA Lab、t3/manifest-only | 主屏图标的选取 |
| T4 | 已安装应用的状态栏区域 | 6 分钟 | iOS | 测试页 v1:t4/baseline、t4/fixed、t4/sticky、t4/safe-area、t4/threshold、t4/white-top、t4/theme-red、t4/bg-green、t4/dynamic | 状态栏颜色的来源 |
| T4-18c | manifest theme_color 与 meta theme-color 对照(M1、M2、M3 应用) | 含在 T4 内 | iOS | 测试页 v1:t4/theme-m1、t4/theme-m2、t4/theme-m3 | 状态栏颜色的来源 |
| T4b | apple-mobile-web-app-status-bar-style 应用 | 5 分钟 | iOS | black-translucent 状态栏下的页面几何 | |
| T5 | 标签页与应用中的显示模式 | 3 分钟 | iOS | 测试页 v1:PWA Lab demo 页面:/demo/ | 独立窗口的视口与显示模式 |
| T5b | 从第三方浏览器添加到主屏 | 3 分钟 | iOS | demo 页面:/demo/ | 无。 |
| T6 | Safari 与主屏应用的存储和 Cookie | 5 分钟 | iOS | 测试页 v1:PWA Lab、t3/manifest-only demo 页面:/demo/ | 存储隔离与 Cookie 复制 |
| T7 | 通知权限与推送订阅 | 5 分钟 | iOS | demo 页面:/demo/push/ | 通知权限弹窗、声明式 Web Push 与订阅作用域 |
| T8 | notificationclick 的暴露、处理函数与通知点击 | 5 分钟 | iOS | 测试页 v1:PWA Lab | 主屏 Web 应用中的 notificationclick、标签页与主屏应用中的 worker 事件处理属性、上划关闭后的页面存活 |
| T9 | iOS 上不存在的安装 API | 2 分钟 | iOS | 测试页 v1:PWA Lab demo 页面:/demo/ | iOS 上的安装 API |
| T10 | 声明式 Web Push 检测 | 2 分钟 | iOS | 测试页 v1:PWA Lab demo 页面:/demo/push/ | 声明式 Web Push 与订阅作用域 |
| T11 | 已安装应用中的角标 | 3 分钟 | iOS | demo 页面:/demo/badging/ | 主屏图标上的应用角标 |
测试前后
链接到“测试前后”一节把你加载的文件和公开的哈希比对一下。v1 测试页每个文件按实际下发字节计算的 SHA-256 列在 /lab/harness/v1/SHA256SUMS.txt 里。研究报告要求复测者把下发的文件和记录的哈希比对,因为实验室的页面可能改动;2026-10-20 测试期间就改过一次。约 08:28 UTC 的一次部署改了 lab.js,而已经打开的页面继续用缓存里的旧文件(第 10 节 Harness drift 一条)。iPhone 与 iPad 指南里有做这项比对的脚本。
设备操作由 OpenPWA 的一名操作员在 iPhone 16 Pro 上完成。AI 代理会话通过 USB 读取页面状态、记录实验笔记并起草本文;自动门禁和 AI 事实核查做了检查。没有人逐篇审阅。