« スワローズ選手のブルペンの会話を聞いた | トップページ | 吉野梅郷から二つ塚峠 »

JUnit用テストツールMeemaを公開しました。

WebシステムもAjaxの時代になるとJUnitで画面出力結果を検査するのが困難になった。なにか良いツールが無いかと探してみたところslenium rcを発見。これはWebシステムの外部からテストを動かす形なので対象のWebシステムがAjaxでもJava以外でも関係なくテストできる。
Webを動かすコードはselenium-ideというFirefoxのプラグインでそこそこ簡単に出来るのだが、アサーションの部分はどうなんだろうか?selenium.getHtmlSource()で、HTMLを根こそぎ取れるようだが、
assertEquals("xxxx...",selenium.getHtmlSource());
とやると、画面上に毎回変わるような部分があると駄目だし、画面の一部が変わっただけで一々予測値を全部見直す必要もある。この辺は苦労している人も多いと思いますが...
そこで以前から会社で使用していた自作のライブラリーをselenium対応にしてみました。
出来上がったら、あまりに便利なので、思い切ってオープンソースとして公開しました。

   Meema - assert your beans

これを使用するとseleniumオブジェクトを走査して勝手にassertEquals文を作り出してくれます。こんな感じのソースを生成します。

  assertEquals("こんにちは世界", (String) oTreeMap.get("//input[1]@name=i1"));
  assertEquals("GO", (String) oTreeMap.get("//input[2]"));
  assertEquals("on", (String) oTreeMap.get("//input[3]@name=radio"));
  assertEquals("off", (String) oTreeMap.get("//input[4]@name=radio"));
  assertEquals("off", (String) oTreeMap.get("//input[5]@name=radio"));
  assertEquals("off", (String) oTreeMap.get("//input[6]@name=check1"));
  assertEquals("on", (String) oTreeMap.get("//input[7]@name=check2"));
  assertEquals("off", (String) oTreeMap.get("//input[8]@name=check3"));
  assertEquals("3", (String) oTreeMap.get("//select[1]@id=s1"));
  assertEquals("へっだ1", (String) oTreeMap.get("//table[1].0.0"));
  assertEquals("へっだ2", (String) oTreeMap.get("//table[1].0.1"));
  assertEquals("へっだ3", (String) oTreeMap.get("//table[1].0.2"));
  assertEquals("へっだ4", (String) oTreeMap.get("//table[1].0.3"));
     :

これって、テキストボックス、ラジオボタン、チェックボックス、セレクト、テーブルのセルの内容等をアサートしてるわけです。

Webシステムの再帰テスト環境を簡単に作れて便利だと思いますが、いかがでしょうか。Meemaを簡単に試せるEclipseプロジェクトもUpしました。

ところで、seleniumの場合、夜間バッチでテストをスケジュールするなんて出来ないのでは無いかと思っていたら、こういうツールも発見
Selenium Auto Exec Server(AES)
オープンソースの世界は良い物がどんどん開発されて、昔を考えるといい時代になったと思う。私も、会社も今後積極的に関わっていく方針です、よろしく。

|

« スワローズ選手のブルペンの会話を聞いた | トップページ | 吉野梅郷から二つ塚峠 »

IT関連」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1482710/39211770

この記事へのトラックバック一覧です: JUnit用テストツールMeemaを公開しました。:

« スワローズ選手のブルペンの会話を聞いた | トップページ | 吉野梅郷から二つ塚峠 »