Skip to content
Latchkey

Cypress vs Selenium(CI向け): どちらのE2Eツールがよくスケールするか?

CIではスケーリングと幅広さに帰結します。CypressはJSチームにモダンなDXを、Seleniumはクロス言語のリーチとGridベースのスケールを提供します。

CypressはJSファーストのE2Eツールで、自動待機と強力なデバッグを備えます。Selenium(WebDriver)は多くの言語でブラウザを駆動し、Selenium Gridで水平にスケールする、長年の業界標準です。

CypressSelenium
言語JavaScript/TypeScriptJava、Python、C#、JS、Ruby、その他
スケーリングdashboard/shardingSelenium Grid
ブラウザカバレッジChromium系 + その他(状況による)非常に広い(主要すべて)
自動待機 / DX強力、モダン手動待機が一般的
CIセットアップブラウザのインストール + cacheブラウザごとのdriver / Grid

CIでは

CypressはJSチームに洗練された開発者体験と低減されたflakinessを提供し、dashboardまたはshardingによる並列性を持ちます。Seleniumはクロス言語のチームと最も広い実ブラウザ/デバイスカバレッジで比類なく、Gridは多数のマシンにわたってスケールします。どちらもブラウザのバイナリを必要とし、(Seleniumの場合は)driverがCIで利用可能である必要があります。これはよくあるセットアップの失敗ポイントです。

flakiness

どちらもタイミングでflakeします。Cypressの自動待機は役立ちますが、Seleniumは通常、明示的な待機が必要です。runner間でshardingし、単一のflakeでbuildが失敗しないよう一時的な失敗をリトライしましょう。高速なマネージドrunnerは、大規模な並列E2E実行を短縮します。

結論

モダンなDXを求めるJS/TSチーム: Cypress。クロス言語のチーム、または大規模で最大のブラウザ/デバイスカバレッジ: Grid付きのSelenium。どちらの場合もCIでブラウザをインストールし、flakyテストのリトライを計画しましょう。

関連ガイド