
ハイライト
https://playwright.dev/docs/test-agents
| 機能 | 特徴 | コマンド例 / 使用例 | 注意点 |
|---|---|---|---|
| Playwright Test Agents | LLM(大規模言語モデル)を利用してテスト作成・修正を自動化する 3 種類のエージェント | – planner:アプリを探索し Markdown テストプラン作成 – generator:Markdown から Playwright テストファイル生成 – healer:テスト実行&自動修正 | 各エージェントはクライアント(VS Code / Claude / opencode)に依存 |
| エージェント定義生成 | 最新のエージェントファイルを生成 | – VS Code:npx playwright init-agents –loop=vscode – Claude Code:npx playwright init-agents –loop=claude – opencode:npx playwright init-agents –loop=opencode | エージェントループに応じたオプションを指定する必要あり |
| 新しい API | ページの情報取得やテストの柔軟な制御が可能 | – page.consoleMessages():最新コンソールメッセージ取得 – page.pageErrors():最新ページエラー取得 – page.requests():最新ネットワークリクエスト取得 – –test-list / –test-list-invert:特定テスト指定 | 大量のログやリクエストを取得する場合、パフォーマンスに注意 |
| UI モード & HTML レポーター | テスト可視化と操作性向上 | – HTML レポーター「Copy prompt」無効化 – テスト・describe ブロック統合表示 – –update-snapshots 同等オプション – 1 ワーカー順次実行オプション | 大規模テスト時はワーカー数制御が必要 |
| 破壊的変更 (Breaking Changes) | 過去のイベント・メソッドの挙動変更 | – browserContext.on(‘backgroundpage’) 非推奨 – browserContext.backgroundPages() は空リスト返却 | 古いコードとの互換性に注意 |
| その他 | スナップショット改善・環境変数追加 | – Aria スナップショットで input placeholder レンダリング・比較 – PLAYWRIGHT_TEST 環境変数でテスト中か判別 | 環境変数はワーカー単位で設定される |
| 対応ブラウザバージョン | 最新の主要ブラウザに対応 | – Chromium: 141.0.7390.37 – Firefox: 142.0.1 – WebKit: 26.0 | ブラウザ固有のバグや挙動差異に注意 |
Playwright Agents(エージェント機能)
AI/LLM と統合したテストの自動化支援。
三種類のエージェント定義が用意されている。
- アプリケーション構造を探査してテストシナリオを提案してくれる(planner)
- 提案されたシナリオからテストコードを自動生成(generator)
- 実行して失敗したテストを修正または再生成する(healer)
# 各エージェントループ用のファイルを生成
# Visual Studio Code
npx playwright init-agents --loop=vscode上記を実行すると、tests/seed.spec.jsが生成される。
seed.spec.tsファイルの役割
テストの前に実行するようなセットアップテストがある場合はこのファイルに記載する
Planner
アプリケーションを探索し、1つまたは複数のシナリオやユーザーフローに対するテストプランを生成
- Planner が seed ファイルを読み込む → どの URL にアクセスするか、どの初期データがあるかなどを理解する。
- seed ファイルの手順を実行 → DB 初期化やユーザー作成、ログインなどの前提処理を完了させる。
- アプリケーションを探索し、Markdown 形式のテストプランを生成 → 実際のテストケースの設計(ユーザーフロー、操作手順、期待結果)が生成される。
Generator
- Markdown テストプランの解析 Plannerで作成したMarkdownファイルを解析し、各シナリオやユーザーフローを特定する。
- テストコードの生成 各シナリオに対応する Playwright テストコードを自動的に生成。
- テストファイルの出力 生成されたテストコードを指定されたディレクトリに保存。
Healer
- 失敗したステップを再実行
- 現在のUIを検査し、同等の要素やフローを特定
- 修正案を提案(例:ロケーター更新、待機時間調整、データ修正)
- テストが成功するか、ガードレールがループを停止するまでテストを再実行
c.sakyou