Eclipseで使える機能テストツール:Eclipseで使えるテストツールカタログ(5)(2/3 ページ)
Eclipseプラグインで提供されるテストツールが充実してきた。本連載では、システム開発の現場に有効なテストツールを紹介し、統合開発ツールにEclipseを選択する開発におけるテストの効率化、ソフトウェア品質の向上のヒントを提供する。(編集部)
HTTPセッションを記録し再生できる「Solex」
特徴
Solexは、プロキシサーバとして振る舞うことでHTTPセッションを記録し、再生することができます。これを利用して機能テストを行うことができます。主な機能は以下のとおりです。
・HTTPセッションを記録する
Solexは、プロキシサーバとして振る舞うことにより、WebブラウザとWebサーバ間を行き来するHTTP requestとHTTP responseをHTTPセッションとして記録します(図1)。
・記録した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]が表示されればインストールが成功しています。
使い方
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の設定が完了します。
(2)HTTPセッションの記録
次はHTTPセッションを記録するためのファイルを作成します。まずパッケージエクスプローラ画面で任意のプロジェクトを作成してください(今回の記事では「solex」という名前のJavaプロジェクトを作成しています)。
作成したプロジェクトのコンテキストメニュー(右クリックで表示)から[新規]→[その他]を選択して表示されるウィザード選択画面(図5)のツリーから[Solex]を選択し、配下にある[New HTTP session]を選択して[次へ]ボタンを押します。
すると、HTTPセッション を記録するためのファイル(以下、セッション記録ファイル)の作成画面(図6)が表示されるので、先ほど作成したプロジェクト(図ではsolex)を親フォルダに設定し、任意の名前(図ではsession1.slx)を入力して[終了]ボタンを押します。
以上の設定を行うと、プロジェクト直下にセッション記録ファイルが作成されます。
このセッション記録ファイルをダブルクリックすると、Eclipseのツールバーに開始ボタンが選択可能になります(図7)。
スタートボタンをクリックするとセッション記録が始まるので、先ほどプロキシの設定を施したブラウザから任意のURLにアクセスしてください。
ここでは、例としてGoogleの検索画面のセッションを記録してみます。まず、ブラウザからhttp://www.google.co.jpにアクセスします。次に、Googleの検索ワードに「Eclipse solex」と入力して[Google検索]ボタンを押します。
すると、検索結果のTopにSolexの公式ページが表示されます(2006年9月現在)。ここで、Eclipseのツールバーからセッション記録中止ボタン(図8)を押してください。
すると、これまでのセッション情報が画面に表示されます。Solexパースペクティブで表示すると、HTTPメッセージのbody部の情報が[Message body content]ビューに表示されます(図9下部)。
(3)セッションの再生
記録したセッションは、再生することができます。
再生方法は2種類あり、Eclipseツールバーにあるリクエスト再生ボタン(図10)のうち、左側のボタンを押すと1回で1リクエストごとに再生します。また、右側のボタンを押すと記録したすべてのリクエストをまとめて再生します。
(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)。
逆に、失敗する検証を追加してみましょう。
先ほどと同様にアサーション追加画面を開き、[Test Value]→[Regular expression]に今回のGoogle検索結果ページに表示されない文字列、例えばGoogleの検索ワードに「eclipse」を指定した結果Topに来るEclipseWikiページのタイトル文字列を指定します。
[Test Value should appear]はYesの方にチェックして[Preview]ボタンを押すと、結果はfalseになります。最後に[OK]ボタンを押して検証を保存しておきます(図12)。
保存した検証はセッションを再生するたびに機能します。
図9の[Play All Request]ボタンを押すと、2つ目に作ったアサーションが失敗したことを意味するアラート(図13)が表示されます。
(5)HTTPセッションの編集
記録したHTTPセッションのリクエスト情報を編集することができます。
先ほどの例では、検索ワードとして「eclipse solex」を指定しましたが、これを「eclipse」に変更してみましょう。方法は2つあります。
まず1つ目は、パラメータを利用する方法です。
セッション情報表示画面(図9)を見ると、「parameters」配下の「q = Eclipse+solex」と いうパラメータ(以降qパラメータと呼ぶ)が検索ワード情報になっているようなので、これをダブルクリックします。
すると、URLパラメータ編集画面(図14)が表示されるので、値を「Eclipse」に編集して[OK]ボタンを押すと、検索ワードが「Eclipse+solex」から「Eclipse」に変更されます。
2つ目は、定数(Constants)を利用する方法です。
まず、セッション情報表示画面(図9)のルートにあるConstatnts(0)をダブルクリックすると定数管理画面(図15)が表示されるのでNameに「search」、Valueに「Eclipse」を設定して[Add]→[OK]ボタンを押します。
次に、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.