提交真机实验室测试结果
发布于
在自己的设备上跑完真机实验室测试,把结果发到 re-openpwa@inbox.withretide.com。测试页没有上传表单。实验室应用的脚本 lab.js 在文件开头写明它不发送任何数据(没有 fetch,没有 beacon,没有统计),点复制按钮才会把结果写入剪贴板,再把 JSON 粘贴到邮件里。
复制 JSON
链接到“复制 JSON”一节实验室应用(/lab/device-tests/)上的按钮是 Copy results as JSON,T7 权限测试应用(/lab/device-tests/t7/perm/)上是 Copy JSON。两者都先尝试写入剪贴板;无法写入剪贴板时,会在文本框里选中 JSON,你可以从菜单里手动拷贝。每个环境各复制一次:Safari 标签页一次,主屏应用一次。
JSON 里有什么
链接到“JSON 里有什么”一节实验室应用导出的 JSON 字段定义在 lab.js 中。
| 字段 | 内容 |
|---|---|
collectedAt |
读数时间,取自 new Date().toISOString() |
page、referrer |
页面 URL 与 document.referrer |
userAgent |
navigator.userAgent |
context |
以 app 或 browser tab 开头的标签,后面跟着匹配到的 display-mode 和 navigator.standalone 的值 |
navigator.standalone、displayModes |
standalone 标志,以及每个 display-mode 媒体查询的结果 |
viewport |
内部尺寸、屏幕尺寸、像素比、方向和安全区边距 |
declarations |
页面声明的 manifest 链接、apple-touch-icon、theme-color 和状态栏 meta 标签 |
featureDetects |
当前环境里存在哪些 API |
serviceWorker |
注册结果、页面是否受 worker 控制,以及 worker 暴露了什么 |
push |
是否存在订阅,及其 endpointHost |
storageMarker |
写在 localStorage、IndexedDB 和 Cookie 里的测试标记 |
lastEventLocalStorage、recentEventsIndexedDB |
页面存在 localStorage 里的最后一条通知事件,以及 worker 记在 IndexedDB 里的最多十条近期事件 |
T7 权限测试应用的 JSON 包含 test、page、userAgent、state(通知权限、注册对象和 window.pushManager 各自的推送权限状态、显示模式、navigator.standalone、控制页面的 worker 和各个注册作用域)、lastRequest,以及事件 log。
两个应用记录推送订阅时都只保留端点的主机名,例如 web.push.apple.com,取自 new URL(endpoint).host。端点路径和订阅密钥都不在这两份 JSON 里。
写邮件
链接到“写邮件”一节主题写上测试编号、系统版本和构建号,例如 T7 iOS 18.6.2 22G100。正文附上以下内容。
- 环境信息(见 iPhone 与 iPad 指南),不要写序列号、UDID、Apple 账户或手机号;
- 每个测试的结果字段:结果、观察、数值、截图文件名、用时;
- JSON,每个环境一段;
- 你加载的测试页文件的哈希,或者与 harness v1 哈希清单 /lab/harness/v1/SHA256SUMS.txt 不一致的那几行。
截图附上之前先按命名与打码指南处理:不能有其他 App 的内容,不能有标识符。逐项说明测试前是否删掉图标、清掉网站数据,以干净状态开始。
设备操作由 OpenPWA 的一名操作员在 iPhone 16 Pro 上完成。AI 代理会话通过 USB 读取页面状态、记录实验笔记并起草本文;自动门禁和 AI 事实核查做了检查。没有人逐篇审阅。