症状: PlaywrightのWebKitテストは通るのに、正式Safariでの確認が足りているか判断できません。
最短の解決策: 通常の回帰にはPlaywright WebKitを使い、正式Safariの挙動を保証する必要がある箇所にはmacOS上のSafari WebDriverテストを追加します。
この記事は、PlaywrightでE2Eテストを運用するフロントエンドエンジニア向けです。
クロスブラウザーCIを管理するQA・DevOps担当者や、Safari固有機能を開発するチームにも役立ちます。
テストシナリオごとに実行先を分ける
PlaywrightのWebKitと正式Safariは、同じテスト対象として扱えません。WebKitは幅広い回帰を効率よく見るために使い、Safariでしか確かめられない挙動はSafari上で確認します。どちらを採用するかは、必要なテスト証拠から決めてください。
Playwrightのブラウザー documentation が扱う主なブラウザーエンジンはChromium、Firefox、WebKitの3種類です。プロジェクトを複数定義すれば、同じテストを各エンジンで実行できます。ただし、テストが通ったことは、すべてのOSやブラウザーバージョンでの動作を確認したことにはなりません。Playwrightのブラウザーとプロジェクトの説明も参照し、実行環境を記録しましょう。
| テストシナリオ | 適した実行先 | 得られる証拠 | 注意点 |
|---|---|---|---|
| ボタン、フォーム、画面遷移などの一般的な回帰 | 既存CIのPlaywright WebKit | WebKit上での操作と画面状態 | 正式Safariの判定にはならない |
| Safari特有の挙動や対象バージョンの受け入れ確認 | macOS上のSafari WebDriver | 対象Safariでの自動テスト結果 | Mac環境とSafariの管理が必要 |
| WebKitでの検出後にSafariで再現する不具合 | WebKitとSafariの両方 | 差が生じる条件の比較 | 実行環境と再現手順を個別に残す |
PlaywrightのWebKitは、ブランド版Safariそのものを起動する仕組みではありません。Playwrightのドキュメントでは、同プロジェクトで使うWebKitビルドとSafariを区別し、macOS上でのWebKit実行はSafariに近いテスト環境になる一方、Safariそのもののテストとは異なることを説明しています。
| 実行環境 | 得意な確認 | 判定に使える範囲 |
|---|---|---|
| Chromium・Firefox・WebKitのPlaywrightプロジェクト | 共通UIや主要操作の回帰 | 各エンジン上のテスト結果 |
| macOS上のPlaywright WebKit | macOSでのWebKit挙動の確認 | Safariに近い条件での手掛かり |
| macOS上の正式Safari | Safari固有の機能・挙動・バージョン確認 | 実際に使ったSafari環境の結果 |
「WebKitで通ったからSafariでも問題ない」と結論づけるのは避けてください。どのOS、ブラウザーのビルド、Playwrightのバージョンで実行したかをテスト結果に添えれば、失敗の再現性や環境差を後から調べやすくなります。
通常のクロスブラウザー回帰にはWebKitを使う
フォーム入力、メニュー操作、ルーティング、基本的なレイアウト確認など、エンジンをまたぐ一般的なユーザー操作は、既存のPlaywrightプロジェクトで回帰させるのが現実的です。CIにWebKitプロジェクトを追加すれば、Safari利用者にも関係する共通部分の不具合を早めに検出できます。
この運用の利点は、すでにあるテストの流れへWebKitを組み込みやすいことです。一方、実行結果が正式Safariの証明にはならないこと、WebKitのビルドや実行プラットフォームが異なれば結果にも差が出ることは、テスト方針に明記してください。
| 運用上の確認項目 | 記録する内容 | 記録しない場合の問題 |
|---|---|---|
| ブラウザー | Chromium、Firefox、WebKitなどの対象 | どのエンジンで通ったか不明になる |
| 実行プラットフォーム | OSとCI実行環境 | ローカルとCIの差を特定しにくい |
| ツールの版 | Playwrightとブラウザーのビルド情報 | 更新前後の失敗を比較しにくい |
| テスト範囲 | 対象画面、操作、除外条件 | 通過結果を過大に解釈しやすい |
実務では、PRごとにクロスブラウザーの共通回帰を実行し、Safari固有の確認は必要な変更やリリース判定に結び付ける方法があります。Playwrightの失敗調査では、Trace Viewerの公式説明を参考にトレースを確認できます。ただし、そのトレースはPlaywrightの実行証拠であり、正式Safariでの実行結果の代わりにはなりません。
正式Safariが必要なシナリオを見極める
正式Safariでの確認が必要なのは、Safariの挙動そのものが受け入れ条件になっている場合です。たとえば、Safari固有機能を使う画面、対象のSafariバージョンで報告された不具合、Safari利用者の実操作を再現するテストが該当します。
Safari WebDriverは、macOS上でSafariを自動化するための選択肢です。Appleの説明に沿ってリモート自動化を有効にし、safaridriverを使ってテストを実行します。ドライバーが利用できることだけを根拠に、Playwrightのテスト資産がそのまま動く、あるいは特定機能が保証されるとは判断しないでください。AppleのSafari WebDriver資料と有効化・実行手順を確認し、チームのテスト基盤に合わせて実装します。
Safariを正式に確認する利点と負担
- 利点: Safari本体での操作結果を、受け入れテストの証拠として残せます。
- 利点: Safariの特定バージョンで起きる問題を、対象環境で再現できます。
- 負担: macOS実行環境の準備、更新、アクセス管理を担当する必要があります。
- 負担: WebKitだけのジョブよりテスト範囲が増え、結果の保管・調査方法も整える必要があります。
CIを選ぶときは、実行頻度だけでなく、誰がMacを管理するか、Safariテストが失敗したとき誰が再現するかも決めましょう。Macの保守担当が不明なままジョブだけ増やすと、Safariの更新後に不安定なテストが放置されやすくなります。
媒体再生やプラットフォーム機能はSafariで確かめる
動画や音声の再生、対応形式、ブラウザーやOSに関わる機能は、WebKitでの確認だけでは実際のSafari利用時の結果を確定できません。WebKitのテストで問題の兆候を見つけたら、対象のSafariと実際のメディア素材でも再生・操作を試し、どの条件で結果が変わるかを記録します。
WebKitはSafariの基盤となる技術ですが、WebKit上での動作をSafariの実機能と同一視しないことが重要です。たとえば、WebKitが公開するSafari 26.0の機能に関する記録は、特定バージョンに紐づいた情報として読めます。プロジェクトの結論には、実際に使ったSafariのバージョン、OS、メディア形式、再生結果を添えてください。
| 確認内容 | Playwright WebKitで見ること | 正式Safariで追加確認すること |
|---|---|---|
| 再生開始や停止などの基本操作 | 操作に応じたアプリ側の状態変化 | 対象Safariでの実際の再生と操作 |
| メディア形式に関わる処理 | WebKit上でのエラーや状態遷移 | 実際の素材を使った再生結果 |
| ブラウザー機能への依存 | WebKit上の機能検出やフォールバック | 対象バージョンでの機能と代替表示 |
WebKitテストで失敗した場合は、Safariでも同じ問題が起きると断定せず、まず条件を切り分けます。逆にWebKitで通過した場合も、正式Safariでの受け入れが必要な機能ならSafariで確認を続けます。この二つの証拠を分けて保存することが、互換性の判断を誤らないための要点です。
Safariの確認をCIのどこへ置くか
Safariの検証を含むCIは、すべてをMacへ集約するより、テスト目的で階層化するほうが管理しやすくなります。通常のWebKit回帰は現在のクロスプラットフォームCIに残し、Safari固有の合否判定だけをmacOSのSafari WebDriverジョブへ割り当てます。
| チームの要件 | 推奨する構成 | 選定時に確認すること |
|---|---|---|
| 一般的なWeb回帰が中心 | 既存CIでPlaywright WebKitを実行 | テスト対象と実行環境の記録 |
| 正式Safariの結果がリリース条件 | macOS Safari WebDriverジョブを追加 | Macの管理者、アクセス、結果保管 |
| 共通回帰とSafari受け入れの両方が必要 | WebKitとSafariを分けた段階的なパイプライン | どの変更でSafariジョブを必須にするか |
MacをCIへ加える前に、次の項目を確認してください。
- [ ] Safariで確認が必要なテストと、WebKit回帰で足りるテストを分ける。
- [ ] CIログにOS、Safari、Playwright、WebKitの実行情報を残す。
- [ ] Safari WebDriverの有効化と実行手順を担当者が再現できるようにする。
- [ ] Safariジョブの失敗時に、再現・修正・結果保管を行う担当を決める。
- [ ] Macの常時利用が必要か、特定のリリース確認だけで足りるかを見直す。
注意:WebKitの成功はWebKit上の成功として記録し、正式Safariの受け入れ結果と同じ欄へまとめないでください。異なるテスト証拠を一つの合否にすると、Safariで未確認の範囲が見えなくなります。
よくある疑問
PlaywrightのWebKitテストはSafariテストと同じですか?
同じではありません。PlaywrightのWebKitプロジェクトはWebKitを使いますが、ブランド版Safariを直接操作するものではありません。一般的な回帰には有効ですが、正式Safariでの挙動を保証したい場合は、対象のmacOSとSafariを用意して別のテスト結果を残してください。
Playwrightから正式版Safariを直接起動できますか?
PlaywrightのWebKitプロジェクトをSafari本体の起動手段として扱うことはできません。Safariを自動化するには、macOSでSafari WebDriverを利用する構成を検討します。Playwrightで書いたテストをSafari WebDriverでどう扱うかは、実装方式と既存のテスト基盤を確認して決めてください。
Safari WebDriverのテストにmacOSは必要ですか?
Safari WebDriverでSafariを自動化するテストは、macOS上のSafariを実行対象にします。Appleの案内に従ってリモート自動化を有効にし、safaridriverを利用できる環境を整えてください。Macの準備や保守をチームで担えない場合は、ジョブ追加の前に運用責任も決める必要があります。
どんな互換性問題を正式Safariで確かめるべきですか?
Safari固有機能、特定バージョンで報告された不具合、Safari利用者の操作、媒体の再生結果など、正式Safariが判定対象になる問題です。WebKitでの結果は原因を絞る手掛かりにはなりますが、Safariの合否そのものではありません。実際の素材と対象環境を使って再現し、結果を記録してください。
Safari固有の確認が必要ないチームなら、既存CIのPlaywright WebKitを維持し、実行環境の記録を整えるところから始められます。正式Safariの自動化や継続的な再現環境が必要なら、Macの運用担当、利用頻度、アクセス方法を先に整理してください。自前のMacは常時使う環境を管理しやすい一方、調達と保守が必要です。LinuxのCIだけでは正式Safariを動かせず、都度の手作業確認では再現性や記録が不足しがちです。必要な期間だけMac環境を使いたい場合は、KVMNODEのリモートMac案内を確認し、チームのテスト要件に合うか検討できます。継続的な自社保有との違いは、Mac miniの導入案内も判断材料になります。