Cypress vs Selenium: CIに適したE2Eツールはどちら?
CypressはモダンでJS-firstなE2Eツール。Seleniumは巨大なフットプリントを持つ、多言語・多ブラウザの標準。
Cypressは開発者志向のJS APIでブラウザ内でテストを実行します。Selenium(WebDriver)は多くの言語でブラウザを操作し、スケール向けのGridを含め、長年の業界標準です。
| Cypress | Selenium | |
|---|---|---|
| 言語 | JavaScript/TypeScript | Java、Python、C#、JS、Ruby、他 |
| アーキテクチャ | ブラウザ内 | WebDriverプロトコル |
| ブラウザカバレッジ | Chromiumファミリー + その他(可変) | 非常に広い(主要ブラウザすべて) |
| 自動待機 / DX | 強力、モダン | 手動waitが一般的 |
| スケーリング | 並列(dashboard/手動) | Selenium Grid |
CIでは
Cypressは自動待機と優れたデバッグを備えた洗練された開発者体験を提供し、JSチームのflakinessを低減します。Seleniumは多言語チームと最も広いブラウザ/デバイスカバレッジで比類なく、Gridがそれをマシン間でスケールさせます。どちらもCIにブラウザのバイナリをインストールする必要があります - よくあるセットアップの失敗点です。
Flakiness
どちらもtimingやサーバー未準備の状態でflakyになります。Cypressの自動待機は役立ちます。Seleniumは多くの場合、明示的なwaitが必要です。自己修復runnerは一時的な失敗をretryできるため、単発のflakeがbuild全体を落とすことはありません。
結論
モダンなDXを求めるJS/TSチーム: Cypress。多言語チームや最大のブラウザカバレッジ: Selenium(Grid使用)。いずれにせよCIにブラウザをインストールし、flakyなテストのretryを計画しましょう。
関連ガイド
Playwright vs Selenium: Which E2E Tool for CI?Playwright vs Selenium for CI: speed, parallelism, language support, and reliability. Which browser automatio…
Playwright vs Cypress in CI: Speed, Parallelism & FlakinessPlaywright vs Cypress for CI: parallelism, browser support, speed, and flakiness. Which E2E runner is more re…
Self-Healing CI: Containing Flaky Tests Without Hiding Real BugsFlaky tests fail intermittently with no code change. Learn how to identify them and how self-healing CI retri…