Catalogskills.sh · philtzjp

e2etest

E2E テストを作成・実行する。agent-browser を主に使い、対応できないインタラクションに限って Playwright にフォールバックする。テストを書く条件と書かない条件、sleep によるタイミング依存の禁止、明示的な待機条件。ユーザー向け主要フローの追加、重要な UI 変更、既存フローの成功条件を変えたときに使う。

Review advisedVerified hub489 installs

Savant verdict: Review advised

Security analysis or source-hub review identified patterns requiring attention.

Live evaluation

Not evaluated yet. Workspaces can request a live evaluation.

Security assessment

Scan pending.

Structure

  • No license declaredConfirm you may reuse this skill before importing it into your repository.
  • The source hub's security checks flagged this skillSnyk: warn (Risk: MEDIUM · 1 issue)

SKILL.md

---
name: e2etest
description: E2E テストを作成・実行する。agent-browser を主に使い、対応できないインタラクションに限って Playwright にフォールバックする。テストを書く条件と書かない条件、sleep によるタイミング依存の禁止、明示的な待機条件。ユーザー向け主要フローの追加、重要な UI 変更、既存フローの成功条件を変えたときに使う。
---

# e2etest

## 書くかどうか

次のいずれかに当てはまるなら、E2E テストを作成して実行する。

- 新しいユーザー向けの主要フローを追加した。
- 重要な UI を変更した。
- 既存フローの成功条件を変更した。

次には作らない。

- 純粋なバックエンドや API だけの変更。
- ドキュメントだけの変更。
- 設定や依存関係の更新。
- 動作が変わらないリファクタリング。

既存の管理画面に小さな設定項目を足しただけで、主要フローの成功条件が変わらないなら、agent-browser で手動検証する。リスクがある場合だけテストを作る。

## ツールの選択

主に agent-browser を使う。Rust 製の CLI で、出力が簡潔で、ref ベースのスナップショット(要素に @e1 のような識別子が付く)で要素を指せる。

- サイト https://agent-browser.dev/
- クイックスタート https://agent-browser.dev/quick-start
- コマンド一覧 https://agent-browser.dev/commands
- スナップショット https://agent-browser.dev/snapshots
- セレクタ https://agent-browser.dev/selectors
- ネットワーク https://agent-browser.dev/network
- デバッグ https://agent-browser.dev/debugging
- CDP モード https://agent-browser.dev/cdp-mode
- WebMCP https://agent-browser.dev/webmcp
- 変更履歴 https://agent-browser.dev/changelog
- リポジトリとリリース https://github.com/vercel-labs/agent-browser/releases

更新が速い。コマンドやオプションの形に迷ったら記憶で書かず、コマンド一覧と変更履歴を引く。

```sh
agent-browser open example.com
agent-browser snapshot -i
agent-browser click @e2
agent-browser screenshot page.png
```

## Playwright へのフォールバック

agent-browser で対応できないインタラクションに限る。

- キャンバス操作。
- 細かいマウス操作。
- タッチジェスチャー。
- ネットワーク傍受。
- 複数ページやクロスオリジンのフロー。
- WebSocket や SSE のアサーション。

フォールバックしたら、agent-browser で対応できなかった理由をテストファイルに書く。後から読む人が、単なる手癖なのか必然だったのかを判断できるようにする。

agent-browser で対応できるインタラクションに Playwright を使わない。

## 待機

`sleep` によるタイミング依存のテストを作らない。明示的な待機条件を使う。

- 要素の出現、消滅、テキストの変化を待つ。
- ネットワークの完了やレスポンスを待つ。
- 固定の秒数で「だいたい終わっているはず」を前提にしない。CI では遅くなり、ローカルでは速すぎる。

不安定なテストを `sleep` を伸ばして黙らせない。待つべき条件を特定して書き直す。

## 確定前に確認する

- 変更が主要フローや成功条件に触れているか。触れているならテストがあるか。
- agent-browser で書けるものを Playwright で書いていないか。
- Playwright を使ったなら、理由をテストファイルに書いたか。
- `sleep` が残っていないか。待機が明示的な条件になっているか。
- テストが CI で通るか。ローカルでしか通らない前提を持ち込んでいないか。