常規跨瀏覽器回歸先用 Playwright 的 WebKit 專案;需要驗證正式 Safari 行為時,再加入 macOS 上的 Safari WebDriver 測試。若驗收依賴 Safari 版本、平台能力或真實瀏覽器流程,WebKit 測試通過不能代替 Safari 實測。
適合負責 Playwright 端對端測試、需要釐清 Safari 相容性邊界的前端工程師。
也適合維護跨瀏覽器 CI、要決定哪些工作需要 Mac 的 QA 與 DevOps 工程師。
若你的團隊開發 Safari 特定功能,本文可協助規劃測試分層與執行環境。
一般跨瀏覽器回歸:先用 Playwright WebKit
若測試目標是檢查常見互動流程是否在不同瀏覽器引擎中維持一致,Playwright 的 Chromium、Firefox 與 WebKit 專案適合作為日常回歸層。你可以用同一組測試涵蓋導覽、表單、登入流程、前端狀態更新等共通功能,再依測試結果追查引擎差異。
Playwright 的瀏覽器文件說明,Playwright 使用其管理的瀏覽器建置;WebKit 建置不是品牌版 Safari。測試前應記錄 Playwright 套件版本、瀏覽器建置、執行平台與專案設定,避免只保存「測試通過」而漏掉結果所依據的環境。Playwright 瀏覽器文件也說明了瀏覽器安裝與版本配合方式。
日常回歸的價值在於讓問題提早浮現,而不是宣告覆蓋所有使用者環境。使用不同作業系統執行 WebKit,或在 CI 更新瀏覽器建置後,實際測試條件都可能改變;測試報告應保留執行環境與建置資訊,才有助於比較前後結果。
| 測試方式 | 適合驗證的場景 | 能提供的證據 | 不應據此推論 |
|---|---|---|---|
| Playwright Chromium、Firefox、WebKit 專案 | 共通互動流程、一般回歸、引擎差異初步篩查 | 指定 Playwright 與瀏覽器建置下的自動化結果 | 所有作業系統與正式瀏覽器版本均已通過 |
| macOS 上的 Playwright WebKit | 更接近 Safari 的 WebKit 測試環境 | macOS 上特定 WebKit 建置的測試結果 | 已在正式 Safari 完成驗收 |
| macOS Safari WebDriver | 正式 Safari 的自動化流程與版本驗收 | 指定 Safari 執行環境中的測試結果 | 未實測的其他 Safari 版本或使用者裝置也必然相同 |
Playwright WebKit 與 Safari 測試的邊界
Playwright WebKit 與正式 Safari 使用相關的瀏覽器引擎基礎,但不能將兩者視為同一測試環境。Playwright 說明其 WebKit 建置經過調整,並指出在 macOS 執行 WebKit 可讓測試環境更接近 Safari;這仍不代表測試直接操作了正式 Safari。Playwright 的瀏覽器說明提供了這項邊界與平台差異的背景。
這個差別會影響測試結果的表述方式。你可以說「指定環境的 Playwright WebKit 回歸通過」,但若沒有執行 Safari WebDriver,就不宜將結論寫成「Safari 驗收通過」。同樣地,WebKit 發現問題能提示你檢查 Safari,但不能單憑引擎測試判定正式 Safari 的具體行為。
注意:測試名稱最好包含執行平台與瀏覽器類型。將工作標成「Safari」但實際執行 Playwright WebKit,會讓 CI 報告失去可信的驗收邊界。
正式 Safari 驗收:交由 Safari WebDriver
當需求明確寫著「必須在 Safari 通過」,或問題與正式瀏覽器版本、真實使用者流程相關,就應安排 macOS Safari 測試。Apple 將 Safari WebDriver 作為自動化 Safari 的方式,並提供啟用與執行測試的說明;請依照Apple 的 Safari WebDriver 文件與Safari WebDriver 測試指引核對環境設定。
Safari WebDriver 的作用是讓自動化工具驅動 Safari,不代表測試工具能保證涵蓋所有使用者設定、裝置條件或瀏覽器版本。正式驗收應清楚記下 Safari 版本、macOS 執行環境、測試帳號與必要的前置條件,讓失敗案例可以重現。
若團隊原本只有 Linux 或 Windows CI,常見問題不是「能否再加一個 WebKit job」,而是是否真的需要正式 Safari 證據。前者可以留在原有跨平台流水線;後者需要準備 macOS 上的 Safari 執行工作。你可先從KVMNODE 的遠端 Mac 使用方式了解遠端環境選項,再依團隊的維護方式決定是否接入。
影片與平台能力:以真實 Safari 結果作結論
涉及影片播放、媒體格式或平台支援能力時,Playwright WebKit 適合用來發現可能的相容性問題,但不能單獨證明正式 Safari 上的播放結果。媒體行為可能同時受瀏覽器版本、平台能力、媒體來源與頁面實作影響;應使用專案實際提供的影片與播放流程,在目標 Safari 環境中確認。
WebKit 發布的Safari 26.0 功能說明可作為檢視 Safari 媒體相關變化的官方技術線索,但它不是你的網站測試報告。你需要把文件中的平台資訊與自己的測試結果分開保存,不能因為規格或功能說明存在,就推定專案影片已正常播放。
建議在測試紀錄中保留媒體檔案或來源、實際執行的瀏覽器與版本、操作步驟、預期結果和觀察結果。若 WebKit 測試失敗,先確認是否為頁面共通問題;若只有正式 Safari 出現差異,就以 Safari 的實測結果作為相容性判斷依據。
CI 分層:按驗收證據選擇執行環境
| 團隊需求 | 建議的 CI 工作 | 需要 Mac 的理由 | 取捨 |
|---|---|---|---|
| 只需一般跨瀏覽器互動回歸 | 保留既有跨平台 CI,加入 Playwright WebKit 專案 | 通常不必只為 WebKit 回歸另設 Safari 工作 | 不會因此取得正式 Safari 驗收證據 |
| 驗收條件要求正式 Safari | 增設 macOS Safari WebDriver 工作 | 目標是自動化正式 Safari | 需要安排 Mac 環境與工作維護責任 |
| 一般回歸與正式 Safari 均重要 | 分層執行:共通回歸留在現有 CI,Safari 專項派送至 Mac | 讓每個工作對應清楚的測試目的 | 需維護兩種測試環境與結果標示 |
優點:WebKit 回歸可沿用既有跨平台 CI;Safari WebDriver 工作則提供正式 Safari 的測試證據。
限制:若沒有 Mac 執行環境,便不能把正式 Safari 自動化結果列入驗收;若團隊沒有 Safari 特定驗收需求,新增 Mac 工作也會增加維護範圍。
你可以先訂出測試的派送條件:只檢查共通互動的工作走既有 CI;驗收要求明確指向正式 Safari、媒體實測或特定版本行為時,才送往 macOS Safari WebDriver。將兩種 job 的名稱、結果與報告分開,避免儀表板把不同測試證據合併呈現。
接入 Mac 前的可勾選清單
- [ ] 列出必須在正式 Safari 驗收的使用者流程,不把全部 WebKit 案例直接複製到 Mac 工作。
- [ ] 在 Playwright 報告中記錄套件版本、瀏覽器建置、執行平台與專案設定。
- [ ] 依 Apple 文件設定 Safari WebDriver,並確認 CI 工作實際啟動的是 Safari,而非 Playwright WebKit。
- [ ] 為 Safari 工作保留可辨識的瀏覽器版本、macOS 環境與測試結果紀錄。
- [ ] 對影片或平台能力相關案例使用專案真實媒體,在正式 Safari 環境確認播放結果。
- [ ] 設定失敗案例的重跑與問題回報方式,避免將偶發失敗直接改寫為瀏覽器相容性結論。
- [ ] 評估誰負責 Mac 工作的排程、憑證與執行環境維護,再決定自建、租用或沿用現有 Mac。
若團隊要比較自有設備與遠端環境,可先查看Mac mini 雲端方案資訊,再按測試觸發頻率、會話需求與維護責任估算是否合適。自購 Mac 需要承擔硬體投入與維護;借用個人 Mac 不一定能穩定提供 CI 執行;Linux 工作則無法取代正式 Safari。若你只在發布前偶爾需要 Safari 驗收,或需要可持續存取的 Mac 測試環境,租用 KVMNODE 的遠端 Mac 可少掉自行購置硬體與維護主機的負擔。若測試長期高負載,或必須直接操作實體介面,則應先比較自有設備與租用環境的限制,再作決定。