mcpField
B
browser-test

browser-test

github.com/ruvnetテスト・品質80.0k755 回インストール今日更新
リポジトリ

browser-test について

browser-test は実際のブラウザーで UI テストを自動化するスキルです。記録したセッションを再生したりベースラインと比較したりでき、フロントエンドの検証や CI 失敗後の再実行に使えます。

主な機能

  1. 01再生可能なブラウザーセッションの記録
  2. 02ブラウザー操作の実行
  3. 03ページ内容と状態の検証
  4. 04スクリーンショットとアクセシビリティツリーの取得
  5. 05実行結果とベースラインの比較
  6. 06検出結果とセッション成果物の保存

活用シーン

  1. 01フロントエンド変更後の UI フローを検証
  2. 02実行結果をビジュアルベースラインと比較
  3. 03CI 失敗後に保存済みテストを再生

インストール

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

$npx skills add https://github.com/ruvnet/ruflo --skill browser-test

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

詳細

ブラウザーテスト

UI の自動テストです。一時的な実行ではなく、記録された RVF セッションコンテナを使用するようになりました。そのため、すべてのテストで再生可能な成果物が生成されます。

使用する場面

  • UI の機能やユーザーフロー、またはフロントエンドの変更が実際のブラウザーで動作することを検証する場合。
  • 今後のリグレッションとの比較に使用できるベースラインセッションを作成する場合。
  • CI の失敗時に保存済みのテストセッションを再実行する場合(テストを作り直す必要はありません)。

手順

  1. browser-record を組み合わせて、テスト実行を記録します。
    • --kind browser-session を指定して RVF コンテナを割り当てます。
    • ruvector の軌跡を開始します。
  2. 操作を実行します。browser_open、browser_click、browser_fill、browser_type、browser_select を使用します。各アクションで trajectory-step が出力されます。
  3. アサーションを行う前に、browser_wait で要素の表示またはネットワークのアイドル状態を待ちます。
  4. browser_get-text / browser_get-value / browser_get-title / browser_get-url を使って検証します。検証結果は RVF コンテナ内の findings.md に記録されます。
  5. 視覚的リグレッションに備え、重要な操作の前後でスクリーンショットを撮影します。ファイル名には <step-id>.png を使用します。
  6. ナビゲーションの境界でアクセシビリティツリーをスナップショットします。
  7. セッションを終了します。trajectory-end --verdict pass|fail、rvf compact を実行し、AgentDB のインデックスを browser-sessions に作成します。
  8. (任意)--against <prior-session-id> と比較する場合:browser-screenshot-diff を呼び出して、新しい実行とベースラインを比較します。

ナビゲーション

  • browser_back / browser_forward で履歴を移動します
  • browser_reload でページを再読み込みします
  • browser_scroll で要素または座標までスクロールします

v0.1.0 からの変更点

  • このスキルは、単に browser_close を実行して終了するのではなく、セッション終了プロトコルで終了するようになりました。
  • テスト中に見つかったセレクターは browser-selectors(host:intent)に格納されるため、次のテストでは埋め込みの類似度を使って検索できます。
  • LLM 向けの要約を作成する前に、検証結果は aidefence_is_safe を通過します。インジェクションのフラグが付いたコンテンツは findings.md に隔離されます。
  • CI で同じスキルを使うと、/ruflo-browser replay で再実行できる成果物が生成されるようになりました。

ヒント

  • 非同期レンダリングに対応するため、アサーションの前に browser_wait を使用します。
  • 視覚的リグレッションを確認するには、親セッション ID を保存し、次回の実行で --against <id> を指定します。
  • 独自の JavaScript アサーションには browser_eval を使用します。ただし、返された文字列をログに記録する前に、必ず aidefence_is_safe ゲートでマスキングしてください。

コメント