Skip to main content
Glama
playwright-autopilot

playwright-autopilot

Playwright Autopilot

Selenium、Cypress、またはWebDriverIOを使用していますか? E2Epilot は、Selenium JavaやSeleniumBaseなど、6つのフレームワークに同じAIトリアージエンジンを提供します。 ウェブサイト: e2epilot.com | npm: @e2epilot/cli

Claude Code プラグインで、Playwright E2Eテストを自律的にデバッグおよび修正します。テストを完全なアクションキャプチャ(DOMスナップショット、ネットワークリクエスト、コンソール出力、スクリーンショット)とともに実行し、シニアQAエンジニアのように障害を調査して修正を適用します。

https://github.com/user-attachments/assets/26f734a5-d05e-41c9-bc3f-2b58561c2ce0

クイックスタート

# Add the marketplace
/plugin marketplace add kaizen-yutani/playwright-autopilot

# Install the plugin
/plugin install kaizen-yutani/playwright-autopilot

次に、Claudeに失敗したテストの修正やスイート全体のトリアージを依頼します:

/playwright-autopilot:fix-e2e tests/checkout.spec.ts
/playwright-autopilot:triage-e2e e2e

または、必要なことを説明するだけでも、Claudeが自動的にMCPツールを使用します:

Fix all failing e2e tests in the "e2e" project

Related MCP server: Limetest MCP Server

機能

テスト実行中のすべてのブラウザアクションは、以下とともにキャプチャされます:

  • 前後DOMスナップショット — 各クリック、入力、ナビゲーション前後のページのAriaツリー

  • ネットワークリクエスト — URL、メソッド、ステータス、タイミング、リクエスト/レスポンスボディ

  • コンソール出力 — エラー、警告、ログ(それらを生成したアクションと紐付け)

  • スクリーンショット — 失敗時点でキャプチャ

テストが失敗した際、Claudeは推測を行いません。実際のページ状態を読み取り、失敗したAPIコールを確認し、アクションのタイムラインを通じて根本原因を追跡します。

仕組み

1. キャプチャフック

軽量なCJSフック(captureHook.cjs)が、NODE_OPTIONS --requireを通じてPlaywrightのテストワーカープロセスに注入されます。BrowserContext._initializeをモンキーパッチし、完全なコンテキストでブラウザアクションをキャプチャするインストゥルメンテーションリスナーを追加します。Playwrightのソースコードを変更する必要はなく、あらゆるPlaywrightインストールで動作します。

2. MCPツール

このプラグインは、Model Context Protocol を介して37個のツールを公開し、Claudeが必要に応じて呼び出します。これはトークン効率を考慮して設計されており、トレース全体をコンテキストにダンプするのではなく、Claudeが必要なものだけを取得します:

テスト実行とデバッグ:

ツール

目的

e2e_list_projects

設定からPlaywrightプロジェクトを一覧表示

e2e_list_tests

テストファイルとケースを検出

e2e_run_test

アクションキャプチャ、不安定性検出(retries、repeatEach)付きでテストを実行

e2e_get_failure_report

エラー + DOM + ネットワーク + コンソールの要約

e2e_get_evidence_bundle

すべての失敗証拠を1回の呼び出しで取得(Jira用)

e2e_generate_report

自己完結型のHTMLまたはJSONレポートファイル

e2e_suggest_tests

テストカバレッジのギャップ分析

e2e_get_actions

ステップバイステップのアクションタイムライン

e2e_get_action_detail

単一アクションの詳細調査

e2e_get_dom_snapshot

アクション前後のAriaツリー

e2e_get_dom_diff

DOMの変更点

e2e_get_network

フィルタリング付きネットワークリクエスト

e2e_get_console

フィルタリング付きコンソール出力

e2e_get_screenshot

失敗時のスクリーンショット(画像)

e2e_get_test_source

失敗行がハイライトされたテストファイル

e2e_find_elements

特定の要素をDOMから検索

e2e_scan_page_objects

すべてのページオブジェクトとメソッドをインデックス化

