最終更新日: 2023年2月6日
Webアプリケーションのテストを自動化したいときに、まず名前が挙がるのがSelenium(セレニウム)です。Seleniumを使えば、Webアプリケーションのテストを簡単に自動化できます。一方で、Webブラウザの操作以外は自動化できないなど、いくつかの点には注意しなくてはなりません。
この記事では、Seleniumの概要やメリット、注意点、種類についてわかりやすく解説しています。これからSeleniumを使ってテスト自動化を進めたいと考えている方は、この記事を参考にしてください。
Selenium(セレニウム)とは
Seleniumとは、Webアプリケーションのテストを自動化するオープンソースのテストフレームワークで、ジェイソン・ハギンズ氏によって2004年に開発されました。Seleniumは人に代わって、あらかじめ指定したWebブラウザの操作を実行しテストを支援します。
テスト用のスクリプトは、実際に人がWebブラウザを操作した内容を記録して作成することが可能です。独自のスクリプト言語や、一般的なプログラミング言語を使って作成する方法もあります。
Seleniumの主な特徴
テスト自動化ツールのなかで、Seleniumはどのような特徴があるでしょうか。ここでは、Seleniumの主な特徴を1つずつみていきましょう。
簡単に使える/学習コストが低い
Seleniumは操作を理解しやすい上に、Webブラウザの操作に特化して作られているため学習すべき内容が限られています。プログラミング初心者でも、比較的簡単に使うことが可能です。
また多くのユーザーに長く使われ続けているので、サンプルコードが豊富でインターネットから情報を見つけやすいのも特徴といえます。これらの理由で、学習コストを抑えられる点もメリットです。
幅広いプラットフォーム、プログラミング言語に対応している
Seleniumは、幅広いプラットフォームやプログラミング言語に対応しています。そのため、様々な環境やケースに活用することができます。
Seleniumが対応する主なプラットフォーム・プログラミング言語は以下の通りです。
【Seleniumが対応する主なプラットフォーム/プログラミング言語】
OS | Windows・MacOS・Linux |
---|---|
ブラウザ | Google Chrome・Edge・Firefox・Safari・Opera |
プログラミング言語 | Java、JavaScript、Python、Ruby、C# |
様々な種類のテストを実行できる
SeleniumはUI要素の特定や、テストの期待値とアプリケーション動作との比較など豊富なオプションを備えています。そのため、様々な種類のテストに活用できる点も大きなメリットです。
スモールスタートしやすい
Seleniumはオープンソースなので、無料で使い始められます。また前述の通り簡単に使えて、学習コストも多くはかかりません。
テスト自動化ツールの中には、非常に高額なツールも多いです。それらツールを導入するのに比べSeleniumはイニシャルコストが低く、スモールスタートしやすいのもメリットと言えます。使い始めてみて、仮に失敗しても大きな損害になることもありません。
Seleniumの種類
Seleniumは複数のコンポーネントから成り立っており、各コンポ―ネントの役割が異なります。以下、そのなかでも主なコンポーネントの概要をみていきましょう。
Selenium RC
Seleniumの中でも最初にオープンソース化されたのが、Selenium RC(正式名称:Selenium Remote Control)です。名前の通りSeleniumで作成したテストを遠隔操作するためのツールです。Selenium RCでは、作成したJavaScriptをテスト対象のWebページに埋め込んでWebブラウザを操作します。
長い期間Seleniumプロジェクトの主力製品でしたが、仕組み上セキュリティ的な制限を受けるなどの欠点があったことから、後述するSelenium WebDriverのリリースに伴い公式でも非推奨となりました。
Selenium WebDriver
Selenium WebDriver は、Selenium RCとWebDriverを統合させる形で2009年にGoogleが開発したテストフレームワークです。Webブラウザを自動的に操作するという機能面ではSeleniumRCと変わりませんが、Selenium WebDriverでは、ブラウザの拡張機能やOSの機能を利用しブラウザを操作します。そのためSelenium RCのように、セキュリティ的な制限を受けることがありません。
Selenium IDE
Selenium IDEは、機能テストの記録や編集、デバッグを行うことができるSeleniumスクリプトの統合開発環境(IDE)です。Selenium IDEは、FifefoxのアドオンやChromeの拡張機能として提供されています。
Selenium IDEを使うことで、人が行ったブラウザの操作を記録し、その内容でテストを自動化することが可能です。Selenium WebDriverはプログラミングの知識が必要ですが、Selenium IDEはプログラミング知識がなくても利用できます。
Selenium Grid
Selenium Gridは複数のSelenium実行環境を一元的に管理して、複数のマシンで並列的にテストを実行するためのツールです。Selenium Gridを使うことで、テストにかかる時間を大幅に短縮することができます。ブラウザとOSの様々な組み合わせで、テストをする必要があるときなどにも有効です。
Selenium利用上の注意点
Seleniumを利用するのにあたっては、いくつかの注意点があります。
まず当然ですが、SeleniumはあくまでWebブラウザの操作に特化したツールであり、それ以外のことはできません。他の内容について自動化したい場合は、別のツールを用意する必要があります。
またWebのUIがわずかでも変更されると、Seleniumで作った自動化テストが使えなくなる可能性も注意しなくてはなりません。その分だけ、メンテナンスのコストが発生することになります。
【参考】テスト自動化以外の使われ方をすることも
Webブラウザの操作を自動化できるSeleniumは、テスト自動化以外の用途で使われることもあります。よくあるのが、RPA※ソフトとしての使い方です。
※RPA
人がコンピューターを使って行う作業を、ロボット(ソフトウェア)によって自動化すること
SeleniumはRPAソフトとして作られたわけではありませんが、Webブラウザの操作を自動化することからブラウザ操作に特化したRPAを実現できます。無料で簡単に使える点も、SeleniumがRPAとしても使いやすい理由です。
まとめ
SeleniumはWebブラウザの操作を自動化し、Webアプリケーションのテストを支援するオープンソースのツールです。Seleniumは簡単に使える上に様々なフラットフォームに対応していることから、多くのユーザーに使われ続けています。
豊富なオプションを備え、様々なテストに対応できる点もSeleniumのメリットです。一方でWebブラウザの操作以外は実行できない点は、Seleniumのデメリットといえます。またWebのUIが少しでも変更されると、メンテナンスしなければならなくなる可能性がある点も注意しなくてはなりません。

ソフトウェアテストに従事して約20年。 テストマネージャーとして、Webシステムやスマホアプリ、ゲーム等の様々なソフトウェアのテスト計画策定、テストチーム構築、テスト管理、品質分析および品質向上施策提案などに携わる。保有資格として、IVECハイレベル5やJSTQB AL TMなど。現在は、AIQVE ONE株式会社にて、ソフトウェアテストについての社員教育や、テストプロセス・テスト手法の仕組み化・標準化に取り組んでいる。
【著作】『ゲームをテストする バグのないゲームを支える知識と手法』(翔泳社)