mcpField
P
playwright-test

playwright-test

github.com/open-metadataテスト・品質15.6k63 回インストール今日更新
リポジトリ

playwright-test について

playwright-test は、機能とシナリオの説明から OpenMetadata の Playwright テストを生成するスキルです。プロジェクトのハンドブックに従い、リンターとチェックリストでテストを検証します。

主な機能

  1. 01機能シナリオからのテスト生成
  2. 02OpenMetadata Playwright ハンドブックへの準拠
  3. 03テスト構造とフレーキネス対策の適用
  4. 04Playwright リンターの実行
  5. 05検証チェックリストによる出力確認

活用シーン

  1. 01UI 機能の E2E テスト作成
  2. 02複数のロールと権限のテスト
  3. 03フォーム送信とデータ永続化の確認
  4. 04引き渡し前の生成テスト検証

インストール

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

$npx skills add https://github.com/open-metadata/openmetadata --skill playwright-test

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

詳細

Playwright Test Generator - OpenMetadata

OpenMetadata の規約に従って、本番環境で使用できる、フレーキーテストが発生しない Playwright テストを生成します。

使用方法

/playwright-test
Feature: <feature name>
Category: <Features|Pages|Flow|VersionPages>
Entity: <Table|Dashboard|Pipeline|Topic|Database|User|Team|Glossary|Other>
Domain: <Governance|Discovery|Platform|Observability|Integration>
Scenarios:
  - <scenario 1 description>
  - <scenario 2 description>
  - <scenario 3 description>
Roles: <admin|dataConsumer|dataSteward|owner> (optional, defaults to admin)

簡単な例

/playwright-test
Feature: Data Quality Rules
Category: Features
Entity: Table
Domain: Observability
Scenarios:
  - Admin can create and configure data quality rules
  - Data consumer can view test results but not edit rules
  - Test results are persisted after page reload
Roles: admin, dataConsumer

手順

ステップ 1:最初にハンドブックを読む

重要:テストを生成する前に、以下のすべてのパターンを読んで適用してください。

openmetadata-ui/src/main/resources/ui/playwright/PLAYWRIGHT_DEVELOPER_HANDBOOK.md

ハンドブックには、以下の内容が含まれています。

  • テストの理念(ユーザー中心、振る舞い重視)
  • フレーキーテストを防ぐパターン(:visible セレクターチェーンのパターンなど)
  • テストのタイムアウト戦略(test.slow() と test.setTimeout())
  • 一般的なテストパターン(フォーム送信、ドロップダウン、複数ロールでのテスト)
  • ロケーターの優先順位に関するガイドライン
  • サポートクラスのリファレンス
  • ドメインタグ
  • 検証チェックリスト

次に進む前に、ハンドブックの原則をすべて適用してください。


ステップ 2:ハンドブックのテンプレートを使ってテストを生成する

ハンドブックの Test File Structure Template を使用してください。テンプレートには、以下が含まれています。

  • 適切なインポート(performAdminLogin、エンティティクラス、ユーティリティ)
  • ドメインタグを使用した test.describe
  • API を通じたエンティティのライフサイクル管理のための beforeAll/afterAll
  • タイムアウト処理のための test.slow()
  • 明確に整理するための test.step()
  • API レスポンスの検証パターン

ステップ 3:ハンドブックの一般的なテストパターンを適用する

以下を参照するには、Common Test Patterns のセクションを確認してください。

  • API 検証を伴うフォーム送信
  • ドロップダウンの選択(:visible チェーンパターンを使用)
  • 複数ロールでの権限テスト
  • データ永続性の検証
  • ナビゲーションパターン
  • 検索とフィルタリングのパターン

ステップ 4:ESLint のチェックを実行する

生成したテストを返す前に、Playwright リンターを実行し、アンチパターンを自動的に検出してください。

cd openmetadata-ui/src/main/resources/ui
yarn lint:playwright

エラーレベルのルール(no-networkidle、no-page-pause、no-focused-test)に違反すると、CI がブロックされます。最終確定する前に、エラーを修正してください。ルールの全リファレンスについては、ハンドブックの ESLint Enforcement セクションを参照してください。

ステップ 5:ハンドブックのチェックリストで検証する

生成したテストを返す前に、ハンドブックの Validation Checklist にある項目をすべて確認してください。

  • ✅ 構成と整理(test.step、ドメインタグ、インポート、beforeAll/afterAll)
  • ✅ フレーキーテスト対策(waitForTimeout、networkidle、force: true、位置指定セレクター、保存済みの :visible ロケーターを使用しない)
  • ✅ API とネットワーク(アクションの前に waitForResponse を実行、ステータスコードを検証)
  • ✅ 待機とアサーション(waitForAllLoadersToDisappear、セマンティックロケーター、適切なアサーション)
  • ✅ ESLint(yarn lint:playwright がエラーなしで成功する)
  • ✅ カバレッジとロール(複数ロールでのテスト、データ永続性、エラー処理)

重要な注意事項

すべてのパターン、ルール、ベストプラクティスはハンドブックに記載されています。

ハンドブックのセクションを順番に読んで適用してください。

  1. Anti-Flakiness Patterns(重要:フレーキーテストの最大の原因)
  2. Test File Structure Template(適切なテスト構成のため)
  3. Common Test Patterns(具体的なシナリオのため)
  4. ESLint Enforcement(yarn lint:playwright を実行 — エラーがあると CI がブロックされます)
  5. Validation Checklist(生成したテストを返す前に確認)

最後に

  • 10 回中 10 回成功する、本番環境で使用できるテストを生成する
  • ハンドブックのパターンをすべて正確に守る
  • 明らかなコードにはコメントを付けない(例:entity.create() の前に // Create entity と書かない)
  • テストの独立性を保つ — 各テストは任意の順序で実行できること
  • 参考例:playwright/e2e/Pages/DataContractInheritance.spec.ts、playwright/e2e/Features/Table.spec.ts

ハンドブックのパターンに正確に従い、本番環境で使用でき、保守しやすく、フレーキーテストが発生しないテストを生成してください。

コメント