e2e_get_app_flows

保存されたアプリケーションフローを読み取り

e2e_save_app_flow

検証済みのユーザー体験を保存

e2e_get_context

フロー + ページオブジェクトインデックスを1回の呼び出しで取得

e2e_discover_flows

ドラフトフローマップのためにスペックを自動スキャン

e2e_build_flows

未カバーのテストを自動実行し、フローを保存

e2e_get_stats

スイートの健全性ダッシュボード:合格率の傾向、不安定性スコア、カテゴリ別内訳

e2e_save_triage_run

トレンド追跡のために分類されたトリアージ実行を保存

e2e_get_triage_config

トリアージ設定(Jira設定、不安定性しきい値)を読み取り

インタラクティブなブラウザ探索:

ツール

目的

browser_navigate

URLを開く(自動的にブラウザを起動)

browser_navigate_back

ブラウザ履歴を戻る

browser_snapshot

[ref=X]マーカー付きでARIAアクセシビリティツリーをキャプチャ

browser_click

refで要素をクリック

browser_type

入力フィールドに入力(オプションで送信)

browser_fill_form

1回の呼び出しで複数のフォームフィールドに入力

browser_select_option

ドロップダウンオプションを選択

browser_press_key

キーを押す(Enter、Escape、Tabなど)

browser_hover

要素にホバー

browser_take_screenshot

PNGスクリーンショットをキャプチャ

browser_set_headers

カスタムHTTPヘッダーを設定(CORS安全のため同一オリジンのみ)

browser_close

ブラウザを閉じる

browser_*ツールは実際のChromeインスタンスを起動し、Claudeがアプリケーションをインタラクティブに探索できるようにします。ページ遷移、要素クリック、フォーム入力、ARIAスナップショットを通じたページ状態の観察が可能です。各インタラクションは、タイミング、ネットワークリクエスト、DOM変更、更新されたスナップショットを返します。テストを書く前のアプリ理解、UI問題の視覚的なデバッグ、修正の検証に使用してください。

3. フローメモリ

テストの修正(または検証)後、プラグインは確認済みのアプリケーションフロー(ハッピーパスを構成するユーザーインタラクションのシーケンス)を保存します。これらのフローは.e2e-flows.jsonに永続化され、セッションをまたいで蓄積されます。

次にそのテストが壊れたとき、Claudeは意図されたユーザー体験をすでに把握しており、何が変更されたのかを即座に特定します。エージェントは時間とともに賢くなります。

4. 不安定性(Flaky)の検出

不安定なテストを特定するための2つの補完的なモードがあります:

retries: N — テストをN+1回、別々のPlaywrightプロセスで実行します。各実行には完全なアクションキャプチャを伴うrunIdが付与されます。FLAKY、CONSISTENT PASS、またはCONSISTENT FAILの判定を返します。2〜3回の再試行によるデバッグに最適です。

e2e_run_test(location: "tests/checkout.spec.ts:15", retries: 2)

repeatEach: N — ネイティブのPlaywright --repeat-eachを使用します。すべての反復を1つのプロセスで実行します。不安定性を確認するための高速なストレステストです(確信を得るには30〜100回を使用してください)。

e2e_run_test(location: "tests/checkout.spec.ts:15", repeatEach: 40)

5. 証拠バンドル

e2e_get_evidence_bundleは、すべての失敗証拠(エラー、再現手順、アクションタイムライン、失敗したネットワークリクエストとボディ、コンソールエラー、DOMスナップショット、スクリーンショット)を1つのレスポンスにパッケージ化します。6つ以上のツールを個別に呼び出す必要がなくなります。

outputFile: trueを渡すと、Jira添付用のMarkdownファイルがtest-reports/に書き出されます。

6. HTMLレポート

バッチ実行(locationなし)は、自動的に自己完結型のHTMLレポートを生成します:

  • ステータスバッジ付きの合格/不合格の要約

  • テストごとの折りたたみ可能なセクション

  • アクションタイムライン、失敗したネットワークリクエスト、コンソールエラー

  • 失敗時点のDOMスナップショット

  • インラインBase64画像としてのスクリーンショット

