このセクションでは、メッセージプロキシを作成する基本手順について説明します。
このセクションの内容
プロキシの追加
[Virtualize サーバー] ビュー
[SOAtest サーバー] ビュー
[Virtualize サーバー] または [SOAtest サーバー] ビュー
でサーバーを右クリックし、[メッセージ プロキシの追加] を選択します。新しい Proxy ノードが Message Proxies フォルダーの下に追加されます追加されたプロキシは初期状態では無効になっています。プロキシを使用するには、プロキシを構成する必要があります。
プロキシまたはフォルダーを削除するには、ノードを右クリックして [削除] を選択します。
プロキシを含むフォルダーを削除すると、プロキシはデプロイ解除され、サーバーから削除されます。
サーバー ビューでノードを右クリックし、[メッセージ プロキシの追加] を選択して、メッセージ プロキシ フォルダーまたはサブフォルダーに直接プロキシを作成することもできます。
メッセージ プロキシの編成
サーバーの Message Proxiesフォルダーにサブフォルダーを作成して、その内容を整理できます。
フォルダーの新規作成
- ノードを右クリックし、[新規フォルダー] を選択します。
- プロンプトが表示されたら、フォルダー名を指定します。
フォルダー名の変更
フォルダーを右クリックして、 [名前の変更] を選択します。サーバー ビューでデフォルトのフォルダー(仮想アセット、メッセージプロキシなど)の名前を変更することはできません。
フォルダーの移動
右クリック メニューから、フォルダーまたはプロキシをコピーして、メッセージ プロキシ フォルダー内の別のフォルダーに貼り付けることができます。
サブ フォルダーとプロキシを他のサブフォルダーにドラッグすることもできます。
プロキシの構成
追加されたノードをダブル クリックして構成パネルを開き、以下のタブでプロキシを構成します。構成が完了すると、「プロキシの有効化/無効化」にあるようにプロキシを有効にすることができます。そして「メッセージ プロキシからのトラフィックの記録」にあるように記録を開始できます。
[全般] タブ
[全般] タブで、プロキシの名前と説明を入力します (説明の入力は任意)。
[接続] タブ
[接続] タブで、どのエンド ポイントをプロキシでリスンするか、着信メッセージをどこに転送するかを指定します。プロキシを使用する各エンド ポイントに、次の操作を行います。
- [追加] をクリックします。
- 適切なトランスポートタイプを選択します。
プロキシ設定を入力します。
- HTTP Reverse: 「HTTP リバース プロキシの設定」を参照。
- HTTP Forward: 「HTTP フォワード プロキシの設定」を参照。
- JMS: 「JSM の設定」を参照。
- MQ: 「MQ の設定」を参照。
- 内部: 「内部トランスポート設定」を参照。内部プロキシは仮想アセットまたは他の内部トランスポート プロキシにトラフィックを向かわせることができます。そのため、複雑な仮想アセットをデプロイする際にキューの数を削減できるほか、内部的にルーティングする際にパフォーマンスを向上させることができます。
- [トラフィック ファイル] フィールドで、トラフィックデータを保存する場所を指定します。トラフィック データは、プロキシを記録モードに設定した場合にキャプチャされます。後でこのトラフィック ファイルを使用して、キャプチャされたライ ブ トラフィックを表現する仮想アセットを生成できます。記録されたトラフィック ファイルへの簡単なアクセス方法については、「リモート サーバーとローカル マシン間でのファイル転送」を参照してください。
- デフォルトでは、トラフィックは
%n_%d_%t.txt
(<proxy_name>_<current_date>_<current_time>.txt) という名前のファイルに記録されます。recorded_traffic フォルダー内に保存されます(このフォルダーが存在しない場合は作成されます)。ファイル名は変更できますが、フォルダー名は変更できません。このフォルダーは常にVirtualAssets プロジェクト内に置かれます。 - ファイル名の指定では、
%d
(現在日付)、%t
(現在時刻)、%n
(プロキシ名)、および%u
(ユニークな時刻ベースの ID) などの変数を使用できます。名前とともにワイルドカードを使用できます。たとえば、%nProxyTraffic%d
または%u_%d%nTraffic
と指定できます。 - 同時に同じトラフィック ファイルに書き込むために複数のプロキシ接続を設定しないでください。そのように設定すると、トラフィック ファイルが破損する可能性があります。
- デフォルトでは、トラフィックは
- [レコーディング セッション] エリアで、トラフィック ファイルにどのようにトラフィック データを記録するかを指定します。
- [新規セッション データの追加] は、既存のトラフィック ファイル ([トラフィック ファイル] フィールドで指定されたファイル) に、新規トラフィック データを追加します。指定したファイルが存在しない場合、新しいファイルが作成されます。詳細については下記の「More on Recording Session Options」を参照してください。
- [セッションデータの上書き] は、既存のトラフィック ファイル ([トラフィック ファイル] フィールドで指定されたファイル) に、トラフィック データを上書きします。指定したファイルが存在しない場合、新しいファイルが作成されます。詳細については下記の「More on Recording Session Options」を参照してください。
- [メッセージのペアごとに新規セッション ファイル (HTTP および内部のみ)] は、リクエスト/ レスポンスのペアごとに別のトラフィック ファイルを作成します。詳細については下記の「More on Recording Session Options」を参照してください。
- [OK] をクリックします。
[HTTP リスナー] タブ
[HTTP リスナー] タブで、HTTP(S) リスナーが待機するポートを設定します。HTTP リスナーは、HTTP トラフィックを記録するための接続設定を容易にします。次の 2 種類があります:
リバース プロキシ
このタイプのリスナーは、トラフィックをリッスンするポートを開始し、ライブ サービスまたは仮想アセットのいずれかに転送するために使用することができます。これは、テスト対象アプリケーションに、バックエンド サービスへの接続に使用するホストとポートをユーザーが構成できるような構成オプションがある場合に最もよく使用されます。
HTTP リスナーを追加するには:
- [リスナーの追加] をクリックし、[タイプ] ドロップダウンから [リバース プロキシ] を選択します。
- リスナーの名前を指定します。
- [ポートの追加] をクリックし、ポート番号を入力します。ポート番号として
0
を指定すると、メッセージ プロキシがポートを自動的に割り当てることができます。プロキシを有効にすると、割り当てられたポート番号がコンソールに表示されます。メッセージ プロキシが変更/有効化されるたびに、ポートがランダムに割り当てられます。GET リクエストをmessageProxies
API エンドポイントに送信して、自動的に割り当てられたポート番号を返すこともできます。詳細については「REST API によるテスト」を参照してください。 - クライアントが SSL 経由でトラフィックを送信する場合、[セキュア] オプションをオンにして認証オプションを有効化します。詳細については「HTTP リバース リスナー ポートの SSL 設定」を参照してください。
- [OK] をクリックしてポート エディターを終了します。
- [追加] をクリックしてリスナーに別のポートを追加するか、[OK] をクリックしてリスナーの追加を終了します。
フォワード プロキシ
Host ヘッダーに基づきトラフィックをルーティングすることができる HTTP プロキシを開始します。これは、バックエンド サービス エンドポイントを構成できないモバイル アプリケーションや、バックエンド サービスへの接続に使用するホストとポートを変更するための構成オプションがないテスト対象アプリケーションで使用するのが最適です。
システムリスナーを追加するには:
- [リスナーの追加] をクリックし、[タイプ] ドロップダウンから [フォワード プロキシ] を選択します。
- リスナーの名前を指定します。
- ポート番号を入力します。
- [OK] をクリックしてポート エディターを終了します。
- [追加] をクリックしてリスナーに別のポートを追加するか、[OK] をクリックしてリスナーの追加を終了します。
プロキシの例
リバース プロキシとフォワード プロキシのどちらを使用するかは、多くの場合、アプリケーション トラフィックとモバイル トラフィックのどちらを記録したいかによります。両方を記録する場合の例を以下に示します:
例 1: アプリケーション トラフィックを記録するには
- 新しいメッセージ プロキシを作成します。
- 目的のポートにリバース プロキシ リスナーを作成します。
- すべてのトラフィックに対して HTTP リバース プロキシ接続を作成します。
- 記録を有効にします。
- Virtualize サーバーの「ホスト」とリバース プロキシ リスナーの「ポート」を使用するように AUT に指示します。
例 2: モバイル トラフィックを記録するには
- 新しいメッセージ プロキシを作成します。
- 目的のポートにフォワード プロキシ リスナーを作成します。
- すべてのトラフィックに対して HTTP フォワード プロキシ接続を作成します。
- 記録を有効にします。
- Virtualize サーバーの「ホスト」と転送プロキシ リスナーの「ポート」を使用するように、モバイル エミュレーターのプロキシ設定を構成します。
HTTP メッセージ プロキシの設定:ビデオ チュートリアル
この動画は、ライブ トラフィックをキャプチャ可能なメッセージ プロキシの設定方法を説明します。
レコーディング セッション オプションの詳細
トラフィック ファイル名とレコーディング セッション オプションの組み合わせによって、どのようにトラフィック データを記録されるかを以下の表で説明します。
トラフィック ファイル名 | レコーディング セッション オプション | 結果 |
---|---|---|
Default / parameterized | 新規セッション データの追加 | レコーディング セッションのすべてのリクエスト/レスポンスのペアを含む 1 個の新規ファイルを作成します。 |
Static | 新規セッション データの追加 | 指定のトラフィック ファイルに新規トラフィック データを追加します (トラフィック ファイルが存在する場合)。指定のファイルが存在しない場合、レコーディング セッションのすべてのリクエスト/レスポンスのペアを含む 1 個の新規ファイルを作成します。 |
Default / parameterized | セッション データの上書き | レコーディング セッションのすべてのリクエスト/レスポンスのペアを含む 1 個の新規ファイルを作成します。 |
Static | セッション データの上書き | 指定のトラフィック ファイルのトラフィック データを上書きします (トラフィック ファイルが存在する場合)。指定のファイルが存在しない場合、レコーディング セッションのすべてのリクエスト/レスポンスのペアを含む 1 個の新規ファイルを作成します。 |
Default / parameterized | メッセージのペアごとに新規セッション ファイル | レコーディング セッションのリクエスト/レスポンスのペアごとに新規に 1 個のファイルを作成します。複数のリクエスト/レスポンスのペアを検出した場合、複数のファイルを作成します。 |
Static | メッセージのペアごとに新規セッション ファイル | 指定のファイルが存在する場合、リクエスト/レスポンスのペアを検出するたびに、既存のトラフィック データを上書きします。 指定のファイルが存在しない場合、1 番目のリクエスト/レスポンスのペアに対して新規に 1 個のファイルを作成し、その後リクエスト/レスポンスのペアを検出するたびに既存のトラフィック データを上書きします。 どちらの場合も、結果的にファイルには最新のリクエスト/レスポンスのペアが記録されます。 |
プロキシが内部プロトコルを使用していてレコーディング中に MQ トラフィックを受け取る場合、[メッセージのペアごとに新規セッション ファイル] オプションはサポートされません。このオプションを選択している場合、デフォルトで [セッション データの上書き] の処理が実施されます。
サーバー間でプロキシを移動する
プロキシをあるサーバーから別のサーバーにドラッグして移動できます。または、あるサーバーからコピーして別のサーバーに貼り付けることもできます。
プロキシは、グローバル構成またはローカル構成を使用して MQ マネージャーに接続できます。グローバル構成は Virtualizer Server ごとに定義され、サーバーにデプロイされたプロキシまたは仮想アセットで使用できます([接続]タブ を参照)。ローカル構成は、個々のプロキシまたはアセットに対して定義されます。
MQ マネージャー接続構成がターゲットの Virtualize Server に存在しない場合、グローバル MQ マネージャーに接続されたプロキシまたはアセットをデプロイすることはできません。プロキシ/アセットを別の Virtualize Server に移動またはコピーする必要がある場合は、MQ マネージャー接続を手動で定義するか、コピー機能を使用して接続設定をターゲット サーバーに追加できます( MQManager接続のコピー を参照)。
無限ループを防止する
プロキシあるいは Message Forward ツールが誤って A> B> C> A のように転送サイクルを設定した場合、これは無限ループを引き起こします。このようなループを防ぐために、Virtualize はSOAtest はVirtualize と SOAtest は 10 ホップ後に転送を停止するように構成されています。この値は、システム プロパティ parasoft.proxy.loop.max.limit を設定することで変更できます (たとえば parasoft.proxy.loop.max.limit=5)。
このループの検出は内部経由の転送にだけ適用されます (たとえば、ローカル ホストへのルーティングには適用されますが、ホスト名へのルーティングには適用されません)。