test-automation-framework
スケーラブルなテスト自動化フレームワークを、Page Object Modelやフィクスチャ、レポーティング機能を取り入れて設計・実装します。テストフレームワークの構築、Page Objectパターンの適用、テストアーキテクチャの設計、テストの整理整頓、自動化インフラの構築といった用途に活用してください。
description の原文を見る
> Design and implement scalable test automation frameworks with Page Object Model, fixtures, and reporting. Use for test framework, page object pattern, test architecture, test organization, and automation infrastructure.
SKILL.md 本文
テスト自動化フレームワーク
目次
概要
テスト自動化フレームワークは、自動化されたテストに構造性、再利用性、保守性をもたらします。テストの整理方法、テストデータの管理、依存関係の処理、レポート生成のパターンを定義します。設計が優れたフレームワークは、重複を減らし、信頼性を向上させ、テスト開発を加速させます。
使用する場合
- 新しいテスト自動化のセットアップ
- 既存のテストスイートのスケーリング
- チーム全体でのテストプラクティスの標準化
- テスト保守の負担軽減
- テストの信頼性と速度の向上
- 大規模なテストコードベースの整理
- 再利用可能なテストユーティリティの実装
- 一貫したレポート作成
クイックスタート
最小限の実装例:
// framework/pages/BasePage.ts
import { Page, Locator } from "@playwright/test";
export abstract class BasePage {
constructor(protected page: Page) {}
async goto(path: string) {
await this.page.goto(path);
}
async waitForPageLoad() {
await this.page.waitForLoadState("networkidle");
}
async takeScreenshot(name: string) {
await this.page.screenshot({ path: `screenshots/${name}.png` });
}
protected async clickAndWait(locator: Locator) {
await Promise.all([
this.page.waitForResponse((resp) => resp.status() === 200),
locator.click(),
]);
}
}
// ... (詳細な実装についてはリファレンスガイドを参照してください)
リファレンスガイド
references/ ディレクトリの詳細な実装:
| ガイド | 内容 |
|---|---|
Page Object Model (Playwright/TypeScript) | Page Object Model (Playwright/TypeScript) |
Test Fixtures and Factories | テストフィクスチャとファクトリ |
Custom Test Utilities | カスタムテストユーティリティ |
Configuration Management | 設定管理 |
Custom Reporter | カスタムレポーター |
pytest Framework (Python) | pytest フレームワーク (Python) |
Test Organization | テスト組織 |
ベストプラクティス
✅ すべきこと
- UIテストに Page Object Model を使用する
- 再利用可能なテストユーティリティを作成する
- 適切な待機戦略を実装する
- テストデータにはフィクスチャを使用する
- 複数の環境に対応する設定を行う
- 読みやすいテストレポートを生成する
- テストを機能またはタイプ別に整理する
- テストフレームワークをバージョン管理する
❌ してはいけないこと
- テストロジックをページオブジェクトに含める
- ハードコードされた待機時間 (sleep) を使用する
- テストセットアップコードを重複させる
- テストデータをテストロジックと混合させる
- エラーハンドリングをスキップする
- テストの不安定性を無視する
- 過度に複雑な抽象化を作成する
- 環境 URL をハードコードする
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- aj-geddes
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/aj-geddes/useful-ai-prompts / ライセンス: MIT
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。