連載
» 2006年10月21日 00時00分 公開

Eclipseで使えるテストツールカタログ(5):Eclipseで使える機能テストツール (2/3)

[小堀一雄, 岡本隆史,株式会社NTTデータ]

HTTPセッションを記録し再生できる「Solex」

ツール名:Solex

URL:http://solex.sourceforge.net/

ライセンス:ASL


特徴

 Solexは、プロキシサーバとして振る舞うことでHTTPセッションを記録し、再生することができます。これを利用して機能テストを行うことができます。主な機能は以下のとおりです。

・HTTPセッションを記録する

 Solexは、プロキシサーバとして振る舞うことにより、WebブラウザとWebサーバ間を行き来するHTTP requestとHTTP responseをHTTPセッションとして記録します(図1)。

図1 Solexの振る舞い 図1 Solexの振る舞い

・記録したHTTPセッションを再生する

 Solexが記録したHTTPセッションは後で再生することができるので、これを利用してWeb機能の回帰テストが可能です。

・HTTP requestをカスタマイズして再生する

 記録したHTTP requestをカスタマイズしたHTTPセッションを再生することができます。

・HTTP responseを検証する

 シナリオの再生時には、HTTP responseに対してユーザーの規定する検証を行うことができます。

入手方法

 Solexを利用する場合は、com.neomalogic.solex_0.5.3.rc1.zipを以下のサイトから取得してください。

 ダウンロードしたプラグインを展開して現れるcom.neomalogic.solex_0.5.3.rc1ディレクトリをEclipseの[plugins]ディレクトリに格納し、-cleanオプションを付けてEclipseの再起動を行えばインストールが完了です。[ウィンドウ]→[設定]でEclipseの設定画面(図2)を開き、ツリーの部分に[Solex]が表示されればインストールが成功しています。

図2 Solexの設定画面(設定前) 図2 Solexの設定画面(設定前)

使い方

 Solexの使い方に関して下記の手順にて解説します。

(1)Solexの設定

(2)HTTPセッションの記録

(3)HTTPセッションの再生

(4)HTTP response(Body部)の検証

(5)HTTPセッションの編集

(1)Solexの設定

ポート番号の設定

 Solexをプロキシサーバとして利用するために使用するポート番号を設定します。まず、[ウィンドウ]→[設定]でEclipseの設定画面(図1)を開き、ツリーの部分から[Solex]を選択します。次に、[Solex parameter]の[Port]に現在空いている任意のポート番号を入力して[適用]ボタンと[OK]ボタンを押してください(図3)。

ブラウザのプロキシを設定

 ブラウザのメニューから[設定]→[インターネットオプション]を選択し、[接続]→[LANの設定]を選んで、[プロキシサーバ]→[アドレス]に「localhost」(127.0.0.1)を、[ポート]に先ほど設定したポート番号(図では8088)を設定します(図4)。これで、Solexの設定が完了します。

図3 Solexの設定画面(設定後) 図3 Solexの設定画面(設定後)
図4 ブラウザのプロキシサーバ設定画面 図4 ブラウザのプロキシサーバ設定画面

(2)HTTPセッションの記録

 次はHTTPセッションを記録するためのファイルを作成します。まずパッケージエクスプローラ画面で任意のプロジェクトを作成してください(今回の記事では「solex」という名前のJavaプロジェクトを作成しています)。

 作成したプロジェクトのコンテキストメニュー(右クリックで表示)から[新規]→[その他]を選択して表示されるウィザード選択画面(図5)のツリーから[Solex]を選択し、配下にある[New HTTP session]を選択して[次へ]ボタンを押します。

図5 Http sessionファイルの作成画面 図5 Http sessionファイルの作成画面

 すると、HTTPセッション を記録するためのファイル(以下、セッション記録ファイル)の作成画面(図6)が表示されるので、先ほど作成したプロジェクト(図ではsolex)を親フォルダに設定し、任意の名前(図ではsession1.slx)を入力して[終了]ボタンを押します。

図6 セッション記録ファイル作成画面 図6 セッション記録ファイル作成画面

 以上の設定を行うと、プロジェクト直下にセッション記録ファイルが作成されます。

 このセッション記録ファイルをダブルクリックすると、Eclipseのツールバーに開始ボタンが選択可能になります(図7)。

注:このとき、開始ボタンを押してproxyが起動するまで10秒ほどかかります。

図7 セッション記録開始ボタン 図7 セッション記録開始ボタン

 スタートボタンをクリックするとセッション記録が始まるので、先ほどプロキシの設定を施したブラウザから任意のURLにアクセスしてください。

 ここでは、例としてGoogleの検索画面のセッションを記録してみます。まず、ブラウザからhttp://www.google.co.jpにアクセスします。次に、Googleの検索ワードに「Eclipse solex」と入力して[Google検索]ボタンを押します。

 すると、検索結果のTopにSolexの公式ページが表示されます(2006年9月現在)。ここで、Eclipseのツールバーからセッション記録中止ボタン(図8)を押してください。

