Seleniumがすごい

Webテスティングフレームワーク"Selenium"がすごい。JavaScriptでブラウザを操作する形式なので、実際のアプリケーション操作手順を自動化できる。
導入も簡単、テストケースの記法もシンプル。htmlの<table>タグででガンガン書ける。

http://www.openqa.org/selenium/


たとえばテキストフォームhogeに"ブルスコ"と入力したい場合、

<tr>
  <td>type</td>
  <td>hoge</td>
  <td>ブルスコ</td>
</tr>

これだけ。んでボタン"nadenade"を押してサブミットするなら

<tr>
  <td>clickAndWait</td>
  <td>nadenade</td>
  <td></td>
</tr>

で、遷移先ページのフォーム"break"に結果"モルスァ"が出るかどうかを検証するのは、

<tr>
  <td>verifyValue</td>
  <td>break</td>
  <td>モルスァ</td>
</tr>


これだけ。シンプル。
XMLじゃなくてHTMLなので、新規にタグを覚える必要なしってのは大きい。パラメータの書き方も<td>タグでくくるだけだし。Javaで設定ファイル書くよりはるかにシンプル。


FireFoxユーザなら、Selenium Recorderプラグインを入れて軽くWeb巡回してみると、もっとわかりやすい。1操作ずつガンガンイベントを自動生成してくれるので、イベントの書き方がすぐにわかる。



○今のところのネック
・ドキュメントが英語のしかない。まぁもとの操作が単純なのでそこまで困らないけど。

・識別子となる属性がないとverifyが難しい
たとえば出力結果画面の<table>タグに id エレメントとか name エレメントを記述しておかないと、「テーブルの3行4列目にテキスト"evansman"が出力されているか検証したい」という操作ができない。
今いる案件でもそこがネックになりそうなオカン。

・ぶっちゃけテスト記述が冗長
シンプルでわかりやすいけど、タグ記述はやっぱり冗長。スクリプト言語プラグインで、もっと簡単にテストケースを記述できるらしいけど。RubyならRubiniumというのが出てるみたいなので、面白そうだからいじってみよう。



とりあえずマーティンファウラー先生がいる方角に向かって拝んでおきます。