iPhone/Android含むブラウザ自動テストの最終兵器Selenium WebDriverとは:Selenium WebDriverでWebアプリのテストが変わる(前編)(1/2 ページ)
Chrome、Firefox、Internet Explorer、Opera、Android、iOSといったブラウザに対応し、Java、C#、Python、Rubyなどが使えるWebテスト自動化ツールの3つの特徴と環境、実装方法を簡単に紹介する【2017年の情報に合うように更新】。
Webのテストに超絶便利な「Selenium WebDriver」とは
Webアプリケーションのテスト自動化をサポートするツール「Selenium WebDriver」は2011年にリリースされました。
Selenium WebDriverは広範なWebブラウザのサポートを行っていた「Selenium1(Selenium RC)」と高速軽量で汎用的なWebブラウザエミュレータの機能を持つ「WebDriver」を統合したものです。
本稿では、Selenium WebDriverを簡単に試してみたい方や自動テストの実施を検討している方のために、前後編に分けて紹介します。Selenium WebDriverの特徴を整理するとともに、Selenium WebDriverを利用したWebアプリケーションに対する簡単な自動テストの実装、実施手法について解説します。
本稿で使用する用語の説明
- Selenium WebDriver
Selenium WebDriverはSelenium 1.xを引き継いだものです。本稿では、Webブラウザをコントロールするライブラリ群、または、その仕組みを指します。
- WebDriver
Selenium WebDriverには、「FirefoxDriver」「ChromeDriver」など、各Webブラウザのコントロール用のAPIが、それぞれ実装されており、その各実装を「WebDriver」とします。
3つの大きな特徴
Selenium WebDriverには、大きく下記3点の特徴があります。
テストプログラムの言語サポートが複数あり、それぞれの言語で複数Webブラウザをサポートしていいます。図1のテスト実行時イメージを参照してください。
【1】Java、C#、Python、Ruby、JavaScript(Node.js)などの複数言語に対応
Selenium WebDriverを用いてテストを実行する際は、テストプログラムからWebDriver(図1ではdriver)のAPIを使用することで、Webブラウザをコントロールできます。
Selenium WebDriverではテストプログラムの言語としてJava、C#、Python、Ruby、JavaScript(Node.js)の5言語を公式にサポートしています。
なお他にも、FacebookなどのサードパーティーがPHPなど別の言語のサポートを行っています。
【2】iPhone/Android含む複数Webブラウザ対応
また、テスト対象のWebブラウザに合わせて、使用するWebDriver(図1ではdriver)を変更してテストプログラムを実行します。現在サポートしているWebブラウザはChrome、Firefox、Internet Explorer、Microsoft Edge、Opera、Android標準Webブラウザ、iPhone標準Webブラウザ「Safari」です。
図1では、サーバを中継して、Webブラウザをコントロールするような矢印も記述しています。これは下記の場合にが該当します。
- コントロール対象のWebブラウザがテストプログラムと同一PCではない場合
- 「Selenium-Grid」と呼ばれるテストケースの並列分散実行のツールを使用する場合
- テストプログラムをJava以外のプログラミング言語で実装し、かつHtmlUnit Driver(GUIを使用しないで、Webブラウザのテストを実行するWebDriver)を用いてテストを実行する場合
【3】設計・実装の明確さ
第3の特徴である設計の分かりやすさ、実装しやすさに関しては図2に示してある各driverと親クラスとの継承関係のイメージを参照してください。
継承関係を見て分かるようにWebDriverを実装し、Webブラウザごとに特別にAPIが異なる場合を除いて、なるべく共通のAPIを使用できるように設計されています。
もちろん、Webブラウザ特有の処理を実装しなければならない箇所もありますが、全体から見るとそれほど多くありません。これは複数のWebブラウザに対応する必要があるプロジェクトにとって非常に有意義であるといえるでしょう。
Selenium WebDriverを使うための準備
ここまでは、Selenium WebDriverの特徴について整理しました。ここからは、実装方法を紹介していきます。
まず、サンプルを用いた実装の紹介の前に準備と前提環境について説明します。
Selenium WebDriverのダウンロード
Selenium WebDriverはDownloadページの「Selenium Client & WebDriver Language Bindings」の項にあるテストプログラムを実装する対象言語のDownloadリンクからダウンロードします。
次に、テストするブラウザに合わせたWebDriverをダウンロードします。「Third Party Drivers, Bindings, and Plugins」の項から、対象ブラウザ用のWebDriverを取得してください。WebDriverの詳しい設定方法などについては同ページ内からリンクされているwikiなどを参照ください。
なお、Internet Explorer用のWebDriverについては「The Internet Explorer Driver Server」の項にあるので、こちらから取得してください。32bit用と64bit用のWebDriverがありますが、64bit版はかなり低速なため、基本的には32bit用のWebDriverを利用した方がよいでしょう。
前提環境の概要
以降、サンプルの解説においては下記の環境(表1)で行っている前提とします。
カテゴリ | ソフトウェア | バージョン | |
---|---|---|---|
OS | Windows | 7 Professional 64bit | |
Java | Java SE | 8 Update 91 | |
Web/アプリサーバ | Tomcat | 8.5.14 | |
IDE | Eclipse | 4.6.2 | |
Webブラウザ | Firefox | 53.0 | |
Chrome | 57.0.2987.133 | ||
Internet Explorer(64bit版) | 11.0.6900.18638 | ||
Selenium WebDriver | (Java用) | 3.3.1 |
次ページでは、Selenium WebDriverのテストプログラムの記述方法について簡単に説明します。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Selenium VBAを使って自動でブラウザーを操作してスクショをExcelに張り付けてみた
システム開発におけるソフトウェアテスト(結合テスト〜システムテスト)において重要視されるエビデンス(作業記録)。前後編の2回にわたって、エビデンスとしてスクリーンショットをキャプチャし、テスト仕様書や納品書に張り付けていく作業を自動化するためのVBA/マクロのテクニックを紹介する。前編はSelenium VBAのインストール方法と使い方、スクリーンショットを自動でExcelに張り付ける方法について。 - SeleniumのUIテスト自動化をiOS/AndroidにもたらすAppiumの基礎知識とインストール方法、基本的な使い方
本連載では、AndroidおよびiOSアプリ開発における、システムテストを自動化するツールを紹介していきます。今回は、オープンソースのモバイルテスト自動化ツール「Appium」の特徴やインストール方法、基本的な使い方を説明します。 - JavaScriptテストの基礎知識と使えるフレームワーク6選
しっかりとJavaScriptの“テスト”を行うために、最近のJavaScript事情やテストを取り巻く環境、今注目のテストフレームワークを6つ紹介する