Playwright Agents:AIが自動でE2Eテストを計画・実装・修正する革新的な機能
Playwright Agents:AI が自動で E2E テストを計画・実装・修正する革新的な機能
Playwright Agents とは
Playwright Agents は、2025 年 10 月に登場した E2E テスト(エンドツーエンドテスト)を自動化する革新的な機能です。
従来、E2E テストの作成には以下のような課題がありました:
- テストケースの洗い出しに時間がかかる
- テストコードの実装が煩雑
- UI 変更のたびにテストが壊れて修正が必要
Playwright Agents は、これらの課題を3 つの AI エージェントが協力して解決します。テストの計画から実装、修正までを AI が支援することで、開発者は本質的な作業に集中できるようになります。
3 つのエージェントの役割
Playwright Agents は、それぞれ異なる役割を持つ 3 つの AI エージェントで構成されています。
1. Planner(プランナー)
役割:テスト計画の自動生成
アプリケーションを探索し、テストすべき項目を洗い出して Markdown 形式のテスト計画を自動生成します。
具体的な動作:
- ユーザーがどのような操作をするかを想定
- 体系的なテストケースを作成
- 人間が見落としがちなエッジケースも網羅
- 極端な年齢入力
- ネットワークエラー時の挙動
- ブラウザバック時の動作
- 空文字入力やバリデーション
実績例:
医療問診サービス「ユビー」での事例では、1,089 行の超詳細なテスト計画書が自動生成され、人間だと数日かかる作業が数分で完了しました。
2. Generator(ジェネレーター)
役割:テストコードの自動生成
Planner が作成した Markdown のテスト計画を、実行可能な Playwright のテストコードに変換します。
メリット:
- テスト計画からコードへの変換作業が不要
- 実装の工数を大幅に削減
- 数時間かかる作業が数分で完了
生成されるコード:
- ページ操作(クリック、入力、選択)
- アサーション(期待値の検証)
- 待機処理
- エラーハンドリング
3. Healer(ヒーラー)
役割:テストの自動修正
テストを実行し、失敗したテストケースを検出して自動的に修正します。
具体的な修正内容:
- UI 変更によるセレクタの更新
- 新しい要素の特定
- タイムアウト値の調整
- 動的コンテンツへの対応
メリット:
UI をリファクタリングしても、Healer が自動でテストを修正してくれるため、メンテナンスコストが大幅に削減されます。
セットアップ方法
導入は非常に簡単です。以下のコマンドを実行するだけで、すぐに使い始められます。
VS Code で使う場合
npx playwright init-agents --loop=vscode
前提条件:
- VS Code v1.105 以降が必要
Claude Code で使う場合
npx playwright init-agents --loop=claude
このコマンドを実行すると、以下のファイルが自動生成されます:
-
.github/: 3 つのエージェントの定義ファイル -
specs/: Planner が生成する Markdown 形式のテスト計画 -
tests/: Generator が生成する実際のテストコード -
seed.spec.ts: 初期設定ファイル(ログイン処理などのグローバルセットアップ)
プロジェクト構成
project/
├── .github/
│ ├── planner.yml # Plannerの定義
│ ├── generator.yml # Generatorの定義
│ └── healer.yml # Healerの定義
├── specs/
│ └── test-plan.md # 生成されたテスト計画
├── tests/
│ └── generated.spec.ts # 生成されたテストコード
└── seed.spec.ts # 初期設定
対応ツール
現在、以下の開発環境で利用できます:
- Claude Code: SubAgents として定義して使用
- VS Code: モードとして定義(v1.105 以降が必要)
- OpenCode: エージェントとして統合
実践例:Todo アプリのテスト自動生成
実際の使用例を見てみましょう。
ステップ 1: 自然言語で指示
カレンダー機能のテストを作成して
たったこれだけの指示で、AI が自動的にテストを生成します。
ステップ 2: Planner がテスト計画を作成
Planner が以下のようなテスト計画を自動生成:
# カレンダー機能テスト計画
## 基本機能
- [ ] カレンダーが正しく表示される
- [ ] 今日の日付がハイライトされる
- [ ] 月の切り替えができる
## 日付選択
- [ ] 日付をクリックすると選択される
- [ ] 選択した日付が強調表示される
- [ ] 過去の日付は選択できない
## エッジケース
- [ ] 2 月 29 日(うるう年)の処理
- [ ] 月末から月初への切り替え
- [ ] 無効な日付の入力
ステップ 3: Generator がコードを生成
テスト計画から、実行可能なテストコードを自動生成:
import { test, expect } from "@playwright/test";
test.describe("カレンダー機能", () => {
test("カレンダーが正しく表示される", async ({ page }) => {
await page.goto("/calendar");
await expect(page.locator(".calendar")).toBeVisible();
});
test("今日の日付がハイライトされる", async ({ page }) => {
await page.goto("/calendar");
const today = new Date().getDate();
await expect(page.locator(`.day[data-date="${today}"]`)).toHaveClass(
/highlighted/
);
});
// ... 他のテストケース
});
ステップ 4: Healer が自動修正
UI を変更してテストが失敗しても、Healer が自動で修正:
❌ テスト失敗: セレクタ '.calendar' が見つかりません
🔧 Healer が修正中...
✅ 修正完了: 新しいセレクタ '[data-testid="calendar-container"]' を使用
実際の開発者の評価
Playwright Agents を使った開発者の評価をまとめました。
好評価なポイント
1. 圧倒的な時間短縮効果
多くの開発者が最も評価しているのは、時間短縮効果です。
- テスト計画作成: 数日 → 数分
- コード生成: 数時間 → 数分
- 人間が 1〜2 日かけて作る内容を 30 分程度で形にできた
2. Planner が特に優秀
3 つのエージェントの中でも、Planner の評価が特に高いです。
ユビーでの事例:
- 1,089 行の超詳細なテスト計画書を自動生成
- 人間だと見落としがちなケースまで網羅
- 極端な年齢入力
- ネットワークエラー時の挙動
- ブラウザバック時の動作
3. テストコードを書かなくて済む
「テストコードを自前で書くことがなくなった」という声が多く、エンジニアの負担が大幅に軽減されています。
アプリケーション開発により専念できるようになり、生産性が向上します。
懸念点・課題
一方で、以下のような課題も指摘されています。
1. 「70 点の壁」問題
多くの開発者が指摘する典型的な AI ツールの課題:
パッと見ていい感じ
↓
実際に使ってみると細かいところで期待と違う
↓
完璧を求めると結局人の手で大幅な修正が必要
2. 生成コードの品質にバラつき
Generator が生成するコードには、以下のようなクセがあります:
- if 文を多用しすぎる(本来は条件ごとに別テストケースを作るべき)
- マジックナンバーが多い
- ループ内で非同期処理を使うなどパフォーマンスの問題
- ハードコードされたタイムアウト値
3. 人間のレビューが必須
「一発で完璧なテストが自動で完成するわけではない」という前提で使う必要があります。
**「たたき台を作ってくれるツール」**として捉え、人間がレビュー・リファクタリングする工程は省略できません。
4. 読む量が多い
AI が生成するドキュメントの量が膨大:
- テスト計画: 400 行
- テストコード: 200 行
「自分で書いていないから記憶していない」「何をテストしているかすぐ忘れそう」という懸念もあります。
活用シーン
Playwright Agents は、以下のような場面で特に活躍します。
1. 新機能リリース前のテストケース洗い出し
新機能をリリースする前に、Planner を使ってテストケースを網羅的に洗い出せます。
新しいユーザー登録フローのテストケースを洗い出して
2. E2E テスト導入初期のコードベース構築
E2E テストをこれから導入するプロジェクトで、初期のテストコードベースを素早く構築できます。
ログインフォームとダッシュボードの基本的なE2Eテストを作成して
3. テストシナリオ検討の壁打ち相手として
「こんなテストケースも必要かな?」と悩んだときに、AI に相談できます。
決済フローで考慮すべきエッジケースを教えて
4. 重要なユーザーフローのテスト
ログインフォームや決済フローなど、絶対に壊してはいけない重要な機能のテストに最適です。
実践的な使い方のコツ
コツ 1: まずは小さく始める
いきなり全機能のテストを作るのではなく、重要な機能から始めましょう。
まずはログイン機能のテストだけ作成して
コツ 2: 生成されたコードは必ずレビュー
AI が生成したコードをそのまま使うのではなく、必ずレビューしてリファクタリングしましょう。
- マジックナンバーを定数化
- 重複コードを関数化
- テストケースを適切に分割
コツ 3: seed.spec.ts を活用
ログイン処理など、全テストで共通する処理は seed.spec.ts にまとめましょう。
// seed.spec.ts
import { test as setup } from "@playwright/test";
setup("ログイン", async ({ page }) => {
await page.goto("/login");
await page.fill('[name="email"]', "test@example.com");
await page.fill('[name="password"]', "password123");
await page.click('button[type="submit"]');
await page.waitForURL("/dashboard");
// セッションを保存
await page.context().storageState({ path: "auth.json" });
});
コツ 4: Healer を信頼しすぎない
Healer が自動修正してくれますが、修正内容は必ず確認しましょう。
意図しない修正が行われている可能性があります。
トラブルシューティング
エージェントが起動しない
# Playwrightを最新版に更新
npm install -D @playwright/test@latest
# ブラウザを再インストール
npx playwright install
テスト計画が生成されない
- アプリケーションが起動しているか確認
- URL が正しいか確認
- より具体的な指示を出す
生成されたテストが失敗する
- スクリーンショットを撮って状態を確認
- セレクタが正しいか確認
- 待機時間が十分か確認
まとめ
Playwright Agents は、E2E テストの作成を劇的に効率化する革新的な機能です。
メリット:
✅ テスト計画を自動生成(Planner)
✅ テストコードを自動生成(Generator)
✅ テストを自動修正(Healer)
✅ 時間短縮効果が絶大(数日 → 数分)
✅ エッジケースも網羅
注意点:
⚠️ 「70 点の壁」問題:完璧ではない
⚠️ 人間のレビューが必須:たたき台として使う
⚠️ 生成コードの品質にバラつき:リファクタリングが必要
総合評価:
「完璧ではないが、初速が圧倒的に速くなり、実用的なレベルに達している」というのが一般的な評価です。
特に、新機能リリース前のテストケース洗い出しや、E2E テスト導入初期のコードベース構築において、大きな価値を発揮します。
**「既に使ってる方にもこれからの方にもおすすめできる強力な機能」**として、多くの開発者から支持されています。
E2E テストの作成に時間がかかっている方、テストケースの洗い出しに悩んでいる方は、ぜひ Playwright Agents を試してみてください!
Discussion