Chrome、Firefox、Internet Explorer、Opera、Android、iOSといったブラウザに対応し、Java、C#、Python、Rubyなどが使えるWebテスト自動化ツールの3つの特徴と環境、実装方法を簡単に紹介する【2017年の情報に合うように更新】。
Webアプリケーションのテスト自動化をサポートするツール「Selenium WebDriver」は2011年にリリースされました。
Selenium WebDriverは広範なWebブラウザのサポートを行っていた「Selenium1(Selenium RC)」と高速軽量で汎用的なWebブラウザエミュレータの機能を持つ「WebDriver」を統合したものです。
本稿では、Selenium WebDriverを簡単に試してみたい方や自動テストの実施を検討している方のために、前後編に分けて紹介します。Selenium WebDriverの特徴を整理するとともに、Selenium WebDriverを利用したWebアプリケーションに対する簡単な自動テストの実装、実施手法について解説します。
Selenium WebDriverはSelenium 1.xを引き継いだものです。本稿では、Webブラウザをコントロールするライブラリ群、または、その仕組みを指します。
Selenium WebDriverには、「FirefoxDriver」「ChromeDriver」など、各Webブラウザのコントロール用のAPIが、それぞれ実装されており、その各実装を「WebDriver」とします。
Selenium WebDriverには、大きく下記3点の特徴があります。
テストプログラムの言語サポートが複数あり、それぞれの言語で複数Webブラウザをサポートしていいます。図1のテスト実行時イメージを参照してください。
Selenium WebDriverを用いてテストを実行する際は、テストプログラムからWebDriver(図1ではdriver)のAPIを使用することで、Webブラウザをコントロールできます。
Selenium WebDriverではテストプログラムの言語としてJava、C#、Python、Ruby、JavaScript(Node.js)の5言語を公式にサポートしています。
なお他にも、FacebookなどのサードパーティーがPHPなど別の言語のサポートを行っています。
また、テスト対象のWebブラウザに合わせて、使用するWebDriver(図1ではdriver)を変更してテストプログラムを実行します。現在サポートしているWebブラウザはChrome、Firefox、Internet Explorer、Microsoft Edge、Opera、Android標準Webブラウザ、iPhone標準Webブラウザ「Safari」です。
図1では、サーバを中継して、Webブラウザをコントロールするような矢印も記述しています。これは下記の場合にが該当します。
第3の特徴である設計の分かりやすさ、実装しやすさに関しては図2に示してある各driverと親クラスとの継承関係のイメージを参照してください。
継承関係を見て分かるようにWebDriverを実装し、Webブラウザごとに特別にAPIが異なる場合を除いて、なるべく共通のAPIを使用できるように設計されています。
もちろん、Webブラウザ特有の処理を実装しなければならない箇所もありますが、全体から見るとそれほど多くありません。これは複数のWebブラウザに対応する必要があるプロジェクトにとって非常に有意義であるといえるでしょう。
ここまでは、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.