Skip to content
Latchkey

Cypress vs Selenium: CIに適したE2Eツールはどちら?

CypressはモダンでJS-firstなE2Eツール。Seleniumは巨大なフットプリントを持つ、多言語・多ブラウザの標準。

Cypressは開発者志向のJS APIでブラウザ内でテストを実行します。Selenium(WebDriver)は多くの言語でブラウザを操作し、スケール向けのGridを含め、長年の業界標準です。

CypressSelenium
言語JavaScript/TypeScriptJava、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を計画しましょう。

関連ガイド