Selenium 対 … ブログ記事
カテゴリ
自動テストに関するブログ記事でクリックベイトを行う最も簡単な方法は、特に業界のリーダーを批判するときに、キャッチーなタイトルで Selenium をこの分野の別のツールと比較することです。
残念ながら、これは特にリンゴとリンゴを比較する場合、世に出回っているどの製品でどの機能が利用可能かについて、状況を混乱させる可能性があります。
Selenium は、常にブラウザ自動化のための優れたツールでした。プロジェクトにとって幸運なことに、Selenium は 20 年近くウェブアプリケーションをテストするためのツールとして選ばれるようになりました。このプロジェクトが焦点を当ててきた分野は、ますます難しくなっているブラウザ自動化の難しい部分を構築することです。安定した API と Selenium を実行するためのインフラストラクチャのスケーラビリティは、常にプロジェクトの優先事項でした。人々が Selenium を使用してどのようにテストするかには焦点を当てていません。なぜなら、非常に優れたテストフレームワークが世に出回っており、5 つの異なる言語でそれを行うには、かなりのエンジニアリング作業が必要になるからです。
ただし、いくつかの特定の間違いが、これらのブログ記事で定期的に再登場します。
Playwright や Cypress と比較して、ブラウザとドライバーのセットアップが難しすぎる
過去には、ドライバーをダウンロードする必要があったため、これは事実でした。GeckoDriver と SafariDriver はブラウザのアップグレードを適切に処理できたため、それほど悪いことではありませんでした。一方、Chromium ベースのブラウザのドライバーは、新しいリリースごとに更新する必要があります。
1 年以上前から、Selenium はこれを自動的に処理します。ChromeDriver または EdgeDriver が見つからない場合、Selenium Manager を使用してダウンロードします。最初のリリース以降、大幅に改善され、おそらくクラス最高になりました。最新バージョンの Selenium では、可能な場合はブラウザもダウンロードして使用するためです。Playwright や Cypress と比較して、ブラウザとドライバーを更新するために Selenium の依存関係を更新する必要はありません。依然として顧客と同じブラウザを使用しており、バージョン切り替えが簡単になります。また、使用しているテストフレームワークを変更する必要もありません。そして、Google がテストに使用することを推奨しているブラウザ を使用していることを忘れないでください。
Playwright と Cypress にはテストランナーが組み込まれているのに、テストランナーのセットアップは大変な作業だ…
うーん… 多分? Selenium を使用した E2E テストフレームワークのセットアップは、一部の人が示唆するほど難しくはありません。難しいのは、ドライバーが適切な場所にあることを確認することであり、上記で説明したように、それを解決しました。それが完了すると、Selenium のアプローチを使用すると、最も使い慣れたテストランナーを使用できます。「バッテリー込み」のアプローチ、つまりテストランナーと緊密に統合された Selenium が必要な場合は、SeleniumBase、Nightwatch、Serenity など、Selenium を使用する多くのプロジェクトのいずれかが適切なツールかもしれません。
注意すべき点の 1 つは、Playwright が Selenium のような唯一の多言語ブラウザ自動化フレームワークであることです。ただし、TypeScript または JavaScript を使用しない場合は、依然としてテストランナーのセットアップを自分で行う必要があります。一部のテストフレームワークには、必要なフィクスチャを自動的にセットアップするプラグインがあります。JavaScript/TypeScript 空間で、組み込みのテストランナーが本当に必要な場合は、NightwatchJS のようなダウンストリームプロジェクトや、WebdriverIO のような接線プロジェクトがあります。ダウンストリームプロジェクトは Selenium のライブラリを使用し、接線プロジェクトは独自のライブラリを持っていますが、依然として WebDriver 標準に従っています。
Playwright と Cypress はネットワーク傍受が可能で、Selenium とは異なりイベントドリブンコードを記述できる
Selenium は、Selenium 4 がリリースされてからこれを提供できるようになりました。非常に優れているため、Playwright でさえ、テストのスケーリングに Selenium を使用することを推奨しています。Selenium プロジェクトは、これらの機能を置き換えるために WebDriver BiDi 仕様が実装されるまで、これをすぐに削除することはありません。それでも、Selenium には、十分な警告なしにアップグレードによって何も壊れないようにする歴史があります。そのため、各言語は、使用されている基盤となるテクノロジーからテストを分離する NetworkInterceptor
などの高レベルのラッパーを提供しています。
まとめ
上記からわかるように、Selenium は依然として世に出回っている製品と同じくらい優れています。Cypress や Playwright と Selenium で異なる点の 1 つは、Selenium がボランティア主導のプロジェクトであり、商業的な支援を受けていないことです。私たちを助けてみませんか? 上記の機能の使用方法に関するブログ記事を書いたり、これらの機能があなたの生活をどのように楽にしているかをソーシャルメディアに投稿したりしてみませんか?