サンプルから学ぶHttpUnitの使い方
2008/05/08 16:51Update
サンプルからWEBアプリケーションテストフレームワークHttpUnitの使い方を学びます。
HttpUnitの概要及びそのインストール方法などについて次の記事をご覧ください:
HttpUnit - WebブラウザなしでWEBアプリケーションをテストするフレームワーク
WEBアプリケーションテストフレームワークHttpUnitのインストール及びHttpUnit基本
本文は、サンプルからHttpUnitの使い方について学びたいと思います。
1、HttpUnitにおいてプロキシの設定方法
2、HttpUnitにおいてJavascriptを無効にする方法
3、Getメソッドでサーバへリクエストの発行方法
4、Postメソッドでサーバへリクエスト(サブミット)の発行方法
5、Form送信方法
6、リンククリック
7、テーブルデータ及びその他部品の処理
8、サーブレットのテスト方法
サンプル
解説はソースの中に詳しく書いてありますので、そちらをご覧ください。
HttpUnit - WebブラウザなしでWEBアプリケーションをテストするフレームワーク
WEBアプリケーションテストフレームワークHttpUnitのインストール及びHttpUnit基本
本文は、サンプルからHttpUnitの使い方について学びたいと思います。
1、HttpUnitにおいてプロキシの設定方法
2、HttpUnitにおいてJavascriptを無効にする方法
3、Getメソッドでサーバへリクエストの発行方法
4、Postメソッドでサーバへリクエスト(サブミット)の発行方法
5、Form送信方法
6、リンククリック
7、テーブルデータ及びその他部品の処理
8、サーブレットのテスト方法
サンプル
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import junit.framework.TestCase;
import com.meterware.httpunit.GetMethodWebRequest;
import com.meterware.httpunit.HttpUnitOptions;
import com.meterware.httpunit.PostMethodWebRequest;
import com.meterware.httpunit.SubmitButton;
import com.meterware.httpunit.WebApplet;
import com.meterware.httpunit.WebConversation;
import com.meterware.httpunit.WebForm;
import com.meterware.httpunit.WebImage;
import com.meterware.httpunit.WebLink;
import com.meterware.httpunit.WebRequest;
import com.meterware.httpunit.WebResponse;
import com.meterware.httpunit.WebTable;
import com.meterware.servletunit.InvocationContext;
import com.meterware.servletunit.ServletRunner;
import com.meterware.servletunit.ServletUnitClient;
public class HttpUnitTest extends TestCase {
private static final String URL = "http://www.syboos.jp/";
WebConversation wc = new WebConversation();
@Override
protected void setUp() throws Exception {
super.setUp();
//wc.setProxyServer("proxy.server.name", 8080);
//Javascriptを無効にする
//HttpUnitOptions.setScriptingEnabled(false);
//JavaScriptエラーを無視する
HttpUnitOptions.setExceptionsThrownOnScriptError(false);
}
public void testFirst() throws Exception {
WebResponse wr = wc.getResponse(URL);
System.out.println(wr.getText());
}
//Getメソッドでサーバへリクエスト
public void testGetMethodWebRequest() throws Exception {
//リクエスト
WebRequest req = new GetMethodWebRequest(URL);
//パラメータ設定
req.setParameter("id", "hello");
//レスポンス
WebResponse res = wc.getResponse(req);
assertEquals(200, res.getResponseCode());
}
//Postメソッドでサーバへリクエスト
public void testPostMethodWebRequest() throws Exception {
//リクエスト
WebRequest req = new PostMethodWebRequest(URL);
//パラメータ設定
req.setParameter("id", "hello");
//レスポンス
WebResponse res = wc.getResponse(req);
assertEquals(200, res.getResponseCode());
}
//Form送信(ボタン押下)
public void testSubmitForm() throws Exception {
//リクエスト(WEBページの取得)
WebRequest req = new GetMethodWebRequest(URL);
//レスポンス
WebResponse res = wc.getResponse(req);
//フォーム取得
WebForm form = res.getFormWithName("formName");
//フォーム設定(パラメータ)
form.setCheckbox("rememberMe", true);
form.setParameter("username", "ユニット太郎");
//ボタンを押下
SubmitButton btnLogin = form.getSubmitButton("btnLogin");
res = form.submit(btnLogin);
System.out.println(res.getText());
}
//リンククリック
public void testClickLink() throws Exception {
//リクエスト(WEBページの取得)
WebRequest req = new GetMethodWebRequest(URL);
//レスポンス
WebResponse res = wc.getResponse(req);
//リンクの取得
WebLink link = res.getLinkWith("ホーム");
System.out.println(link.getURLString());
//取得したリックをクリック
res = link.click();
System.out.println(res.getURL().toString());
}
//テーブル処理
public void testWebTable() throws Exception {
//リクエスト(WEBページの取得)
WebRequest req = new GetMethodWebRequest(URL);
//レスポンス
WebResponse res = wc.getResponse(req);
WebTable webTable = res.getTables()[0];
String text = webTable.getTableCell(0, 0).getText();
System.out.println(text);
}
//その他部品
public void testWebElement() throws Exception {
//リクエスト(WEBページの取得)
WebRequest req = new GetMethodWebRequest(URL);
//レスポンス
WebResponse res = wc.getResponse(req);
WebImage webImage = res.getImages()[0];
System.out.println(webImage.getSource());
WebApplet webApplet= res.getApplets()[0];
if (webApplet != null) {
System.out.println(webApplet.getClassName());
}
//...
}
//サーブレット
public void testServletRunner() throws Exception {
//仮のサーブレット・コンテナー環境をエミュレート
ServletRunner sr = new ServletRunner();
//実行するサーブレットを仮サーブレット・コンテナーに登録
sr.registerServlet( "loginServlet", LoginServlet.class.getName() );
//サーブレットをアクセスするためのクライアント
ServletUnitClient sc = sr.newClient();
//サーブレットをアクセス
WebRequest req = new GetMethodWebRequest( "http://localhost:8080/loginServlet" );
//サーバレットのコンテキストは次のようなコードにより取得できます
// InvocationContext ic = sc.newInvocation(req);
// LoginServlet servlet = (LoginServlet)ic.getServlet();
// HttpServletRequest httpServletRequest = ic.getRequest();
// HttpServletResponse httpServletResponse = ic.getResponse();
WebResponse res = sc.getResponse(req);
System.out.println(res.getText());
}
}
解説はソースの中に詳しく書いてありますので、そちらをご覧ください。
Sponsored Link
- Relative Articles
- SourceForge.netコミュニティ 2009年 受賞作発表 - (2009/07/31 13:42)
- XAMPP チュートリアル - 動画で解説 - (2008/11/23 23:48)
- PHP開発環境を10分で構築するチュートリアル - (2008/11/23 23:28)
- FireBugを使いこなす - その2 – FireBugを使ってみる - (2008/11/22 12:21)
- FireBugを使いこなす - その1 - FireBugのインストール - (2008/11/22 12:20)
- 動画で学ぶExt JSデザイナーの使い方 - (2008/11/12 23:23)
- Google Chromeを使ってみる – 図解Google Chrome - (2008/09/04 16:21)
- WEBアプリケーションテストフレームワークHttpUnitのインストール及びHttpUnit基本 - (2008/05/08 14:56)
- HttpUnitでJavascriptを無効するには - (2008/05/08 14:27)
- DWR入門 - Hello World DWR - (2008/04/29 23:16)
- DWRを利用してAjaxで特定な画面のみタイムアウトをさせない - (2008/04/23 21:41)
- DWR+JSONでクライアントとサーバ側間でJSON形式のデータ変換処理 - (2008/03/28 23:50)
- JSON入門 - JavaScriptでJSONデータを評価する - (2008/03/28 00:07)
- JSON入門 - JSONの基本的な形式例 - (2008/03/27 23:49)
- DWR入門 - サンプルから学ぶJSFとの統合 - (2008/03/18 23:48)