ハイライト

https://playwright.dev/docs/test-agents

機能特徴コマンド例 / 使用例注意点
Playwright Test AgentsLLM(大規模言語モデル)を利用してテスト作成・修正を自動化する 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つまたは複数のシナリオやユーザーフローに対するテストプランを生成

  1. Planner が seed ファイルを読み込む → どの URL にアクセスするか、どの初期データがあるかなどを理解する。
  2. seed ファイルの手順を実行 → DB 初期化やユーザー作成、ログインなどの前提処理を完了させる。
  3. アプリケーションを探索し、Markdown 形式のテストプランを生成 → 実際のテストケースの設計(ユーザーフロー、操作手順、期待結果)が生成される。

Generator

  1. Markdown テストプランの解析 Plannerで作成したMarkdownファイルを解析し、各シナリオやユーザーフローを特定する。
  2. テストコードの生成 各シナリオに対応する Playwright テストコードを自動的に生成。
  3. テストファイルの出力 生成されたテストコードを指定されたディレクトリに保存。

Healer

  1. 失敗したステップを再実行
  2. 現在のUIを検査し、同等の要素やフローを特定
  3. 修正案を提案(例:ロケーター更新、待機時間調整、データ修正)
  4. テストが成功するか、ガードレールがループを停止するまでテストを再実行

c.sakyou

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA