SeleniumはWebアプリケーションのブラウザ操作を自動化するためのテストフレームワークです。自動でブラウザを操作することでWebサイトの動作のテストを行うことができます。この記事ではSeleniumを理解するために初心者でも分かる歴史、特徴などの基礎知識について解説させていただきます。
SeleniumとはWebアプリケーションのブラウザ操作を自動化するためのテストフレームワークです。2004年にUIテストを自動化することを目的に開発されました。テストを実施するためのツール群であると理解すると良いでしょう。
人の手を介してWebブラウザを操作する代わりにSeleniumがWebブラウザを操作してくれるものです。SeleniumはWebブラウザの自動操作ライブラリで様々な機能を備えています。主な製品として『Selenium WebDriver』『Selenium IDE』『Selenium Grid』などを展開しております。また対応言語として「Java」「JavaScript」「Python」などが挙げられます。
ブラウザとはインターネットを活用し、Webページを閲覧するためのソフトウェアのことです。日頃スマートフォンやパソコンでインターネットを利用される際に必ず利用しているものになります。代表的なブラウザの種類として、GoogleChrome(グーグルクロム)、Safari(サファリ)、Internet Explorer(インターネットエクスプローラ)などが挙げられます。ブラウザの語源は英語の「browse」(閲覧する)から来ており、これが名詞形の「browser」で表されるようになりました。またブラウザについて「Webブラウザ」や「インターネットブラウザ」と表現する場合もあります。
Webブラウザの役割や種類などの基礎知識について解説された記事はこちら>>
Seleniumの読み方は『セレニウム』です。呼び名は「セレン」と略称して呼ぶことが一般的なようです。名前の由来は原子番号34の元素「セレン」からきていると言われております。
Seleniumはジェイソン・ハギンズ氏によって2004年にUIテストを自動化することを目的に開発されました。ジェイソン氏はこのテストツールを多くの同僚に使用を呼びかけたところ直感的で使いやすいく他のWebアプリケーションの再利用可能なテストフレームワークとして大いに可能性を感じると大きな賛同を集めました。最初にオープンソース化されたのは「Selenium-RC」です。2007年にはジェイソン氏はGoogleにてSeleniumプロジェクトを進める形になります。これが後の「Selenium WebDriver」誕生のキッカケとなります。簡単に以下の年表にまとめておりますのでご覧ください。
年代 | 内容 |
2004年 | 「Selenium」誕生 「Selenium-RC」オープンソース化 |
2006年 | 「Selenium IDE」Seleniumプロジェクトに寄付 |
2007年 | ジェイソン・ハギンズ氏がGoogleに加わる |
2008年 | 「Selenium Grid」を開発 |
2009年 | 「Selenium WebDriver」へと統合 |
Seleniumの種類を見ていきましょう。
Selenium RCとはSeleniumテストを遠隔操作するためのツールです。正式名称は「Selenium Remote Control」であり、別名「Selenium1.0」と呼ばれております。Selenium WebDriverが登場する前の長い期間メインで稼働していたSeleniumプロジェクトの主製品です。
Selenium WebDriverはGoogleが開発したWebアプリケーション用テストフレームワークです。Selenium RCとWebDriverを統合させる形で誕生しました。主な役割として「スクレイピング」と「テスト」があります。人の手を介してWebブラウザを操作する代わりにSeleniumがWebブラウザを操作してくれるものです。
Selenium IDEはSeleniumスクリプトの統合開発環境です。こちらでは機能テストの記録、編集、デバッグが可能となっております。ブラウザとのやり取りを簡単に記録および再生するChromeおよびFirefoxアドオンです。
SeleniumGridとは様々なSelenium実行環境を管理し、並列にテストを実行するためのツールです。複数のマシンでテストを分散して実行し、中央から複数の環境を管理して拡張し、ブラウザとOSの膨大な組み合わせに対してテストを簡単に実行することが出来ます。
Seleniumの特徴を見ていきましょう。
Seleniumは柔軟性の高いテスト操作を実現するという特徴があります。UI要素を特定や、テストの期待値と実際のアプリケーションの動作を比較するなど様々なオプションが用意されております。
Seleniumは様々な言語に対応しているという特徴があります。主な対応言語として「Java」「JavaScript」「Python」などが挙げられます。
Seleniumはブラウザ操作に特化しているので学習コストが低いという特徴があります。SeleniumではWebアプリケーションを操作することはできません。ブラウザに対して操作を行うものです。これにより命令の種類などといった操作に必要な覚えることが少ないため学習コストが低いと言えます。
Seleniumが対応しているプログラミング言語をみていきましょう。
JavaとはOracle社が開発・提供するオブジェクト指向のプログラミング言語です。Javaのキャッチコピーは「Write once, run anywhere」で直訳すると「一度書けば、どこでも実行できる」という意味があります。このことからも分かるようにJavaの特徴は『オブジェクト指向の先駆者』で『どこでも動く』ということらが挙げられます。世界中で最もポピュラーで多くのWebアプリケーションで採用されていることで知られております。
Javaのメリット・デメリットなどの基礎知識についての記事はこちら>>
JavaScriptとはネットスケープコミュニケーションズ社によって1995年に誕生したプログラミング言語の一種でその中でもオブジェクト指向スクリプト言語に区分されます。主な目的として動的な機能をWebページに生成するためのプログラミング言語として開発されました。JavaScriptフレームワークの代表的な種類としてjQuery、AngularJS、Vue.jsなどが挙げられます。
JavaScriptのメリット・デメリットなどの基礎知識についての記事はこちら>>
Pythonとはグイド・ヴァンロッサム氏によって1991年に開発された汎用的に使用されるプログラミング言語です。サーバサイド言語としてWebアプリケーションやデスクトップアプリケーションの開発に使われるだけでなく、組み込み開発、自動処理、統計・解析、機械学習など幅広い領域に対応出来るプログラミング言語として親しまれております。特徴として『コードがシンプルで覚えやすい』『少ない記述で多くの処理が可能』などが挙げられます。Pythonは人工知能(AI)やビッグデータなどトレンドの分野にて重宝されております。
Pythonの歴史、特徴などの基礎知識についての記事はこちら>>
Rubyとはまつもとゆきひろ氏によって1995年に開発されたオープンソースでオブジェクト指向のプログラミング言語です。日本人プログラマーのよって開発された言語として初めて国際電気標準会議(IEC)で国際規格に認証されました。2018年には米国において最も稼げる言語はRubyと言われるほど国内外問わず世界的にも注目を集めております。Rubyの特徴は記述量が少なく、自由度が高い、そして何より『書くことが楽しい』と多くのプログラマーの方が口を揃えております。RubyはWebアプリケーションの開発に最も向いており代表的な開発事例としてGunosy、食べログ、価格.comなどが挙げられます。
Rubyのメリット・デメリットなどの基礎知識についての記事はこちら>>
Seleniumを理解するために初心者でも分かる歴史、特徴などの基礎知識を簡単に解説させていただきました。Seleniumを一言で表すと『Webアプリケーションのブラウザ操作を自動化するためのテストフレームワーク』です。特徴として「柔軟性の高いテスト操作を実現」「様々な言語に対応している」「ブラウザ操作に特化しているので学習コストが低い」などが挙げられます。Seleniumについてこの記事に記載されている最低限の内容は理解をしておくようにしましょう。