jpskill.com
🛠️ 開発・MCP コミュニティ

appbuilder-e2e-testing

Adobe App BuilderアプリケーションのSPA、AEM拡張UI、フルスタックフローに対して、Playwrightを用いたブラウザベースのエンドツーエンドテストを自動化し、UIを含む統合テストやCI環境でのテストを効率化するSkill。

📜 元の英語説明(参考)

Use this skill whenever the user wants browser-based end-to-end tests for an Adobe App Builder application. Covers Playwright E2E testing for ExC Shell SPAs, AEM extension UIs, and full-stack flows. Use when the user mentions: "E2E test", "end-to-end test", "Playwright", "browser test", "test my SPA in the browser", "test my AEM extension", "test the full flow", "integration test with UI", "headless browser test", "E2E in CI". This skill is for BROWSER-based testing only. For Jest unit tests of actions or React components, use appbuilder-testing instead.

🇯🇵 日本人クリエイター向け解説

一言でいうと

Adobe App BuilderアプリケーションのSPA、AEM拡張UI、フルスタックフローに対して、Playwrightを用いたブラウザベースのエンドツーエンドテストを自動化し、UIを含む統合テストやCI環境でのテストを効率化するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o appbuilder-e2e-testing.zip https://jpskill.com/download/9692.zip && unzip -o appbuilder-e2e-testing.zip && rm appbuilder-e2e-testing.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/9692.zip -OutFile "$d\appbuilder-e2e-testing.zip"; Expand-Archive "$d\appbuilder-e2e-testing.zip" -DestinationPath $d -Force; ri "$d\appbuilder-e2e-testing.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して appbuilder-e2e-testing.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → appbuilder-e2e-testing フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

App Builder E2E テスト

Adobe App Builder SPA および AEM 拡張機能向けの Playwright ベースのブラウザ E2E テストです。このスキルは、ブラウザレベルの検証のために、Playwright の設定、テストファイル、および CI ワークフローを生成します。

パターンのクイックリファレンス

ユーザーの意図を特定し、参照されているセクションを読んで、調整されたテストを生成します。

ユーザーの要望 参照 アセット
ExC Shell SPA の E2E テスト references/e2e-testing-patterns.md assets/playwright.config.ts, assets/e2e-test-template.spec.ts
ブラウザで AEM 拡張機能をテスト references/aem-extension-testing.md assets/playwright.config.ts
CI パイプラインでの E2E テスト references/ci-integration.md assets/e2e-ci-workflow.yml

ファストパス (明確なリクエストの場合)

ユーザーが「E2E テストを追加」または「Playwright テストを作成」と言い、意図が明確な場合:

  1. プロジェクトで web-src/ (SPA) または @adobe/uix-guest (AEM 拡張機能) を依存関係でスキャンします。
  2. Playwright が存在しない場合はインストールします: npm install -D @playwright/test && npx playwright install chromium
  3. assets/playwright.config.ts から playwright.config.ts を生成します。
  4. ExC Shell SPA の場合: references/e2e-testing-patterns.md を読み、iframe ナビゲーション、shell の待機、Spectrum ARIA セレクターを使用してテストを生成します。
  5. AEM 拡張機能の場合: references/aem-extension-testing.md を読み、Extension Tester URL、ネストされた iframe の処理、モーダルフローを使用してテストを生成します。
  6. テストを実行します: npx playwright test
  7. CI がリクエストされた場合: assets/e2e-ci-workflow.yml から GitHub Actions ワークフローを生成します。

クイックリファレンス

  • テストディレクトリ: プロジェクトルートの e2e/ (Jest test/ とは別)
  • 設定ファイル: プロジェクトルートの playwright.config.ts
  • インストールコマンド: npm install -D @playwright/test && npx playwright install chromium (Playwright + Chromium ブラウザをインストール)
  • 実行コマンド: npx playwright test (ヘッドレス) または npx playwright test --headed (可視ブラウザ)
  • デバッグコマンド: npx playwright test --debug (ステップスルーモード)
  • レポートコマンド: npx playwright show-report (HTML レポートを開く)
  • ExC Shell iframe: page.frameLocator('iframe') を介して shell 内の SPA にアクセスします — 正確なセレクターは異なります。references/e2e-testing-patterns.md を参照してください。
  • Spectrum セレクター: CSS クラスではなく、ARIA ロールを使用します: getByRole('button', { name: 'Save' }), getByRole('grid'), getByRole('textbox')
  • 認証に関する注意: 完全な ExC Shell 認証の自動化は複雑です — まず aio app dev (ローカル) に対してテストすることをお勧めします。references/e2e-testing-patterns.md の § Authentication を参照してください。
  • AEM 拡張機能: devMode=true で Extension Tester URL を使用します。references/aem-extension-testing.md を参照してください。