レポートはtest-reports/report-<runId>.htmlに書き出されます。任意の実行に対して手動でe2e_generate_reportを呼び出すことも可能です。

7. スイートトリアージと健全性追跡

スイート全体を実行し、すべての失敗を分類して、管理用レポートを作成します:

/playwright-autopilot:triage-e2e e2e

Claudeは各失敗を既知の問題、アプリのバグ、テストの更新、不安定、または新規の失敗に分類します。既存のチケットについてはJiraと照合し、アプリのバグについては証拠バンドル付きで新規チケットを作成し、トレンド追跡のためにトリアージ実行を保存します。

e2e_get_statsは、スイートの健全性ダッシュボードを提供します。合格率の傾向、スコア順の不安定なテスト、失敗カテゴリの内訳、新規の失敗など、テストを実行することなくローカル履歴からすべて確認できます。

9. カバレッジ分析

e2e_suggest_testsはプロジェクト全体をスキャンし、カバレッジのギャップを見つけます:

  1. 未テストのページオブジェクトメソッド — スペックから呼び出されていない.page.ts / .service.ts内のメソッド

  2. 不足しているフローバリエーション — 前提条件(例:「ドラフトが存在しない」)を持つフローで、継続バリエーションが欠けているもの

  3. 未カバーのフローステップ — 確認済みフローにリストされているが、どのスペックでも実行されていないアクション

10. アーキテクチャの認識

修正を書く前に、プラグインはプロジェクト内のページオブジェクト、サービス層、テストフィクスチャをスキャンします。既存のパターンに従います:

  • 生のPlaywright呼び出しを書く代わりに、ページオブジェクトモデルのメソッドを使用

  • ビジネス/サービス層の分離を尊重

  • getByRole()、getByTestId()、Webファーストのアサーションを使用

  • 最小限の差分を生成(通常は1〜2行の追加)

デバッグの哲学

このプラグインは厳格な診断手法に従います:

セレクタではなく、ユーザーフローで考える。 コードに触れる前に、意図されたユーザー体験をマッピングします。ステップが欠けている場合(ドロップダウンが選択されていない、必須フィールドが入力されていないなど)、既存のページオブジェクトメソッドを見つけて呼び出しを追加します。

4つの根本原因カテゴリ:

  1. テストステップの欠落 — アプリが必要とするUIインタラクションをテストがスキップしている

  2. テストコードのバグ — 間違ったセレクタ、古いアサーション、悪いテストデータ

  3. アプリケーションのバグ — アプリ自体が壊れている(回避策ではなく報告を行う)

  4. 汚れた状態 — 前回のテスト実行の残骸が干渉している

ハックは行わない。 プラグインは、失敗したテストを回避するためにpage.evaluate()、page.route()、page.addInitScript()、またはJavaScriptの注入を決して使用しません。修正にそれらが必要な場合、それは間違った問題を解決しようとしています。

設定

マルチプロジェクト設定

PlaywrightプロジェクトがClaude Codeの実行ディレクトリとは異なる場所にある場合は、.mcp.jsonでPW_PROJECT_DIR環境変数を設定してください:

{
  "mcpServers": {
    "playwright-autopilot": {
      "command": "node",
      "args": ["path/to/plugin/server/mcp-server.js"],
      "env": {
        "PW_PROJECT_DIR": "/path/to/your/playwright/project"
      }
    }
  }
}

要件

ライセンス

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables automated end-to-end testing powered by Playwright where test cases are defined in natural language and executed by AI. Uses lightweight snapshot analysis with vision mode fallback for sophisticated testing scenarios.
    3
    Apache 2.0
  • A
    license
    B
    quality
    D
    maintenance
    Playwright browser automation tuned for single-page apps (React/Vue/Angular) — screenshots, form filling, action chains, persistent sessions and 140+ device presets.
    22
    MIT