メインコンテンツにスキップ

トレースビューアー

導入

Playwright Trace Viewer は、スクリプト実行後に記録された Playwright トレースを調査するのに役立つ GUI ツールです。トレースは、CI でテストが失敗した場合のデバッグに非常に役立ちます。トレースは、ローカルまたはブラウザ上の trace.playwright.dev で開くことができます。

トレースビューアーを開く

保存されたトレースは、Playwright CLI を使用するか、またはブラウザ (trace.playwright.dev) で開くことができます。trace.zip ファイルが配置されている場所へのフルパスを必ず指定してください。

playwright show-trace trace.zip

trace.playwright.dev の使用

trace.playwright.dev は、Trace Viewer の静的ホスト版です。ドラッグアンドドロップ、または Select file(s) ボタンを使ってトレースファイルをアップロードできます。

Trace Viewer は、トレースをブラウザ内で完全に読み込み、外部にデータを送信することはありません。

Drop Playwright Trace to load

リモートトレースの表示

リモートトレースは、その URL を使って直接開くことができます。これにより、例えば CI の実行結果から手動でファイルをダウンロードしなくても、リモートトレースを簡単に確認できます。

playwright show-trace https://example.com/trace.zip

trace.playwright.dev を使用する際、アクセス可能なストレージ (例: CI 環境内) にアップロードしたトレースの URL をクエリパラメーターとして渡すことも可能です。CORS (Cross-Origin Resource Sharing) のルールが適用される場合があります。

https://trace.playwright.dev/?trace=https://demo.playwright.dev/reports/todomvc/data/cb0fa77ebd9487a5c899f3ae65a7ffdbac681182.zip

トレースの記録

トレースは、--tracing フラグを付けてテストを実行することで記録できます。

pytest --tracing on

トレースのオプションは以下の通りです。

  • on: 各テストのトレースを記録
  • off: トレースを記録しない (デフォルト)
  • retain-on-failure: 各テストのトレースを記録しますが、成功したテスト実行のトレースは削除します。

これによりトレースが記録され、test-results ディレクトリに trace.zip という名前で保存されます。

Pytest を使用していない場合は、こちらをクリックしてトレースの記録方法をご確認ください。
browser = chromium.launch()
context = browser.new_context()

# Start tracing before creating / navigating a page.
context.tracing.start(screenshots=True, snapshots=True, sources=True)

page = context.new_page()
page.goto("https://playwright.dokyumento.jp")

# Stop tracing and export it into a zip archive.
context.tracing.stop(path = "trace.zip")

トレースビューアーの機能

アクション

「アクション」タブでは、すべてのアクションに使用されたロケーターと、各アクションの実行にかかった時間を確認できます。テストの各アクションにカーソルを合わせると、DOM スナップショットの変化を視覚的に確認できます。時間を前後に移動し、アクションをクリックして検査とデバッグを行います。「Before」タブと「After」タブを使用して、アクションの前後に何が起こったかを視覚的に確認します。

actions tab in trace viewer

各アクションを選択すると、以下が表示されます。

  • アクションスナップショット
  • アクションログ
  • ソースコードの場所

スクリーンショット

screenshots オプションをオン (デフォルト) にしてトレースすると、各トレースはスクリーンキャストを記録し、それをフィルムストリップとしてレンダリングします。フィルムストリップにカーソルを合わせると、各アクションと状態の拡大画像が表示され、検査したいアクションを簡単に見つけることができます。

アクションをダブルクリックすると、そのアクションの時間範囲が表示されます。タイムラインのスライダーを使用すると、選択したアクションを増やすことができ、これらは「アクション」タブに表示され、すべてのコンソールログとネットワークログは、選択したアクションのログのみを表示するようにフィルタリングされます。

timeline view in trace viewer

スナップショット

snapshots オプションをオン (デフォルト) にしてトレースすると、Playwright は各アクションの完全な DOM スナップショットのセットをキャプチャします。アクションのタイプに応じて、以下がキャプチャされます。

種類説明
Beforeアクションが呼び出された時点のスナップショット。
Action実行された入力の瞬間のスナップショット。このタイプのスナップショットは、Playwright が正確にどこをクリックしたかを調べるときに特に役立ちます。
Afterアクション後のスナップショット。

典型的なアクションスナップショットは次のようになります。

action tab in trace viewer

DOM ノードと正確なクリック位置の両方が強調表示されていることに注目してください。

ソース

サイドバーのアクションをクリックすると、そのアクションのコード行がソースパネルで強調表示されます。

showing source code tab in trace viewer

Call

「Call」タブには、アクションにかかった時間、使用されたロケーター、厳密モードかどうか、使用されたキーなど、アクションに関する情報が表示されます。

showing call tab in trace viewer

ログ

テストの完全なログを参照して、Playwright が舞台裏で何をしているかをより深く理解します。たとえば、ビューへのスクロール、要素が表示されるまで、有効になるまで、安定するまで待機し、クリック、入力、押下などのアクションを実行します。

showing log of tests in trace viewer

エラー

テストが失敗した場合、「エラー」タブに各テストのエラーメッセージが表示されます。タイムラインにも、エラーが発生した場所を強調表示する赤い線が表示されます。「ソース」タブをクリックして、ソースコードのどの行でエラーが発生したかを確認することもできます。

showing errors in trace viewer

コンソール

ブラウザとテストからのコンソールログを確認します。コンソールログがブラウザからのものか、テストファイルからのものかを示すために、異なるアイコンが表示されます。

showing log of tests in trace viewer

アクションサイドバーでテストのアクションをダブルクリックします。これにより、コンソールがフィルタリングされ、そのアクション中に作成されたログのみが表示されます。「すべて表示」ボタンをクリックすると、すべてのコンソールログが再度表示されます。

タイムラインを使用してアクションをフィルタリングするには、開始点をクリックして終了点までドラッグします。「コンソール」タブもフィルタリングされ、選択したアクション中に作成されたログのみが表示されます。

ネットワーク

「ネットワーク」タブには、テスト中に作成されたすべてのネットワークリクエストが表示されます。リクエストのタイプ、ステータスコード、メソッド、リクエスト、コンテンツタイプ、期間、サイズで並べ替えることができます。リクエストをクリックすると、リクエストヘッダー、レスポンスヘッダー、リクエストボディ、レスポンスボディなど、詳細情報が表示されます。

network requests tab in trace viewer

アクションサイドバーでテストのアクションをダブルクリックします。これにより、ネットワークリクエストがフィルタリングされ、そのアクション中に作成されたリクエストのみが表示されます。「すべて表示」ボタンをクリックすると、すべてのネットワークリクエストが再度表示されます。

タイムラインを使用してアクションをフィルタリングするには、開始点をクリックして終了点までドラッグします。「ネットワーク」タブもフィルタリングされ、選択したアクション中に作成されたネットワークリクエストのみが表示されます。

メタデータ

「アクション」タブの横にある「メタデータ」タブには、ブラウザ、ビューポートサイズ、テスト期間など、テストに関する詳細情報が表示されます。

meta data in trace viewer