フルワークフロー (曖昧または複雑なリクエストの場合)

  1. プロジェクトのスキャンweb-src/ (SPA), @adobe/uix-guest (AEM 拡張機能), 既存のテスト設定, app.config.yaml 拡張機能タイプを確認します。
  2. スコープの確認 — テストするページ/フローはどれですか?ローカル開発環境またはデプロイされた環境ですか?CI は必要ですか?
  3. Playwright のインストール — まだインストールされていない場合は npm install -D @playwright/test && npx playwright install chromium
  4. 設定の生成 — プロジェクト用に assets/playwright.config.ts をコピーしてカスタマイズします。
  5. テストファイルの生成 — 適切な参照ドキュメントを読み、プロジェクト構造に一致するテストを生成します:
    • ExC Shell SPA → references/e2e-testing-patterns.md
    • AEM 拡張機能 → references/aem-extension-testing.md
  6. アクションのスタブの追加 — テストに決定的なバックエンド応答が必要な場合は、page.route() インターセプトを追加します。
  7. 実行と反復npx playwright test を実行し、必要に応じてセレクター/タイミングを修正します。
  8. CI ワークフローの追加 — リクエストされた場合は、references/ci-integration.md を読み、assets/e2e-ci-workflow.yml からワークフローを生成します。
  9. 検証 — すべてのテストが合格し、ARIA セレクターを使用し、アサーションがあり、ハードコードされた待機がないことを確認します。

リクエストへの入力

  • 現在のリポジトリパスとプロジェクトタイプ (SPA 対 AEM 拡張機能)
  • E2E カバレッジが必要なページまたはユーザーフロー
  • テストをローカル開発環境またはデプロイされた環境のどちらに対して実行するか
  • CI 統合が必要かどうか

成果物

  • プロジェクト用に構成された playwright.config.ts
  • e2e/ ディレクトリ内の E2E テストファイル
  • GitHub Actions ワークフロー (CI がリクエストされた場合)
  • 合格したテスト実行の出力

品質基準

  • すべてのテストで ARIA セレクター (getByRole, getByLabel) を使用します — CSS クラスセレクターは使用しません。
  • Iframe ナビゲーションは frameLocator() を使用します — インデックス付きの frame() は使用しません。
  • すべてのテストに await expect() アサーションがあります — アサーションのないテストはありません。
  • アクションの応答は、決定的な結果を得るために page.route() でスタブされます。
  • ハードコードされた page.waitForTimeout() はありません — waitForSelector, waitForResponse, または Playwright の自動待機を使用します。
  • テストはローカルマシンで 60 秒未満で実行されます。

参考文献

  • ExC Shell SPA 用の Playwright E2E パターン (iframe ナビゲーション、Spectrum セレクター、認証、アクションスタブ) については、references/e2e-testing-patterns.md を使用してください。
  • AEM 拡張機能のテストパターン (Extension Tester、ネストされた iframe、モーダルライフサイクル、拡張ポイント) については、references/aem-extension-testing.md を使用してください。
  • GitHub Actions で Playwright を実行する (ブラウザのインストール、アーティファクトのアップロード、ヘッドレス構成) については、references/ci-integration.md を使用してください。
  • 基本的な Playwright 構成テンプレートとして assets/playwright.config.ts を使用してください。
  • E2E テスト用の GitHub Actions ワークフローテンプレートとして assets/e2e-ci-workflow.yml を使用してください。

よくある問題

  • Iframe が見つかりません: ExC Shell iframe セレクターは異なります — DevTools を使用して検査してください。page.frameLocator('iframe[src*="your-app"]') を試すか、page.frames() で検出してください。
  • Shell スピナーが消えません: SPA で runtime.done() が呼び出されていることを確認してください。E2E の場合、shell 自体ではなく、iframe 内のコンテンツを待機してください。
  • Spectrum コンポーネントがクリックできません: React Spectrum コンポーネントは ARIA ロールをレンダリングします — CSS セレクターの代わりに getByRole() を使用してください。references/e2e-testing-patterns.md の § Spectrum Selectors を確認してください。
  • 認証ポップアップがテストをブロックします: shell 認証をスキップするローカル開発環境 (aio app dev) に対してテストしてください。references/e2e-testing-patterns.md の認証セクションを参照してください。
  • AEM 拡張機能がロードされません: Extension Tester には IMS が必要です。

(原文がここで切り詰められています)

📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

App Builder E2E Testing

Playwright-based browser E2E testing for Adobe App Builder SPAs and AEM extensions. This skill generates Playwright configs, test files, and CI workflows for browser-level validation.

Pattern Quick-Reference

Identify the user's intent, then read the referenced sections to generate tailored tests.

User wants Reference Asset
E2E test for ExC Shell SPA references/e2e-testing-patterns.md assets/playwright.config.ts, assets/e2e-test-template.spec.ts
Test AEM extension in browser references/aem-extension-testing.md assets/playwright.config.ts
E2E tests in CI pipeline references/ci-integration.md assets/e2e-ci-workflow.yml

Fast Path (for clear requests)

