在 iPhone 与 iPad 上运行真机实验室测试
发布于
在 iPhone 上跑一次真机实验室测试,要按公开流程操作,并在开始和结束时核对文件哈希。流程出自 2026-10-20 iOS 18.6.2 基线测试公开的测试流程,哈希比对的要求出自研究报告第 13 节关于复现的说明。你需要 iPhone、Safari、大约一小时;带 -WI 后缀的测试还需要一台装有 Safari 的 Mac 和一根 USB 线(见配置 Web Inspector)。
第一步之前
链接到“第一步之前”一节打开测试页之前,先做哈希快照、填好环境信息。
做测试前哈希快照
链接到“做测试前哈希快照”一节v1 测试页每个文件按实际下发字节计算的 SHA-256 列在 SHA256SUMS.txt 里。先对服务器发给你的内容算哈希,再和这份清单比对,就能知道服务器下发的是否仍是冻结的文件。这一步核对的是服务器,不是手机上已经打开的页面正在运行的那一份(见下一节)。在 Mac 或 Linux 的终端里运行:
curl -s https://openpwa.net/lab/harness/v1/SHA256SUMS.txt | grep -v '^#' |while read -r expected file; do actual=$(curl -s --compressed "https://openpwa.net/${file%index.html}" | shasum -a 256 | cut -d' ' -f1) if [ "$actual" = "$expected" ]; then echo "ok $file"; else echo "CHANGED $file"; fidone | tee pre-run-snapshot.txt文件与冻结版本一致时,输出为 ok。出现 CHANGED 说明下发的文件不是冻结时的那一份,把它记进笔记,再去 v1 测试页说明查有没有勘误。如果还要用 demo,把你加载的 /demo/ 页面的哈希也写进同一个文件;demo 不冻结,这些哈希要和笔记放在一起。
下发的文件可能在测试中途改变
链接到“下发的文件可能在测试中途改变”一节报告要求复测者把下发的文件和记录的哈希比对,因为实验室的页面可能改动。2026-10-20 测试期间,约 08:28 UTC 的一次部署改了 lab.js,而已经打开的页面继续运行缓存里的旧文件,这个文件的缓存时间是 max-age=14400(第 10 节 Harness drift 一条)。所以服务器上的哈希变了,并不能说明页面跑的是哪一份。结束时再做一次快照;哪一行变了,记下你发现的时间,之后的读数按两份文件都有可能来处理。
填写环境信息
链接到“填写环境信息”一节把环境信息模板复制到笔记里,按设备和测试场次分别填写。查型号号码,打开「设置 > 通用 > 关于本机」,轻点「型号号码」右边显示的部件号码(Find the model number of your iPhone, iPad, or iPod touch,apple.com);Apple 在 Identify your iPhone model(apple.com)里列出了各个型号。
- date / time / time zone:- device: <marketing name> (<model number>)- OS: iOS <version> (<build>) [Settings > General > About > iOS Version]- release channel: release | public beta | developer beta | RC- Safari: <version>; user agent from T0-WI: <navigator.userAgent>- device language / region:- Safari feature flags changed from default: none | <list>- content blockers / VPN / iCloud Private Relay: <on or off>- Mac for Web Inspector: <macOS version, Safari version> | not used字段名保持英文,方便和公开数据逐项对照。Safari 的功能标志(「设置 > App > Safari > 高级 > 功能标志」)不要动;已经不是默认值的,列在这段里。
运行测试
链接到“运行测试”一节按测试列表的顺序往下做,这样不会重复安装同一个应用。测试页写明了预期结果及其出处,点之前先读一遍。
- 测试要求干净状态时,先长按该测试的主屏图标,选移除 App,再选删除 App。在「设置 > App > Safari > 高级 > 网站数据」里清除该网站的数据(测试流程写明,更早的版本在「设置 > Safari > 高级」)。「网站数据」这一项,Apple 在 Delete your Safari history, cache, and cookies on iPhone(apple.com)里有说明。
- 在 Safari 标签页里打开测试页,例如实验室应用 /lab/device-tests/,或 T7 权限测试应用 /lab/device-tests/t7/perm/。读面板上的结果;
-WI测试则从 Mac 上读取页面。 - 轻点「共享」,选添加到主屏幕,除非测试另有要求,名称保持预填的样子。测试要求时,给添加面板截一张图。
- 从图标启动应用,不要从 Safari 里打开,然后再读一次。2026-10-20 的测试里,带 manifest 的主屏 Web 应用运行在独立进程中,而既没有 manifest 也没有图标的页面从主屏打开后仍在 Safari 里运行(主要发现第 1 条),所以标签页和应用两侧的结果分开记录。
- 按测试流程记录结果,先填结果(
as-expected、differs、could-not-run或incomplete,后两项须说明原因)。再用一两句写观察,屏幕文字按界面语言原样引用;填上测试要求的数值、截图文件名和用时。 - 五分钟就停。超时的测试记为
incomplete并写明原因,然后继续下一个。
一次只问一件事,并且准确说出屏幕上的元素(比如「显示时间、信号和电量的那一条」)。基线测试里有几次口头报告答非所问,核对读数和截图后才发现,实验笔记逐条记了下来。
证据与隐私
链接到“证据与隐私”一节截图按命名与打码指南处理。保存或发送任何东西之前:
- 推送订阅只记录端点的主机名,不记录端点路径和密钥(lab.js 和 T7 权限应用只打印主机名,例如
web.push.apple.com); - 其他 App 的通知、联系人、运营商名称、位置和其他网站的标签页标题,裁掉或涂掉;
- 不留任何标识符:序列号、UDID、Apple 账户、手机号都不要出现。
再做一次哈希快照,和第一次的比对;有变化的行按上文的办法记下。记下哪些测试跑过、哪些与预期不同、哪些没能跑。给 OpenPWA 发结果的步骤见提交测试结果。
iPad
链接到“iPad”一节已发布的结果中没有 iPad,2026-10-20 的测试也没有覆盖 iPadOS。测试流程写明 iPadOS 的「添加到主屏幕」界面和多任务窗口与 iPhone 不同,计划在 iPhone 测试的同一周跑一小部分 iPad 测试,引用时系统写作 iPadOS <version>。iPad 要单独填一份环境信息。
设备操作由 OpenPWA 的一名操作员在 iPhone 16 Pro 上完成。AI 代理会话通过 USB 读取页面状态、记录实验笔记并起草本文;自动门禁和 AI 事实核查做了检查。没有人逐篇审阅。