Seleniumが便利で死にそう

 Selenium便利ですねぇ。
 回帰テストなんて拷問を勝手にやってくれるなんてステキすぎる。
 先日、デグレードを発生させてしまいまして(涙。その結果、ユーザーから「きちんと回帰テストをやるように!」と熱い要望が届きまして。偉い人経由で。えぇ、えぇ。
 どうしてもテストをやらなきゃダメだってんで、テストの自動化アプリのSeleniumを導入。使ってみたらとても便利でした。

導入までに苦労したこと

 全然動かないんだもの、最初*1
 実行すれば「書き込めません」って何度も言われる。ログもまともに出ない。
 肝心要のSnapIE*2が動かない。テスト結果を画面イメージで残さなければいけないのに。単体なら動くのにSeleniumからはうまく動かない。


 んで、色々試してなんとか動くようにしました。

  • SeleniumRCの導入は諦めた。
  • SnapIEの導入も諦めた。スクリーンショットを自動で取ること自体諦めた。
  • 実行したらすぐwindowMaximizeを呼ぶようにテスト組んで、
  • スクリーンショットを撮るときは、都度assertEvalでconfirm()を呼んでテストを中断
  • alert()も無効になっちゃうから、スクリーンショットが欲しいときはgetEvalで呼んでごまかす
  • showModalDialog()で呼び出した画面が変になるので、そこだけは手動になるように Selenium のコードを書きかえる

 全自動というより半自動で頑張ってます。
 それでもずいぶんテストは楽になりましたよ!

 勝手にやってくれるから、実行中に人間様はインターネット見放題(ry

参考になったサイト

 Seleniumに関しては公式とかここを見たらいいと思います。
 導入できたらリファレンスのWikiサイトをみながらテストを書き続けるのみ!


*1:ちなみにIE6と7のどっちかでテストが必要。Firefoxとかならまともに動くのかな・・・。

*2:WebページをPNGで保存してくれるプログラム。