このトピックでは、ウィザードを使用してトラフィックからパラメータライズされたメッセージを生成する際に、[リクエスト照合] ウィザード画面を完了するための方法を説明します。このトピックの内容:
この画面では次の設定が可能です。
[リクエスト照合] 画面は,トラフィック ウィザードの [メッセージ グループ化の確認] 画面で [自動構成] オプションが無効になっている場合に表示されます。
Virtualize がメッセージのグループ化または応答条件を自動的に決定できない場合、[自動構成] オプションを無効にできます。
ウィザードでは、手動で構成したいメッセージ グループごとにページが表示されます。
接続線をクリックしてドラッグし、エンドポイントを別のリクエストまたはレスポンスにドラッグすることで、リクエストとレスポンスのペアを再マッピングできます。たとえば、response 3 が実際には request 2 に一致している場合、次のように指定します。
接続されたメッセージは、生成されたメッセージ レスポンダーとデータ リポジトリで使用されます。切断されたメッセージは表示されないメッセージであり、無視されます。メッセージ レスポンダーやデータ リポジトリでメッセージを使用したくない場合、そのメッセージのブロックを削除するか、切断することができます。
メッセージの詳細を参照するには、そのメッセージのブロックを選択します。
[リクエスト応答条件] タブで、レスポンダー モードを設定し、リクエスト ボディ、URL パス、リクエスト ヘッダーに基づいてカスタム応答条件を指定できます。
Virtualize は、以下のシナリオに従い、トラフィック ファイル、テンプレート ファイル、サービス定義ファイルに基づいて、初期応答条件を自動的に設定します。
ウィザードで指定したカスタム応答条件は、生成されるレスポンダーでデータ ソース応答条件を設定するために使用されます。たとえば、次の XPath をリクエスト ボディの応答条件として [リクエスト応答条件] タブで指定するものとします。/*:Envelope/*:Body/*:confirm/text()
この XPath は、次の図で示すように、生成されたレスポンダーの [データ ソース応答条件] タブで使用されます。
自動生成されたデータ ソース列名は必要に応じて変更できます。
もうひとつ例を挙げます。以下のリクエスト URL パス応答条件を指定したものとします。
生成されたレスポンダーの [データ ソース応答条件] タブは以下のようになります。
レスポンダー モード オプションを使用すると、設定しているメッセージ グループのレスポンス タイプを設定できます。生成された各レスポンダーの [レスポンダー応答条件] タブで、個々のメッセージ グループのレスポンダー モードを変更できます。
以下のいずれかのレスポンス モードを選択します。
パラメータライズされたレスポンス | このオプションを使用すると、[リクエストの照合] 画面で データソース応答条件 を設定できます。生成されたレスポンダーは、データ リポジトリからの値でパラメータライズされます。 |
---|---|
シーケンス レスポンス | このオプションは、シーケンス レスポンス モードでレスポンダーを生成します。詳細については「シーケンス レスポンス」を参照してください。 |
シングル レスポンス | このオプションは、メッセージ グループから単一のメッセージ ペアを選択し、リテラル モードでレスポンダーを生成します。「リテラル」を参照してください。 |
さまざまな応答条件セクションにあるコントロールを使って、自動的に設定された 初期応答条件 を変更できます。設定を変更した場合は、[デフォルトの復元] ボタンをクリックして変更を破棄し、初期設定の自動設定に戻すことができます。データソースの応答条件を構成するには、パラメータライズされたレスポンス レスポンダー モードを有効にする必要があります (Configuring the Responder Modeを参照)。
同じ列名を (たとえば URL パラメーターと URL パスで) 複数回指定した場合、1 個の値だけが設定されます。前の値は上書きされます。
Virtualize は、操作/ ループごとに「名前」ベースの XPath を生成します。この XPath は、該当する操作のレスポンダー応答条件を設定するために使用されます。たとえば、SOAP ボディ内の要素名が "SubmitOrder" である場合、レスポンダー応答条件セクションに設定される XPath 式は次のようになります。
local-name(/*/*[local-name(.)="Body"]/*)="SubmitOrder"
なお、メッセージが XML ではない場合、 XPath とパラメーターの選択は、XML に変換されたリクエスト メッセージに適用されます。
同じ操作に属するメッセージの各グループでは、リクエスト間で異なるパラメーターを判断するために、リクエストが互いに比較されます。Virtualize のトラフィックからの自動構成は、リクエスト要素の違いを分析します。そして、この分析結果を使用して操作/グループ内で利用可能なレスポンスの XPath 式を生成します。その目的は、それぞれの異なるリクエスト要素に対してレスポンスを自動生成することです。トラフィックが SOAP エンベロープの場合、メッセージが同じ操作要素 (SOAP ボディの最初の要素) を共有する限り、構造の違いは許容されます。トラフィックが一般的な XML の場合、メッセージが同じルート ノードを持つ限り、構造の違いは許容されます。
ウィザード ページに表示される初期構成を上書きしたい場合、利用可能なコントロールを使って、使用する XPath と列名を指定します (複数の XPath と列名を指定できます) 。
一致のために、タイムスタンプなどの特定の値を無視した方が良い場合があります。Virtualize は、以下の正規表現に基づいてタイムスタンプを無視するよう自動的に設定されています。
除外パターンを確認、変更、追加したい場合は、ページ下部の [除外] をクリックし、表の値を編集します。要素名は、完全一致で指定するか、すべてに一致するようワイルドカード (*) を使用できます。値は正規表現として指定します。 一致のために特定の値を " 常に" 無視したい場合は、[設定] > [Parasoft] > [トラフィック ファイルの処理] で除外パターンを指定します。トラフィックからパラメータライズされた仮想アセットが作成されるたびに、この除外パターンが適用されます。詳細については「トラフィック ファイルの処理」を参照してください。 |
リクエスト URL パラメーターの場合、メッセージ グループに属する呼び出し中の URL パラメーターに差異がある場合 (パラメーター数の違い、パラメーター名の違い、パラメーター値の違いなど)、Virtualize のトラフィックからの自動構成は、それらの差異に基づいて応答条件を自動的に構成します。
たとえば、特定のメッセージ グループのための呼び出しに以下のパラメーターがあるものとします。
countryCode=US&brandCode=HG
countryCode=Uk&brandCode=HG&channelCode=3
countryCode=US
countryCode=UK
brandCode=HG
パラメーターの差異に基づいて、このメッセージ グループ用に Virtualize は次の 3 種類のデータ ソース応答条件行を自動構成します: countryCode, brandCode, and channelCode
ウィザード ページに表示される初期構成を上書きしたい場合、利用可能なコントロールを使って、使用するパラメーターと列名を指定します (複数のパラメーターと列名を指定できます)。
URL パスの場合、グループに属する呼び出し中の URL パスに差異がある場合、Virtualize のトラフィックからの自動構成は、それらの差異に基づいて応答条件を自動的に構成します。
たとえば、特定のメッセージ グループのための呼び出しに以下のパスがあるものとします。
/customer/123/account/1920384
/customer/203/account/4922434
/customer/302/account/7349463
セグメント 1 と 3 (0 を起点とするインデックスを使用) の差異に基づいて、このメッセージ グループ用に Virtualize は次の 2 種類のデータソース応答条件行を追加します。すなわち、パス インデックス 1 のための行とパス インデックス 3 のための行です。
ウィザード ページに表示される初期構成を上書きしたい場合、利用可能なコントロールを使って、応答条件に使用するパス セグメントを指定します。パス セグメントは、1 つ以上のデータ ソース列に一致でき、さまざまなデータ ソース列を使ってパラメータライズできます。表示されるダイアログで、使用するパスセグメントを指定し (関連するパス セグメントをクリックするか、パス インデックスを入力できます)、データ ソース列の名前を指定します。
リクエスト ヘッダー応答条件は、Virtualize のトラフィックからの自動構成中に追加されません。ヘッダーの値に基づいて一致させたい場合、抽出して一致させたいリクエスト値のヘッダーを指定し、それぞれデータ ソース列にマッピングします。抽出された値は、マッピングされたデータ ソース列の値と一致します。
このトラフィックの WSDL またはスキーマを指定したい場合、[WSDL/スキーマ] タブで入力します。WSDL またはスキーマを指定することには次のメリットがあります。
生成されたフォーム入力とそのデータ パラメータライズが元のメッセージに一致しない場合、これは「元のメッセージが WSDL/スキーマに完全に一致していないこと」、あるいは「元のメッセージとのマッピングに失敗したこと」を表します。フォーム入力モデルが必ずトラフィック メッセージに完全に一致するよう、WSDL/スキーマを省略してください。
WSDL またはスキーマを指定せず、メッセージが choice または extension タイプを使用する場合は、「 choice/extension タイプのサポート」を参照してください。