playwright-test について
playwright-test は、機能とシナリオの説明から OpenMetadata の Playwright テストを生成するスキルです。プロジェクトのハンドブックに従い、リンターとチェックリストでテストを検証します。
主な機能
- 01機能シナリオからのテスト生成
- 02OpenMetadata Playwright ハンドブックへの準拠
- 03テスト構造とフレーキネス対策の適用
- 04Playwright リンターの実行
- 05検証チェックリストによる出力確認
活用シーン
- 01UI 機能の E2E テスト作成
- 02複数のロールと権限のテスト
- 03フォーム送信とデータ永続化の確認
- 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がエラーなしで成功する) - ✅ カバレッジとロール(複数ロールでのテスト、データ永続性、エラー処理)
重要な注意事項
すべてのパターン、ルール、ベストプラクティスはハンドブックに記載されています。
ハンドブックのセクションを順番に読んで適用してください。
- Anti-Flakiness Patterns(重要:フレーキーテストの最大の原因)
- Test File Structure Template(適切なテスト構成のため)
- Common Test Patterns(具体的なシナリオのため)
- ESLint Enforcement(
yarn lint:playwrightを実行 — エラーがあると CI がブロックされます) - Validation Checklist(生成したテストを返す前に確認)
最後に
- 10 回中 10 回成功する、本番環境で使用できるテストを生成する
- ハンドブックのパターンをすべて正確に守る
- 明らかなコードにはコメントを付けない(例:
entity.create()の前に// Create entityと書かない) - テストの独立性を保つ — 各テストは任意の順序で実行できること
- 参考例:
playwright/e2e/Pages/DataContractInheritance.spec.ts、playwright/e2e/Features/Table.spec.ts
ハンドブックのパターンに正確に従い、本番環境で使用でき、保守しやすく、フレーキーテストが発生しないテストを生成してください。