mcpField
E
e2e-testing-automation

e2e-testing-automation

github.com/aj-geddesテスト・品質373691 回インストール34 週間前に更新
リポジトリ

e2e-testing-automation について

e2e-testing-automation は、ユーザーフロー全体やフロントエンドとバックエンドの連携を検証する開発・QAチーム向けのスキルです。Playwright、Cypress、Python の Selenium に関するガイドとテスト実践を扱います。

主な機能

  1. 01ユーザーワークフロー全体を検証
  2. 02クリック、入力、スクロールを再現
  3. 03Playwright のガイドを提供
  4. 04Cypress のガイドを提供
  5. 05Python Selenium のガイドを提供
  6. 06ページオブジェクトパターンの助言

活用シーン

  1. 01登録、ログイン、決済を検証
  2. 02複数ステップのワークフローをテスト
  3. 03ブラウザー間の動作を確認
  4. 04UI変更後の回帰テストを実施

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill e2e-testing-automation

インストール後、Claude Code で/e2e-testing-automationを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
cypress-e2e-tests.md
page-object-model-pattern.md
playwright-e2e-tests.md
selenium-with-python-pytest.md
scripts/
scaffold-tests.sh
templates/
test-template.js

詳細

E2E テストの自動化

目次

概要

エンドツーエンド(E2E)テストでは、UI からすべてのバックエンドシステムに至るまで、ユーザーのワークフロー全体を検証し、ユーザーの視点からアプリケーションスタック全体が正しく連携して動作することを確認します。E2E テストでは、ブラウザーを使って実際のユーザー操作をシミュレートし、認証、ナビゲーション、フォーム送信を処理して、結果を検証します。

使用する場面

  • 重要なユーザージャーニー(サインアップ、購入手続き、ログイン)のテスト
  • 複数の手順から成るワークフローの検証
  • さまざまなブラウザーやデバイスでのテスト
  • UI の変更に対するリグレッションテスト
  • フロントエンドとバックエンドの連携の検証
  • 実際のユーザー操作(クリック、入力、スクロール)を使ったテスト
  • デプロイのスモークテスト

クイックスタート

最小限の実行例:

// tests/e2e/checkout.spec.ts
import { test, expect, Page } from "@playwright/test";

test.describe("E-commerce Checkout Flow", () => {
  let page: Page;

  test.beforeEach(async ({ page: p }) => {
    page = p;
    await page.goto("/");
  });

  test("complete checkout flow as guest user", async () => {
    // 1. Browse and add product to cart
    await page.click("text=Shop Now");
    await page.click('[data-testid="product-1"]');
    await expect(page.locator("h1")).toContainText("Product Name");

    await page.click('button:has-text("Add to Cart")');
    await expect(page.locator(".cart-count")).toHaveText("1");

    // 2. Go to cart and proceed to checkout
    await page.click('[data-testid="cart-icon"]');
    await expect(page.locator(".cart-item")).toHaveCount(1);
    await page.click("text=Proceed to Checkout");

// ... (see reference guides for full implementation)

リファレンスガイド

references/ ディレクトリにある詳細な実装:

ガイド内容
Playwright E2E TestsPlaywright E2E テスト
Cypress E2E TestsCypress E2E テスト
Selenium with Python (pytest)Python(pytest)での Selenium
Page Object Model Patternページオブジェクトモデルパターン

ベストプラクティス

✅ 推奨事項
  • 安定したセレクターには data-testid 属性を使用します
  • 保守性を高めるため、ページオブジェクトモデルを実装します
  • 重要なユーザージャーニーを徹底的にテストします
  • 複数のブラウザーでテストを実行します(クロスブラウザーテスト)
  • sleep やタイムアウトの代わりに、明示的な待機を使用します
  • 各テストの後にテストデータをクリーンアップします
  • 失敗時にスクリーンショットを撮影します
  • 可能な場合はテストの実行を並列化します
❌ 禁止事項
  • 壊れやすい CSS セレクター(nth-child など)を使用しないでください
  • あらゆる UI の組み合わせをテストしないでください(重要な経路に集中します)
  • テスト間で状態を共有しないでください
  • 固定の遅延(sleep/timeout)を使用しないでください
  • 不安定なテストを放置しないでください
  • 単体テストレベルのテストに E2E テストを使用しないでください
  • サードパーティ製 UI コンポーネントを詳細にテストしないでください
  • モバイル/レスポンシブのテストを省略しないでください

コメント