| name | e2e-test |
| description | playwright-cli を使った E2E テストの実行スキル。ブラウザを headless モードで起動し、テスト結果をスクリーンショットとして screenshots/ 配下の日付付きフォルダーに保存する。E2E テストを実行する際には、必ずこのスキルに従ってください。 |
E2E テストスキル
概要
本スキルは、playwright-cli を使って本プロジェクトのアプリケーションの E2E テストを実行し、テスト結果をスクリーンショットとして記録するための手順を定義する。
すべてのスクリーンショットは screenshots/ 配下の日付付きフォルダーに保存される。
前提条件
- Aspire AppHost が起動済みであること(
cd src && dotnet run --project AppHost)
- Web アプリケーションがアクセス可能であること
playwright-cli が利用可能であること
実行手順
Step 1: スクリーンショット保存先の作成
テスト実行ごとに一意のフォルダーを screenshots/ 配下に作成する。
フォルダー命名規則:
screenshots/{YYYYMMDD}-{HHmmss}-{テスト名}/
YYYYMMDD-HHmmss — テスト開始時刻(ローカルタイム)
テスト名 — テストの目的を英語で簡潔に表す(kebab-case)
例:
screenshots/20260327-143052-form-submission/
screenshots/20260327-150000-item-list-search/
screenshots/20260327-160000-user-settings/
screenshots/20260327-170000-full-regression/
作成コマンド(PowerShell):
$testName = "form-submission" # テストに応じて変更
$timestamp = Get-Date -Format "yyyyMMdd-HHmmss"
$folder = "screenshots/${timestamp}-${testName}"
New-Item -ItemType Directory -Path $folder -Force
Step 2: ブラウザの起動(headless モード)
playwright-cli open --browser=chromium
注意: playwright-cli は現時点で headless フラグを直接サポートしていない場合がある。
その場合は run-code で headless コンテキストを作成する:
playwright-cli open
Step 3: 画面サイズの設定
一貫したスクリーンショットのため、画面サイズを固定する。
playwright-cli resize 1920 1080
Step 4: テスト対象ページへの遷移
Web アプリケーションの URL に遷移する。Aspire 経由で起動している場合、URL はダッシュボードから確認する。
playwright-cli goto https://localhost:{ポート番号}
Step 5: スクリーンショットの撮影
各操作ステップでスクリーンショットを撮影する。ファイル名は連番 + 操作内容とする。
命名規則:
{連番2桁}-{操作内容}.png
例:
playwright-cli screenshot --filename=screenshots/20260327-143052-form-submission/01-initial-page.png
playwright-cli screenshot --filename=screenshots/20260327-143052-form-submission/02-form-filled.png
playwright-cli screenshot --filename=screenshots/20260327-143052-form-submission/03-validation-error.png
playwright-cli screenshot --filename=screenshots/20260327-143052-form-submission/04-submitted.png
playwright-cli screenshot --filename=screenshots/20260327-143052-form-submission/05-confirmation.png
Step 6: テスト完了・ブラウザの終了
playwright-cli close
テストシナリオテンプレート
以下は典型的なテストシナリオの実行例。テスト対象に応じてカスタマイズして使用する。
フォーム入力・送信の基本テスト
$testName = "form-basic"
$timestamp = Get-Date -Format "yyyyMMdd-HHmmss"
$folder = "screenshots/${timestamp}-${testName}"
New-Item -ItemType Directory -Path $folder -Force
playwright-cli open
playwright-cli resize 1920 1080
playwright-cli goto {WebアプリURL}/<route>
playwright-cli screenshot --filename=${folder}/01-initial.png
playwright-cli fill {入力欄のref} "テスト入力値"
playwright-cli screenshot --filename=${folder}/02-filled.png
playwright-cli click {送信ボタンのref}
playwright-cli snapshot
playwright-cli screenshot --filename=${folder}/03-result.png
playwright-cli close
一覧画面の検索テスト
$testName = "item-list-search"
$timestamp = Get-Date -Format "yyyyMMdd-HHmmss"
$folder = "screenshots/${timestamp}-${testName}"
New-Item -ItemType Directory -Path $folder -Force
playwright-cli open
playwright-cli resize 1920 1080
playwright-cli goto {WebアプリURL}/<list-route>
playwright-cli screenshot --filename=${folder}/01-list-initial.png
playwright-cli fill {検索欄のref} "テスト"
playwright-cli screenshot --filename=${folder}/02-search-result.png
playwright-cli close
設定画面の CRUD テスト
$testName = "settings-crud"
$timestamp = Get-Date -Format "yyyyMMdd-HHmmss"
$folder = "screenshots/${timestamp}-${testName}"
New-Item -ItemType Directory -Path $folder -Force
playwright-cli open
playwright-cli resize 1920 1080
playwright-cli goto {WebアプリURL}/<settings-route>
playwright-cli screenshot --filename=${folder}/01-settings-list.png
playwright-cli click {追加ボタンのref}
playwright-cli screenshot --filename=${folder}/02-add-dialog.png
playwright-cli close
ルール
必須
- headless モードで実行する — GUI を表示しない
- screenshots/ 配下に日付フォルダーを必ず作成する — ルート直下にスクリーンショットを保存しない
- フォルダー名は
YYYYMMDD-HHmmss-テスト名 形式 にする
- スクリーンショットのファイル名は
連番2桁-操作内容.png にする
- テスト前に画面サイズを
1920x1080 に設定する
- テスト完了後は必ず
playwright-cli close でブラウザを終了する
- 各操作ステップでスクリーンショットを撮影する — 後からテスト結果を確認できるようにする
推奨
- テスト開始時に Aspire ダッシュボードのスクリーンショットを撮り、全サービスの状態を記録する
- エラー発生時もスクリーンショットを撮影してから対処する
snapshot コマンドで DOM の状態を確認してから操作する(ref の特定に必要)
- 待機が必要な場合は
snapshot を繰り返して状態遷移を確認する
禁止
screenshots/ ルート直下へのスクリーンショット保存
- タイムスタンプのないフォルダー名の使用
- テスト終了時にブラウザを閉じ忘れること
トラブルシューティング
| 問題 | 対処法 |
|---|
| ブラウザが起動しない | playwright-cli kill-all で残存プロセスを終了してから再試行 |
| ページが表示されない | Aspire ダッシュボードで Web アプリの起動状態を確認 |
| ref が見つからない | playwright-cli snapshot で最新の DOM 構造を確認 |
| スクリーンショットが保存されない | フォルダーが存在するか確認。--filename のパスが正しいか確認 |
| SSL 証明書エラー | 開発環境では https://localhost の自己署名証明書を許可する |