初めまして。ソフトウェア開発部の川下といいます。

今回は Selenium WebDriver(Selenium 2.0)を利用したテストの自動化についてです。

Seleniumは2.0系でWebDriverを統合して、より柔軟なテストができるようになりました。

javaのユニットテストから実行する方法をここでは紹介します。


WebDriverの使い方をここでは3つに分けて紹介させてもらいます。

1.WebDriverを生成する

2.指定のURLへアクセスする

3.結果を処理する

です。


1. WebDriverを生成する。

WebDriverはブラウザ操作テスト用に切り出された共通インターフェースです。

以下の3種類の処理を行うためのメソッドを提供しています。

1.Control of the browser itself(ブラウザ事態の制御)

2.Selection of WebElements(WebElementsの選択 ※WebElementsに関しては後述)

3.Debugging aids (デバッグ)

実装事体は各ブラウザごとに異なっています。

エミュレートしたいブラウザごとに対応するDriverを選択します。

Firefox -> FireFoxDirever

Chrome -> ChromeDriver

InternetExplorer -> InternetExplorerDriver

といった感じです。

また、ブラウザの細かい挙動の違いを気にしないのであれば、

HtmlUnitDriver (最軽量/高速)を使うこともできます。

WebDriverの生成は以下のように行います。

proxy(proxy-addreses, proxy-port)のところは必要なら設定してください。


2. 指定のURLへアクセスする

cookieを利用する場合は、以下のようにセットできます。


3. 結果を処理する

WebDriverでアクセスすると、結果として、

DOMの要素(を操作するための WebElementクラスのインスタンス)

現在のURL

HTMLソース

タイトル

等を取得することができます。


JUnitから走らせてみる

次にJUnitから走らせてみましょう。

テスト用のデータを作成して登録 → 画面に表示されていることをアクセスして確認する

ようなテストを想定しています

JUnitから走らせるために今回は2つクラスを用意します。

サンプル実装なので、URLや未実装の部分は必要に応じて置き換えてください。

あとはEclipseのコンソールなどから、JUnitを実行してもらうと

自動的にブラウザが立ち上がり、試験が実施できます。

(※ 今回はhtmlソースに指定した文字列が含まれているか でチェックしています。)

とても便利なので、ぜひ一度、試してみてください。