このセクションでは、トラフィック ログにキャプチャされたトラフィックから固定メッセージ レスポンダーを作成する方法について説明します。
セクションの内容:
トラフィックからの「固定メッセージ」仮想アセットの作成
リクエストとレスポンスの HTTP ヘッダーには、XML または JSON コンテンツ タイプの Content-Type ヘッダーがなければなりません。例:
Content-Type: application/json; charset=UTF-8
Content-Type: text/xml; charset=UTF-8
メッセージは、トラフィックから自動的にレスポンダーを正常に作成できるように、整形式でなければなりません。
トラフィックからメッセージ レスポンダーを作成する際、コンソール ビューを開いておくと役立ちます。コンソール ビューには、トラフィック ファイルの処理中に生成される警告、エラー、および通知メッセージが表示されます。
トラフィック ファイルから " 固定メッセージ" メッセージ レスポンダーを自動的に作成してデプロイするには、以下の操作を行います。
- 利用できる作成ウィザードで [トラフィック] > [固定メッセージの生成] を選択します。
- ウィザードへのアクセスの詳細については「プロジェクト、 仮想アセット、レスポンダー スイートの追加」を参照してください。
- トラフィック ウィザードの先頭ページで以下の設定を行います。
- トラフィック ファイルの場所を指定します。
- 必要に応じて文字エンコーディングを変更します。
- 目的のメッセージ グループ化オプションを指定し、[次へ] をクリックします (詳細については Messaging Group Options を参照してください)。
- (MQ および JMS のみ) 次のウィザード ページで接続設定を指定し、[次へ] をクリックします。
- 以下の設定を行って [仮想アセットのデプロイ] ウィザード ページを完了します。
- 作成する仮想アセットの名前とデプロイメント パスを指定します。指定したエンド ポイントに仮想アセットがデプロイされます。詳細については「個別の仮想アセットのデプロイメント設定」を参照してください。
- [次へ] をクリックします。
- 以下の設定を行って [リクエスト パラメーターの選択] ページを完了します。
- 利用できるコントロールを使って、仮想アセットのレスポンス メッセージを決定するのに使用するパラメーター値を指定します。必ずしもこの選択を行う必要はありません。必要に応じて、デフォルトの自動選択を有効のままにできます。詳細については「[リクエスト パラメーターの選択 ] ウィザードの完了」を参照してください。
- [次へ] をクリックします。
- (オプション) レスポンス メッセージまたはヘッダー要素をパラメータライズするために受信メッセージから抽出されたデータを使って動的メッセージを設定したい場合、パラメータライズする操作ごとに [動的メッセージの設定] ページを完了します。各ウィザード ページの入力が終わったら、[次へ] をクリックして次の操作に進みます。
- 動的メッセージの設定方法については「[動的メッセージの設定] ウィザードの完了」を参照してください。
- [終了] をクリックします。
メッセージ レスポンダーが作成され、ローカルの Virtualize サーバーにデプロイされます。
メッセージで検出された異なる操作に基づいてグループ化するために、リクエスト メッセージが解析されます。各操作が 1 つのメッセージ レスポンダーになります。SOAP メッセージの場合、Body の直下の要素名ディレクトリが操作名として使用されます。プレーン XML の場合は、操作を決定するためにルート要素が使用されます。
JSON コンテンツの場合、ログから読み取られたレスポンス メッセージごとにレスポンダーが作成されます。.pva の作成が終了した後に、レスポンダー応答条件基準を設定する必要があります。
メッセージ グループ化オプション
以下のメッセージ グループ化オプションを指定できます。
なし | グループ化しない。トラフィック ファイル中のレスポンス メッセージごとにレスポンダーが生成されます。リクエスト/レスポンスのペアごとに個別のメッセージ レスポンダーを用意したい場合、このオプションを使用します。 |
---|---|
操作/タイプに基づく | 操作またはメッセージ タイプに基づいてメッセージをグループ化します。このオプションが有用なのは、操作によって、あるいはメッセージ タイプ (つまり、SOAP ボディの要素名、プレーン XML メッセージのルート要素、または指定されたメッセージ形式のメッセージ タイプ) によって、明確に特定できるメッセージを持つサービス トラフィックの場合です。トラフィック ファイル中で発見された操作/タイプごとに 1 つのレスポンダーが生成されます。 |
類似リクエストに基づく | リクエスト メッセージの構造に基づいてメッセージをグループ化します。構造が類似したリクエストに関連するレスポンスを個々のレスポンダーが持つよう、Virtualize はリクエスト メッセージの構造を解析し、リクエスト/レスポンスをグループ化してレスポンダーにします。メッセージは、たとえ値が異なっていても、同一の DOM ツリー モデルを持つ場合に " 類似" と見なされます。このオプションは、各メッセージ レスポンダー内でレスポンスにリクエストを関連付けるための規則を最適化し簡潔にするために使用されます。 |
類似レスポンスに基づく | レスポンス メッセージの構造に基づいてメッセージをグループ化します。このオプションを選択すると、Virtualize は、レスポンス メッセージの構造を解析し、リクエスト/レスポンスのペアをグループ化してレスポンダーにすることで、個々のレスポンダーが、構造が類似したレスポンスを持つようにします。メッセージは、たとえ値が異なっていても、同一の DOM ツリー モデルを持つ場合に " 類似" と見なされます。このオプションは、データ ソースのパラメータライズのために最適化されるメッセージ レスポンダーを生成するために使用されます。メッセージ レスポンダー内のすべてのレスポンスが類似しているため、データ ソース駆動のアセットを作成するために、各レスポンダーに対してデー タソースをより簡単に生成することができます。 |
[リクエスト パラメーターの選択 ] ウィザードの完了
[リクエスト パラメーターの選択] ウィザードには、トラフィック ファイルで検出された各操作についてステップが示されます。このステップで、Virtualize は各操作/グループのための名前ベースの XPath を生成します。XPath は、その操作のレスポンダー応答条を設定するために使用されます。たとえば、SOAP ボディの下の要素名が "SubmitOrder" である場合、応答条件の選択セクションに設定される XPath 表現は次のようになります。 local-name(/*/*[local-name(.)="Body"]/*)="SubmitOrder"
なお、メッセージが XML ではない場合、 XPath とパラメーターの選択は、XML に変換されたリクエスト メッセージに適用されます。
同じ操作に属するメッセージの各グループでは、リクエスト間で異なるパラメーターを判断するために、リクエストが互いに比較されます。
- 自動オプションの場合、Virtualize はリクエスト要素における差異を解析し、解析結果を利用して、その操作/グループで利用できる複数レスポンスのための XPath 表現を生成します。その目的は、それぞれの異なるリクエスト要素に対してレスポンスを自動生成することです。トラフィックが SOAP エンベロープの場合、メッセージが同じ操作要素 (SOAP ボディの最初の要素) を共有する限り、構造の違いは許容されます。トラフィックが一般的な XML の場合、メッセージが同じルート ノードを持つ限り、構造の違いは許容されます。
- リクエスト パラメーターを手動で選択する場合、これらの複数レスポンスの XPath を生成するために、1 個以上のリクエスト パラメーターを選択できます。
- 応答条件の生成方法をコントロールしたい場合は、手動オプションを推奨します。自動オプションは、単純な状況の場合に応答条件を素早く生成/設定することを目的としたものです。
[動的メッセージの設定] ウィザードの完了
リクエスト メッセージの各操作について、[動的メッセージの設定] ウィザード ページが表示されます。[レスポンス] タブには、レスポンス メッセージで可能な要素がすべて表示され、ユーザーは受信リクエスト メッセージから抽出した値を使ってこれらの要素をパラメータライズすることができます。[トランスポート ヘッダー] タブでは、ヘッダーの値とプロパティをパラメータライズすることができます。
[レスポンス] または [トランスポート ヘッダー] タブで値をパラメータライズするには、以下の操作を行います。
- 抽出された値を使用する項目を選択します。
- レスポンス メッセージの要素をパラメータライズしている場合、[レスポンス] タブの左側ペインでその要素を選択します。
- ヘッダーの値またはプロパティをパラメータライズしている場合、[トランスポート ヘッダー] タブで適切なトランスポートとカテゴリを選択します。まだ表示されていないヘッダーの値をパラメータライズしたい場合は、ここで追加します。
- [パラメータライズ] および [データ ソース ウィザードの使用] を選択します。
- 表示されたウィザードで、以下の操作を行います。
- ページの先頭で、値を抽出する受信リクエスト メッセージを選択し、メッセージ ボディとメッセージ ヘッダーのどちらから値を抽出するかを指定します。
- パネルの左側のコントロールを使って、何を抽出するかを選択し、パネルの右側に追加します。右側のパネルには、抽出のために設定した値のリストが表示されるほか、デフォルト設定のままにした場合、格納されるデータ ソース列名が表示されます。
- (オプション) さらにオプションを指定したい場合 (たとえば、値を格納するために使用する列の名前を変更したい場合、書き込み可能なデータ ソースに値を保存したい場合、あるいは既存の変数に値を格納したい場合)、または XPath の詳細設定を変更したい場合、右側の表で適切な要素を選択し、[変更] をクリックします。そして、必要に応じてオプションを設定して [OK] をクリックします。利用できるオプションについては「抽出した各要素のオプション」を参照してください。
[終了] をクリックしてウィザードを完了すると、生成されるメッセージ レスポンダーに、XML Data Bank ツール (ヘッダーの場合は Header Data Bank ツール) が自動的に追加されます。
これらのツールは、ウィザードで指定した抽出を実行するようあらかじめ設定されます(パラメータライズされた値にアクセスするために ${} 表記が使用されます)。たとえば以下の例を見てみましょう。このメッセージ レスポンダーは、メッセージ リクエストから抽出された値を使用し、それを titleKeyword 列に保存するよう設定されています。
抽出方法を変更したい場合は、ツールの設定パネルを開き、「XML Data Bank」および「Header Data Bank」で説明しているように設定をカスタマイズします。
仮想アセットのデプロイ
Virtual Asset フォルダーに .pva が作成された場合、ウィザードが完了すると、仮想アセットは自動的にローカルの Virtualize サーバーにデプロイされます。そうでない場合、ユーザーは準備ができたときにいつでもローカル サーバーまたはリモート サーバーに仮想アセットをデプロイすることができます。
デプロイ手順とオプションの詳細については、「仮想アセットのデプロイ」を参照してください。
仮想アセットのカスタマイズ
メッセージ レスポンダーの振る舞いをカスタマイズする方法については、「メッセージ レスポンダーの概要」を参照してください。