連載
» 2009年08月19日 00時00分 公開

ユカイ、ツーカイ、カイハツ環境!(7):ブラウザを選ばずWebテストを自動化するSelenium (3/3)

[岡本隆史,@IT]
前のページへ 1|2|3       

Selenium RCで自動テストを実行するには

 作成したテストスィートやテストケースをSelenium IDEで読み込めば、作成したテストを実行できます。しかし、Selenium IDEは、Firefoxのプラグインなので、この方法ではFirefox上でしかテストできません。そこで、Firefox以外のWebブラウザでテストするには、Selenium RCを利用します。

 またSelenium RCを利用すると、人手を介さずにテストを実行し、テストの実行結果をファイルに出力できるため、継続的インテグレーション(CI)でも利用できます。

図5 Selenium RCの実行結果 図5 Selenium RCの実行結果(画像をクリックすると拡大します)

 それでは、Selenium RCを利用して、Selenium IDEで作成したテストを実行してみましょう。

Selenium RCのインストール

 Selenium RCはJavaアプリケーションとして動作するので、あらかじめJRE(Javaの実行環境。バージョンは5以降)をインストールしておく必要があります。@IT記事「バージョン別セットアップマニュアル一覧」などを参考にしてください。

 Selenium RCは、Seleniumのダウンロードサイトから取得し、適当なディレクトリに解凍すればインストールは完了です。

テストの実行テストの実行

 コマンドプロンプトを開いて、Selenium RCを解凍したディレクトリの次のディレクトリへ移動します(x.x.xはSelenium RCのバージョン)。

selenium-remote-control-x.x.x/selenium-server-x.x.x

 下記のコマンドを実行し、Selenium RCを実行します。

> java -jar seleium-server.jar -htmlSuite <Webブラウザ名> <WebアプリケーションのURL> <テストスィートのURL> <テスト結果を出力するファイル>

 例えば、次のような条件テストを行いたい場合、

  • Webブラウザ→IE
  • WebアプリケーションのURL→「http://mywebapp/」
  • テストスィートのパス→「C:\Selenium\testcases\TestSuite.html」
  • テスト結果を出力するファイル→「C:\Selenium\results\result1.txt」

 実行コマンドと実行時のコンソールの出力は、次のようになります。

…【省略】…
> java -jar selenium-server.jar -htmlSuite *iexploreproxy http://mywebapp/ C:\Selenium\testcases\TestSuite.html
03:07:26.703 INFO - Java: Sun Microsystems Inc. 11.3-b02
03:07:26.703 INFO - OS: Windows XP 5.1 x86
03:07:26.718 INFO - v1.0.1 [2696], with Core v@VERSION@ [@REVISION@]
03:07:26.796 INFO - Version Jetty/5.1.x
03:07:26.796 INFO - Started HttpContext[/selenium-server/driver,/selenium-server/driver]
03:07:26.796 INFO - Started HttpContext[/selenium-server,/selenium-server]
03:07:26.796 INFO - Started HttpContext[/,/]
03:07:26.812 INFO - Started SocketListener on 0.0.0.0:4444
03:07:26.812 INFO - Started org.mortbay.jetty.Server@1ffb8dc
03:07:26.953 INFO - Preparing Firefox profile...
03:07:29.140 INFO - Launching Firefox...
03:07:30.203 INFO - Checking Resource aliases
03:07:34.546 INFO - Checking Resource aliases
03:07:34.546 INFO - Received posted results
03:07:35.171 INFO - Killing Firefox
…【省略】…

 「-htmlSuite」オプションでは、テストスィートの絶対パスを指定します。正しく動作しない場合は、テストケースを指定していないかどうか、相対パスを指定していないかどうか確認しましょう。また、Webブラウザのオプションには、下記のものが指定できます。

  • *firefox
  • *mock
  • *firefoxproxy
  • *pifirefox
  • *chrome
  • *iexploreproxy
  • *iexplore
  • *firefox3
  • *safariproxy
  • *googlechrome
  • *konqueror
  • *firefox2
  • *safari
  • *piiexplore
  • *firefoxchrome
  • *opera
  • *iehta
  • *custom

コラム 「IEで利用する場合の注意」

IEでキャプチャを取る場合は、*iexploreではなく、*iexploreproxyを利用する必要があることに注意してください。さらに、IEでキャプチャを取るためには「snapsIE」というツールが必要になります。snapsIEの利用には、下記の手順でsnapsIEをインストールする必要があります。

  1. Microsoft Visual C++ 2005 SP1 再頒布可能パッケージのインストールMicrosoft Visual C++ 2005 SP1 再頒布可能パッケージのサイトからダウンロードしてインストール
  2. snapsIEのインストールsnapsIEのサイトからsnapsIEをダウンロード、解凍してSnapsie.dllを「C:\WINDOWS」フォルダにインストール。「regsvr32 Snapsie.dll」コマンドを実行しDLLを登録C:\WINDOWS」フォルダにインストール。「regsvr32 Snapsie.dll」コマンドを実行しDLLを登録

Selenium IDEで作成したテストケースはそのままではIEでは動作しないことがあるので、注意が必要です。下記のサイトなどを参考にしてください。


Seleniumは、さらに高度な使い方もできる

 Selenium IDEやSelenium RCの登場により、SeleniumによるWebアプリケーションのテストはより効率化されました。

 今回は、HTMLのテストケースによるテストの実行を中心に紹介しましたが、Selenium RCを利用すれば、JavaやPythonなどの言語でプログラムとしてテストケースを作成することもできますし、プログラムの合い間にデータベースの初期化や検証なども挟むことができるようになります。また、Selenium Gridを使うと、一度テストを実行すれば、複数の端末で別々のWebブラウザを起動して同時にテストできます

 Seleniumの基礎をマスターしたら、次はさらに高度なSeleniumの使い方をマスターしてみてください。


「ユカイ、ツーカイ、カイハツ環境!」バックナンバー
前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。