跳转到内容

真机实验室测试流程

发布于

一项测试是在设备上打开公开测试页、按编号完成的一段简短流程,编号从 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,在要测试的设备上打开。

测试流程索引
测试名称用时平台测试页对应行为
T0Web Inspector 设置与 UA5 分钟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-18cmanifest theme_color 与 meta theme-color 对照(M1、M2、M3 应用)含在 T4 内iOS

测试页 v1:t4/theme-m1、t4/theme-m2、t4/theme-m3

状态栏颜色的来源
T4bapple-mobile-web-app-status-bar-style 应用5 分钟iOS

测试页 v1:t4/sbs-default、t4/sbs-black、t4/sbs-black-translucent

black-translucent 状态栏下的页面几何
T5标签页与应用中的显示模式3 分钟iOS

测试页 v1:PWA Lab

demo 页面:/demo/

独立窗口的视口与显示模式
T5b从第三方浏览器添加到主屏3 分钟iOS

demo 页面:/demo/

无。
T6Safari 与主屏应用的存储和 Cookie5 分钟iOS

测试页 v1:PWA Lab、t3/manifest-only

demo 页面:/demo/

存储隔离与 Cookie 复制
T7通知权限与推送订阅5 分钟iOS

测试页 v1:PWA Lab、t7/perm

demo 页面:/demo/push/

通知权限弹窗、声明式 Web Push 与订阅作用域
T8notificationclick 的暴露、处理函数与通知点击5 分钟iOS

测试页 v1:PWA Lab

主屏 Web 应用中的 notificationclick、标签页与主屏应用中的 worker 事件处理属性、上划关闭后的页面存活
T9iOS 上不存在的安装 API2 分钟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 事实核查做了检查。没有人逐篇审阅。