HttpUnit ヤバス

HttpUnit
http://httpunit.sourceforge.net/

Web アプリケーションをテストするためのライブラリ。JUnit と組み合わせて使うことが想定されているため実行時には Java が必要だが、テストされる側は Java でも PHP でもなんでもいい。
基本的に、ブラウザ上での操作をエミュレートし、ブラウザに返される結果について assert するという仕組み。BASIC 認証や HTTPS もサポートされている。
JavaScript の動作も (ある程度までだけど) サポートされているし、返された HTML から特定の要素を取り出すのも簡単。例えば

<a href="javascript:ShowProfile()"><img src="profile.gif" alg="プロファイルを見る"></a>

なんてリンクがある時は、

response.getLinkWithImageText("プロファイルを見る").click();

これで OK だ。
ただし、「こういう時はどうすればいいんだ」というのを、API ドキュメンテーションとにらめっこしないといけない場合がある。例を挙げると、「コンボボックスの項目を選ぶとページが遷移する」というパターン。上記の click() なんかだと遷移先の WebResponse が return されるんだけど、WebForm の setParameter には返り値がない。WebWindows の getCurrentPage() を使う方法で取れるみたいだけど、これがベストなのかはよくわからない。

[19:53 追記] あまりの便利さと出来のよさに感激してタイトルにヤバスって入れたんだけど、先を越されていた