HtmlUnit

HTMLのユニットテストをするためのライブラリー・オープンソースのApache 2.0ライセンスで公開されている。
(似たテストツールとしてHttpUnitがあるが、こちらはHttpプロトコルのテストを重視した作りになっている)

HtmlUnitはCanoo WebTestの内部でも使われている。実際のブラウザーと同じようにJavaScriptの挙動までテストできるのが特徴
(時々動かないScriptもありますが私もGWTのテストに使っています)
GWTのユニットテストにも採用されているぐらい優秀です。

また、GoogleのAJAXなページをクローラブルにする時にスナップショットを取るツールとしても紹介されています。


 単純なテストならCanoo WebTest使う方が楽だとは思いますが、文字数の制限をチェックしたり、する場合HtmlUnit直接の方が便利でしょう。
 また、工夫すれば、HTMLやXMLをダウンロードして処理するツールのエンジンとしても大変使えます。
(内部ではNekoHtmlやApache httpclientを使っていますのでHtmlの解析は優秀です。)

使用例

HTMLのユニットテスト

Html UnitTest

import java.net.URL;

import junit.framework.TestCase;

import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlPage;

public class GoogleTest extends TestCase{

public void testSimple1() throws Exception {
   WebClient webClient = new WebClient(BrowserVersion.FIREFOX_3);
   HtmlPage page = (HtmlPage)webClient.getPage(new URL("http://www.google.com"));
   
   assertEquals("Google",page.getTitleText());
   
}
}

HTMLをテキストに変換する

GoogleのAJAXなページをクローラブルにする時 も こういう風になります。

 

HTMLをテキストに変換コード

public void testSimple2() throws Exception {
   WebClient webClient = new WebClient(BrowserVersion.FIREFOX_3);
   HtmlPage page = (HtmlPage)webClient.getPage(new URL("http://www.google.com"));
   
   String text=page.asText();
   System.out.println(text);
}
 

google.comをテキストにダンプした例

Google
ウェブ 画像 動画 地図 ニュース 書籍 Gmail その他 ▼
翻訳 ブログ
YouTube カレンダー 写真 ドキュメント リーダー サイト グループ
サービス一覧 »
iGoogle | 検索設定 | ログイン
 
Google 検索I'm Feeling Lucky  検索オプション
  言語ツール
ウェブ全体から検索 lang_ja 日本語のページを検索
YouTube
ニュース
地図
画像検索
乗換案内
メール
写真管理
ツールバー
ブラウザ
モバイル
サービス一覧 »

広告掲載 - ビジネス ソリューション - Google について - Google.com in English
©2010 - プライバシー


XMLパーサとして使う



Google App Engine上で使う - セキュリティー上の制約で困難なようです


Comments