playwright-pro について
AI コーディングエージェント向けの Playwright テストツールキットで、セットアップ、テスト生成、レビュー、修正、移行を支援します。専用エージェントやテストテンプレートに加え、任意で利用できる TestRail と BrowserStack の MCP サーバーを含みます。
主な機能
- 01Playwright 設定と最初のテストを作成
- 02ストーリー・URL・コンポーネントからテスト生成
- 03テスト品質とカバレッジ不足をレビュー
- 04失敗・不安定なテストの診断と修正
- 05Cypress と Selenium からの移行手順
活用シーン
- 01プロジェクトの Playwright テストと CI の構築
- 02機能要件からエンドツーエンドテストを生成
- 03CI で失敗または不安定なテストを調査
- 04Cypress または Selenium のテストスイートを移行
MCP 対応
任意で利用できる TestRail と BrowserStack の MCP サーバーを含み、TestRail のケースや結果の同期、BrowserStack でのテスト実行とクロスブラウザーレポート取得に使えます。自動登録されないため、手動でのインストールと設定が必要です。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alirezarezvani/ claude-skills --skill playwright-proインストール後、Claude Code で/playwright-proを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
reference/assertions.mdcommon-pitfalls.mdfixtures.mdflaky-tests.mdgolden-rules.mdlocators.mdtemplates/accessibility/color-contrast.mdkeyboard-navigation.mdscreen-reader.mdtemplates/api/auth-headers.mderror-responses.mdgraphql.mdrate-limiting.mdrest-crud.mdtemplates/auth/login.mdlogout.mdmfa.mdpassword-reset.mdrbac.mdremember-me.mdsession-timeout.mdsso.mdtemplates/checkout/add-to-cart.mdapply-coupon.mdorder-confirm.mdorder-history.mdpayment.mdupdate-quantity.mdtemplates/crud/bulk-operations.mdcreate.md詳細
Playwright Pro
AI コーディングエージェント向けの、本番環境対応 Playwright テストツールキットです。
利用可能なコマンド
Claude Code プラグインとしてインストールすると、以下の /pw: コマンドを利用できます。
| コマンド | 機能 |
|---|---|
/pw:pw-init | Playwright をセットアップします。フレームワークを検出し、設定、CI、最初のテストを生成します |
/pw:generate <spec> | ユーザーストーリー、URL、またはコンポーネントからテストを生成します |
/pw:pw-review | テストのアンチパターンとカバレッジの不足を確認します |
/pw:fix <test> | 失敗するテストや不安定なテストを診断して修正します |
/pw:migrate | Cypress または Selenium から Playwright に移行します |
/pw:coverage | テスト済みの項目と不足している項目を分析します |
/pw:testrail | TestRail と同期します。テストケースを読み込み、結果を送信します |
/pw:browserstack | BrowserStack で実行し、クロスブラウザーのレポートを取得します |
/pw:report | お好みの形式でテストレポートを生成します |
クイックスタートのワークフロー
多くのプロジェクトで推奨される手順です。
1. /pw:pw-init → scaffolds config, CI pipeline, and a first smoke test
2. /pw:generate → generates tests from your spec or URL
3. /pw:pw-review → validates quality and flags anti-patterns ← always run after generate
4. /pw:fix <test> → diagnoses and repairs any failing/flaky tests ← run when CI turns red
検証チェックポイント:
/pw:generateの後 — コミットする前に必ず/pw:pw-reviewを実行してください。ロケーターのアンチパターンやアサーションの不足を自動的に検出します。/pw:fixの後 — 修正によってリグレッションが発生していないことを確認するため、ローカルでテストスイート全体(npx playwright test)を再実行してください。/pw:migrateの後 — Cypress/Selenium のテストを廃止する前に、/pw:coverageを実行して旧テストスイートと同等のカバレッジがあることを確認してください。
例:生成 → レビュー → 修正
# 1. Generate tests from a user story
/pw:generate "As a user I can log in with email and password"
# Generated: tests/auth/login.spec.ts
# → Playwright Pro creates the file using the auth template.
# 2. Review the generated tests
/pw:pw-review tests/auth/login.spec.ts
# → Flags: one test used page.locator('input[type=password]') — suggests getByLabel('Password')
# → Fix applied automatically.
# 3. Run locally to confirm
npx playwright test tests/auth/login.spec.ts --headed
# 4. If a test is flaky in CI, diagnose it
/pw:fix tests/auth/login.spec.ts
# → Identifies missing web-first assertion; replaces waitForTimeout(2000) with expect(locator).toBeVisible()
基本ルール
- CSS/XPath より
getByRole()を優先します。マークアップの変更に強くなります。 page.waitForTimeout()は使わず、ウェブファーストのアサーションを使います。expect(locator)は自動で再試行しますが、expect(await locator.textContent())は再試行しません。- すべてのテストを分離し、テスト間で状態を共有しません。
- 設定で
baseURLを指定し、URL のハードコードをなくします。 - リトライ回数は CI では
2、ローカルでは0にします。 - トレースは
'on-first-retry'に設定し、速度を落とさず詳細なデバッグ情報を取得します。 - グローバル変数よりフィクスチャを使い、共有状態には
test.extend()を使います。 - 1 つのテストにつき 1 つの動作を検証します。関連する複数のアサーションは問題ありません。
- 外部サービスのみをモックし、自分のアプリはモックしません。
ロケーターの優先順位
1. getByRole() — buttons, links, headings, form elements
2. getByLabel() — form fields with labels
3. getByText() — non-interactive text
4. getByPlaceholder() — inputs with placeholder
5. getByTestId() — when no semantic option exists
6. page.locator() — CSS/XPath as last resort
内容
- 9 個のスキル:詳細な手順を解説
- 3 個の専門エージェント:test-architect、test-debugger、migration-planner
- 55 個のテストテンプレート:認証、CRUD、チェックアウト、検索、フォーム、ダッシュボード、設定、オンボーディング、通知、API、アクセシビリティ
- 2 個の MCP サーバー(TypeScript):TestRail と BrowserStack の連携(任意。自動登録されません。「連携の設定」を参照してください)
- スマートフック:テスト品質を自動検証し、Playwright プロジェクトを自動検出
- 6 個のリファレンスドキュメント:基本ルール、ロケーター、アサーション、フィクスチャ、落とし穴、不安定なテスト
- 移行ガイド:Cypress と Selenium の対応表
連携の設定
自動登録されません(issue #978)。 TestRail と BrowserStack の MCP サーバーは、プラグインの
.mcp.jsonで宣言されなくなりました(同梱のnode_modulesがなく、すべてのユーザーで接続に失敗していたためです)。以下の環境変数をエクスポートするだけでは不十分です。サーバーを手動で有効にする(cd integrations/<name>-mcp && npm installを実行し、自分のユーザー/プロジェクトの MCP 設定に登録する)まで、/pw:testrail//pw:browserstackは「tool not found」エラーで失敗します。CLAUDE.md→ Integrations を参照してください。
TestRail(任意)
export TESTRAIL_URL="https://your-instance.testrail.io"
export TESTRAIL_USER="[email protected]"
export TESTRAIL_API_KEY="your-api-key"
BrowserStack(任意)
export BROWSERSTACK_USERNAME="your-username"
export BROWSERSTACK_ACCESS_KEY="your-access-key"
クイックリファレンス
reference/ ディレクトリを参照してください。
golden-rules.md— 絶対に守るべき 10 のルールlocators.md— チートシート付きのロケーター優先順位の全解説assertions.md— ウェブファーストのアサーションのリファレンスfixtures.md— カスタムフィクスチャと storageState のパターンcommon-pitfalls.md— よくある間違いトップ 10 と修正方法flaky-tests.md— 診断コマンドとすぐに使える修正方法
テンプレートの一覧は templates/README.md を参照してください。