跳转到内容

提交真机实验室测试结果

发布于

在自己的设备上跑完真机实验室测试,把结果发到 re-openpwa@inbox.withretide.com。测试页没有上传表单。实验室应用的脚本 lab.js 在文件开头写明它不发送任何数据(没有 fetch,没有 beacon,没有统计),点复制按钮才会把结果写入剪贴板,再把 JSON 粘贴到邮件里。

实验室应用(/lab/device-tests/)上的按钮是 Copy results as JSON,T7 权限测试应用(/lab/device-tests/t7/perm/)上是 Copy JSON。两者都先尝试写入剪贴板;无法写入剪贴板时,会在文本框里选中 JSON,你可以从菜单里手动拷贝。每个环境各复制一次:Safari 标签页一次,主屏应用一次。

实验室应用导出的 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。正文附上以下内容。

  1. 环境信息(见 iPhone 与 iPad 指南),不要写序列号、UDID、Apple 账户或手机号;
  2. 每个测试的结果字段:结果、观察、数值、截图文件名、用时;
  3. JSON,每个环境一段;
  4. 你加载的测试页文件的哈希,或者与 harness v1 哈希清单 /lab/harness/v1/SHA256SUMS.txt 不一致的那几行。

截图附上之前先按命名与打码指南处理:不能有其他 App 的内容,不能有标识符。逐项说明测试前是否删掉图标、清掉网站数据,以干净状态开始。

设备操作由 OpenPWA 的一名操作员在 iPhone 16 Pro 上完成。AI 代理会话通过 USB 读取页面状态、记录实验笔记并起草本文;自动门禁和 AI 事实核查做了检查。没有人逐篇审阅。