Biz∫のWEBアプリケーションのシナリオテストを自動化したい(2)
先日のエントリ[id:sikakura:20100824]で、Selenium-IDEについてはなんとなく概要がつかめた感がありました。では、同じことをGUIからではなくバッチで実行するにはどうしたらよいか。そこででてくるのがSelenium-RCという訳です。まあそれだけではなく、IEやSafariでテストしたい場合もRCの出番ですし、API経由でテストしたい場合もそうです。
前回と同様のダウンロードサイト(http://seleniumhq.org/download/)からSelenium-RCを落としてきます。
解凍すると以下のような感じです。
この中で、selenium-server-1.0.3というフォルダにselenium-server.jarというJarライブラリがあり、これだけあれば、コマンドラインから動作させることが可能らしいです。
さて、試してみました。
- Cドライブ直下にhomeというフォルダを用意し、上のselenium-server-1.0.3をコピーしました。
- 前日のエントリで作成したテストケースをitemsearch.htmlという名前で保存し、C:\home\selenium-server-1.0.3に置きました。
- 次に、テストスイートファイルの作成です。簡単なHTMLファイルで以下のようなものです。これをtestsuite.htmlという名前で保存し、C:\home\selenium-server-1.0.3に置きました。
<table id="suiteTable" border="1" class="selenium"> <tbody> <tr><td><b>My Test Suite</b></td></tr> <tr><td><a href="itemsearch.html">test1</a></td></tr> </tbody></table>
コマンドプロンプトの実行イメージは以下のような感じです。
C:\home\selenium-server-1.0.3>java -jar selenium-server.jar -htmlSuite "*firefox" (本当は改行しません)
http://XX.XX.XX.XX:YYYY/ C:\home\selenium-server-1.0.3\testsuite.html C:\home\selenium-server-1.0.3\result.html -singleWindow
コマンドライン引数で指定したresult.htmlに結果が格納されています。
コマンドライン引数で、-singleWindowを指定しています。これを指定しないと2つブラウザが起動し、片方がテストの進捗を表示し、片方が実際のWebテストの様子が表示されますが、
私が作成したシナリオでは、一部エラーとなってしまったために、-singleWindowを指定しました。画面制御(フォーカス?)の関係でうまく動作しないこともあるようです。
ともあれ、バッチ実行は出来そうです。