開発者は、オンプレミスとオフプレミスの両方でWebアプリケーションの機能をテストするために数え切れないほどの時間を費やしています。
Seleniumの前は、すべて文字通り手作業で行われていました。何十人もの人々が、既存のすべてのブラウザーで何百ものスクリプトをテストし、問題を特定して、その発生の原因を特定しようとしました。
セレンとは
Seleniumは、すべての主要なオペレーティングシステムとブラウザでサポートされているほとんどのプログラミング言語で動作し、現在Netflix、Google、HubSpot、Fitbitなどの企業で使用されています。スイート全体が、さまざまなテストタスクとニーズに対応するさまざまなソリューションを提供します。
セレンスーツインフラストラクチャ
WebDriver
ほとんどの場合、人々がSeleniumについて話すとき、それらはSeleniumWebDriverを意味します。製品開発の大部分はこの要素に焦点を合わせています。
WebDriverのテスト自動化は、タクシーの運転と比較されることがよくあります。タクシーの運転とテストには、顧客(テストエンジニア)-車(ブラウザ)-タクシー運転手(WebDriver)の3つのコンポーネントが含まれます。
このアナロジーによれば、プログラマーは最初にドライバーにブラウザーの要素との対話方法を指示します。次に、WebDriverは、次のように聞こえるブラウザ(マシン)コマンドを提供します。ボタンがアクティブになったら、ボタンをクリックします。その後、ブラウザは、後でスクリプトに送信されるWeb要素の値とステータスに関する情報をドライバーに提供します。簡単に言うと、Selenium WebDriverツールを使用して情報を収集し、アプリケーションが正しく機能することを確認します。つまり、ドライバーは運転方法と行き先を知っています。
Selenium IDE
これはFirefoxの拡張機能です。開発用に設計されておらず、習得が容易で、プロトタイピングタスクに最適です。
プラグインは基本的にエンジニアのアクションをブラウザに記録して繰り返すため、SeleniumIDEでの作業にはプログラミングスキルは必要ありません。プログラマーはそれを独立した本格的な製品とは見なしていませんが、単純なスクリプトで作業するには十分です。
セレングリッド
複数のマシンとブラウザで同時に並列テストを実行できます。このツールの主な機能は、時間を節約することです。たとえば、4台の仮想マシンまたは物理マシンをセットアップするために100個のテストを実行する必要がある場合は、SeleniumGridが使用されます。

ブラウザスクリプトは一般的に遅いため、並列テストなどのパフォーマンス手法を使用すると、この問題を解決できます。また、Firefoxが1台のコンピューターで実行されている場合、Chromeが別のコンピューターで実行されている場合など、異なるブラウザーで同じアプリケーションを並行してテストするためにも使用できます。異なるバージョンのブラウザとオペレーティングシステムを組み合わせることにより、異なる構成を作成することができます。言うまでもなく、大規模な本番環境で使用すると、Gridは4倍の時間を節約できます。
長所
Seleniumは、市場に出回っている唯一のテスト自動化ツールではありませんが、有料製品と競合できる唯一の無料ツールです。 Katalon Studioは実行可能な代替手段ですが、多くの言語を提供せず、Linuxで実行されず、ファンベースがありません。
当然のことながら、大企業でさえ急いで有料サイトに移動し、Seleniumが無料で行っていることに対して数千ドルを寄付しています。 Seleniumを使用している企業の数は55,000を超えています。テストと自動化における市場シェアはほぼ30%です。
言語、プラットフォーム、ブラウザのサポート:
- Java
- C#
- PHP
- ルビー
- Perl
- Python
- JavaScript
- Objective-C
- Haskell
- R
- ウィンドウズ
- Linux
- Mac
- Android
- iOS
- Google Chrome
- Internet Explorer
- Firefox
- サファリ
- オペラ
- Microsoft Edge
- HtmlUnitDriver
短所
おそらく、唯一の重大な欠点は、SeleniumがWebアプリケーションでしか使用できないことです。ただし、WinAppDriverをSeleniumに統合してデスクトップアプリケーションをテストできるため、これは制限であり、欠点ではありません。
結論として少し歴史
2004年、Jason Hugginsは、作成者を繰り返しの手動テストから解放するように設計されたJavaScriptフレームワークを作成しました。この製品は、予想通り最初にJavaScriptTestRunnerと呼ばれ、ブラウザーで直接テストを実行し、ページの相互作用を管理し、手動入力なしでそれらを再実行することができました。このJavaScriptツールは、Hugginsがその可能性を最大限に発揮し、オープンソースにして、SeleniumRemoteControlに名前を変更した後に人気を博しました。革新的な部分は、それまで、テスターが選択したプログラミング言語でブラウザーと通信することを許可するツールが他になかったことです。
ただし、ブラウザがJavaScriptにセキュリティ制限を適用していることがすぐに明らかになり、ツールの全機能を使用できなくなりました。当時、GoogleはSeleniumの熱心なユーザーであり、そのエンジニアは制限を回避するために最善を尽くしました。そのうちの1人であるSimonStewartは、ブラウザーと直接対話する製品の開発を開始し、それをWebDriverと呼びました。