Selenium RCで自動テストを実行するには
作成したテストスィートやテストケースをSelenium IDEで読み込めば、作成したテストを実行できます。しかし、Selenium IDEは、Firefoxのプラグインなので、この方法ではFirefox上でしかテストできません。そこで、Firefox以外のWebブラウザでテストするには、Selenium RCを利用します。
またSelenium RCを利用すると、人手を介さずにテストを実行し、テストの実行結果をファイルに出力できるため、継続的インテグレーション(CI)でも利用できます。
それでは、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をインストールする必要があります。
- Microsoft Visual C++ 2005 SP1 再頒布可能パッケージのインストールMicrosoft Visual C++ 2005 SP1 再頒布可能パッケージのサイトからダウンロードしてインストール
- 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の使い方をマスターしてみてください。
- exe/dmgしか知らない人のためのインストール/パッケージ管理/ビルドの基礎知識
- これでGitも怖くない! GUIでのバージョン管理が無料でできるSourceTreeの7つの特徴とは
- DevOps時代の開発者のためのOSSクラウド運用管理ツール5選まとめ
- GitHubはリアルRPG? そして、ソーシャルコーディングへ
- ついにメジャーバージョンUP! Eclipse 4.2の新機能7選
- いまアツいアジャイルプロジェクト管理ツール9選+Pivotal Tracker入門
- Git管理の神ツール「Gitolite」なら、ここまでできる!
- Java開発者が知らないと損するPaaSクラウド8選
- Eclipse 3.7 Indigo公開、e4、Orion、そしてクラウドへ
- AWSの自由自在なPaaS「Elastic Beanstalk」とは
- Ant使いでもMavenのライブラリ管理ができるIvyとは
- 「Hudson」改め「Jenkins」で始めるCI(継続的インテグレーション)入門
- Bazaarでござ〜る。猿でもできる分散バージョン管理“超”入門
- Review Boardならコードレビューを効率良くできる!
- Team Foundation ServerでJava開発は大丈夫か?
- コード探知機「Sonar」でプロジェクトの深海を探れ!
- 単体テストを“神速”化するQuick JUnitとMockito
- Java EE 6/Tomcat 7/Gitに対応したEclipse 3.6
- AzureのストレージをJavaで扱えるWindowsAzure4j
- 究極の問題解析ツール、逆コンパイラJD-Eclipseとは
- AWS ToolkitでTomcatクラスタをAmazon EC2上に楽々構築
- DB設計の神ツール「ERMaster」なら、ここまでできる
- Webのバグを燃やしまくるFirebugと、そのアドオン7選
- Googlerも使っているIntelliJ IDEAのOSS版を試す
- JUnit/FindBugs/PMDなどを総観できるQALab/Limy
- ブラウザを選ばずWebテストを自動化するSelenium
- Eclipse 3.5 Galileoの「実に面白い」新機能とは
- App Engine/AptanaなどJavaクラウド4つを徹底比較
- Aptanaなら開発環境とクラウドの連携が超お手軽!
- 分散バージョン管理Git/Mercurial/Bazaar徹底比較
- SubversionとTracでファイル管理の“迷宮”から脱出
- Trac Lightningで始めるチケット式開発「電撃」入門
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- JUnitとEclipseを使って学ぶ、“テスト”の常識
Webアプリの常識をJSPとStrutsで身につける(10) - 次世代テストフレームワークでテストを変える
- これはすごい!? コード品質のカイゼン化プラグイン2種
CoolなEclipseプラグイン(24) - Eclipseで使えるテストツールカタログ
- SeasarV2によるテスト機能
Seasar Projectの全貌を探る(4) - ソフトウェアの品質向上を支援するプラグイン
CoolなEclipseプラグイン(2) - Eclipseで3倍プログラミング
おすすめエンジニアライフ - 単体テストの品質をチェックするには
明日からできるプロジェクト管理(4) - Webサイト構築に必要なさまざまなテスト手法
[連載]Java初心者のためのWebシステム入門(9)