Hudson Selenium PluginでHudsonクラスタをSelenium Gridに

Hudsonのクラスタを一瞬でSelenium Gridに変身させる「Hudson Selenium Plugin」を公開しました。このプラグインを使うと、クラスタ上のマシンに逐一Selenium Gridをインストールして回ることなく、Selenium Gridを利用することができます。先日リリースしたHudson Hadoop Pluginのように、既存のHudsonインフラを多用途に利用するためのプラグインです。


このプラグインをHudsonにインストールすると、HudsonマスターにSelenium Grid Hubがインストールされます。このグリッドに接続する為には、次のようにしてDefaultSeleniumインスタンスを記述します。この指定ではクラスタ上のどこかのマシンでFirefoxを起動する設定になります。

new DefaultSelenium("hudson.mydomain", 4444, "*firefox", 'http://amazon.com');

Selenium Gridは標準では適当なHudsonスレーブをランダムに選びますが、IESafariなど環境依存のブラウザを起動したり、稠密なテスト環境を確保するためには、どのスレーブ上に起動されるかコントロールできた方が便利です。このために、Hudson Selenium PluginではSelenium Gridの動作を拡張してあり、"ラベル&ラベル&...:ブラウザ"と指定することで、特定の条件を満たすスレーブを指定できるようになります。例えば、Windowsマシンに「windows」というラベルを振ってあれば、"windows:*iexplore"とすると、WindowsスレーブのどれかでIEが起動される、という具合になります。


近年、HadoopSeleniumなど、複数のサーバ上で動作する事が前提のツールが増えてきており、マルチコア化・クラウド絡みで、このトレンドは今後も続くと予想されます。ところが、こういったツールはセットアップと運用保守に手間がかかるという欠点があります。Hudsonで僕がやろうと思っている事の一つは、Hudsonのクラスタ上にこういったツールをインストールするのを簡単にすることです。Hudsonのクラスタはインストールがとても簡単ですし、プラグインのインストールも容易なので、この環境の上に他のツールをオーバーレイすることで、手間なく様々なツールを利用できるようになります。


この辺の話は、今年のJavaOneのセッションでもする予定なので、ぜひ見にきてください。