図8 セッション記録中止ボタン 図8 セッション記録中止ボタン

 すると、これまでのセッション情報が画面に表示されます。Solexパースペクティブで表示すると、HTTPメッセージのbody部の情報が[Message body content]ビューに表示されます(図9下部)。

図9 セッション情報表示画面 図9 セッション情報表示画面

(3)セッションの再生

 記録したセッションは、再生することができます。

 再生方法は2種類あり、Eclipseツールバーにあるリクエスト再生ボタン(図10)のうち、左側のボタンを押すと1回で1リクエストごとに再生します。また、右側のボタンを押すと記録したすべてのリクエストをまとめて再生します。

図10 セッション再生ボタン 図10 セッション再生ボタン

(4)HTTP response(Body部)の検証

 記録したHTTP responseのbody部の内容を検証することができます。

 ここでは、Googleの検証結果でTopに来たSolex公式ページのタイトル文字列がbody部に存在するかどうかの検証をしてみます。

  まず、検証対象のbody部を選択して[右クリック]→[Add an assertion]を選択するとアサーション追加画面が表示されます。

 ここで、[Test Value]→[Regular expression]にSolex公式ページのタイトル文字列を入力します。Body部にこの値が出現してほしい場合は[Test Value should appear]でYesの方にチェックします。[Preview]ボタンを押すと、記録したセッション情報に対して検証をした結果が表示されます。最後に[OK]ボタンを押せば検証の追加が完了します(図11)。

図11 アサーション追加画面(成功編) 図11 アサーション追加画面(成功編)

 逆に、失敗する検証を追加してみましょう。

 先ほどと同様にアサーション追加画面を開き、[Test Value]→[Regular expression]に今回のGoogle検索結果ページに表示されない文字列、例えばGoogleの検索ワードに「eclipse」を指定した結果Topに来るEclipseWikiページのタイトル文字列を指定します。

 [Test Value should appear]はYesの方にチェックして[Preview]ボタンを押すと、結果はfalseになります。最後に[OK]ボタンを押して検証を保存しておきます(図12)。

図12 アサーション追加画面(失敗編) 図12 アサーション追加画面(失敗編)

 保存した検証はセッションを再生するたびに機能します。

 図9の[Play All Request]ボタンを押すと、2つ目に作ったアサーションが失敗したことを意味するアラート(図13)が表示されます。

図13 検証失敗時のアラート 図13 検証失敗時のアラート

(5)HTTPセッションの編集

 記録したHTTPセッションのリクエスト情報を編集することができます。

 先ほどの例では、検索ワードとして「eclipse solex」を指定しましたが、これを「eclipse」に変更してみましょう。方法は2つあります。

 まず1つ目は、パラメータを利用する方法です。

 セッション情報表示画面(図9)を見ると、「parameters」配下の「q = Eclipse+solex」と いうパラメータ(以降qパラメータと呼ぶ)が検索ワード情報になっているようなので、これをダブルクリックします。

 すると、URLパラメータ編集画面(図14)が表示されるので、値を「Eclipse」に編集して[OK]ボタンを押すと、検索ワードが「Eclipse+solex」から「Eclipse」に変更されます。

図14 URLパラメータ編集画面 図14 URLパラメータ編集画面

 2つ目は、定数(Constants)を利用する方法です。

 まず、セッション情報表示画面(図9)のルートにあるConstatnts(0)をダブルクリックすると定数管理画面(図15)が表示されるのでNameに「search」、Valueに「Eclipse」を設定して[Add]→[OK]ボタンを押します。

図15 定数管理画面 図15 定数管理画面

 次に、qパラメータを選択して[右クリック]→[Add a replacement rule]を選択すると、過去に作成した定数のリストが表示されるので、先ほど作成した「search」を選択します。

 以上の処理で、検索ワードが「Eclipse+solex」から「Eclipse」に変更されます。

 この状態でセッションを再生すると、先ほどの検証結果とは逆に図11で作成したアサーションが失敗した旨を表すアラートが表示されます。これは、検証の対象body部が「Eclipse+solex」の検索結果ページから「Eclipse」の検索結果ページに変わったからです(ただし、body部の詳細は最初の記録時のまま変化しませんので注意してください)。

まとめ

 このように、Solexはプロキシサーバとして振る舞うことにより、ブラウザとWebサーバ間のHTTPセッションを記録・再生します。

 また、再生時にはHTTP responseに対してユーザー定義の検証を行うことができます。

 さらに、記録したセッションを基にURLパラメータも編集でき、編集したセッションの再生を行うことで、さまざまなパターンの回帰試験を行うことが可能です。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。