When the user says "add E2E tests" or "write Playwright tests" and intent is clear:

  1. Scan project for web-src/ (SPA) or @adobe/uix-guest in dependencies (AEM extension)
  2. Install Playwright if not present: npm install -D @playwright/test && npx playwright install chromium
  3. Generate playwright.config.ts from assets/playwright.config.ts
  4. For ExC Shell SPA: read references/e2e-testing-patterns.md, generate test with iframe navigation, shell wait, Spectrum ARIA selectors
  5. For AEM extension: read references/aem-extension-testing.md, generate test with Extension Tester URL, nested iframe handling, modal flows
  6. Run tests: npx playwright test
  7. If CI requested: generate GitHub Actions workflow from assets/e2e-ci-workflow.yml

Quick Reference

  • Test directory: e2e/ at project root (separate from Jest test/)
  • Config file: playwright.config.ts at project root
  • Install command: npm install -D @playwright/test && npx playwright install chromium (installs Playwright + Chromium browser)
  • Run command: npx playwright test (headless) or npx playwright test --headed (visible browser)
  • Debug command: npx playwright test --debug (step-through mode)
  • Report command: npx playwright show-report (open HTML report)
  • ExC Shell iframe: Access SPA inside shell via page.frameLocator('iframe') — exact selector varies, see references/e2e-testing-patterns.md
  • Spectrum selectors: Use ARIA roles, not CSS classes: getByRole('button', { name: 'Save' }), getByRole('grid'), getByRole('textbox')
  • Auth note: Full ExC Shell auth automation is complex — recommend testing against aio app dev (local) first. See references/e2e-testing-patterns.md § Authentication.
  • AEM extensions: Use Extension Tester URL with devMode=true. See references/aem-extension-testing.md.

Full Workflow (for ambiguous or complex requests)

  1. Scan project — Check for web-src/ (SPA), @adobe/uix-guest (AEM extension), existing test setup, app.config.yaml extension type
  2. Confirm scope — Which pages/flows to test? Local dev or deployed? CI needed?
  3. Install Playwrightnpm install -D @playwright/test && npx playwright install chromium if not already installed
  4. Generate config — Copy and customize assets/playwright.config.ts for the project
  5. Generate test files — Read appropriate reference doc, generate tests matching project structure:
    • ExC Shell SPA → references/e2e-testing-patterns.md
    • AEM extension → references/aem-extension-testing.md
  6. Add action stubbing — If tests need deterministic backend responses, add page.route() intercepts
  7. Run and iteratenpx playwright test, fix selectors/timing as needed
  8. Add CI workflow — If requested, read references/ci-integration.md and generate workflow from assets/e2e-ci-workflow.yml
  9. Validate — All tests pass, use ARIA selectors, have assertions, no hardcoded waits

Inputs To Request

  • Current repository path and project type (SPA vs AEM extension)
  • Which pages or user flows need E2E coverage
  • Whether tests should run against local dev or deployed environment
  • Whether CI integration is needed

Deliverables

  • playwright.config.ts configured for the project
  • E2E test files in e2e/ directory
  • GitHub Actions workflow (if CI requested)
  • Passing test run output

Quality Bar

  • All tests use ARIA selectors (getByRole, getByLabel) — no CSS class selectors
  • Iframe navigation uses frameLocator() — no frame() with index
  • All tests have await expect() assertions — no assertion-free tests
  • Action responses are stubbed with page.route() for deterministic results
  • No hardcoded page.waitForTimeout() — use waitForSelector, waitForResponse, or Playwright auto-waiting
  • Tests run in < 60s on local machine

References

  • Use references/e2e-testing-patterns.md for Playwright E2E patterns for ExC Shell SPAs (iframe nav, Spectrum selectors, auth, action stubbing).
  • Use references/aem-extension-testing.md for AEM extension testing patterns (Extension Tester, nested iframes, modal lifecycle, extension points).
  • Use references/ci-integration.md for running Playwright in GitHub Actions (browser install, artifact upload, headless config).
  • Use assets/playwright.config.ts as the base Playwright configuration template.
  • Use assets/e2e-ci-workflow.yml as the GitHub Actions workflow template for E2E tests.

Common Issues

  • Iframe not found: The ExC Shell iframe selector varies — use DevTools to inspect. Try page.frameLocator('iframe[src*="your-app"]') or discover with page.frames().
  • Shell spinner never dismissed: Ensure runtime.done() is called in the SPA. For E2E, wait for content inside the iframe rather than the shell itself.
  • Spectrum component not clickable: React Spectrum components render ARIA roles — use getByRole() instead of CSS selectors. Check references/e2e-testing-patterns.md § Spectrum Selectors.
  • Auth popup blocks test: Test against local dev (aio app dev) which skips shell auth. See auth section in references/e2e-testing-patterns.md.
  • AEM extension not loading: Extension Tester requires IMS login. Use generous timeouts (10s+) for extension load. Check references/aem-extension-testing.md § Common Gotchas.
  • Tests flaky in CI: Add retries (retries: 1), use waitForResponse() for action calls, and check references/ci-integration.md for headless configuration.

Chaining

  • Chains FROM appbuilder-ui-scaffolder (after UI components are generated, add E2E tests)
  • Chains FROM appbuilder-testing (when user wants browser-level validation beyond Jest unit tests)
  • Chains TO appbuilder-cicd-pipeline (add E2E test job to CI/CD pipeline)