XML List Processor ツールとは
XML List Processor を使用すると、ペイロードから個別に処理する項目を選択できるため、レスポンスで使用する動的なリストを作成できます。このツールは、他のツール (レスポンダーや REST クライアントなど) に連結して使用することも、スタンドアロン ツールとして使用することもできます。ペイロード内の各項目を反復処理することで、データソースの参照や計算など、項目固有の動的なデータを 1 回の操作で集約できます。
このツールは、次のような場合に使用します。
- 単一の受信リクエストで動的な項目リストを処理する。
- 各項目を個別に処理する (追加データの取得、検証の実行など)。
- 個別の結果を単一の構造化されたレスポンスペイロードに集約する。
一般的なワークフローでこのようなリストプロセッサを使用する例については、「動的なアイテム数を持つリストの処理」を参照してください。
XML List Processor ツールの設定
XML List Processor は、他のツール (レスポンダーや REST クライアントなど) に接続して使用することも、スタンドアロン ツールとして使用することもできます。
[ツール設定] タブ
[リテラル] タブで、想定されるペイロードのテンプレートを追加します。サンプル ペイロードをコピーして貼り付けるか、手動で入力できます。
要素を選択するには、[ツリー] タブをクリックし、目的の要素を選択します。[要素の抽出] をクリックすると、選択した要素リストに表示されます。
選択した要素リストから要素を削除するには、削除する要素を選択して [削除] をクリックします。
選択した要素リストの要素を変更するには、変更する要素を選択して [変更] をクリックします。以下の設定を利用できます。
- XPath: 抽出する値の XPath を表示します。デフォルトでは、ツールはリスト インデックスなしの XPath を生成します (例:
/root/request/items/item)。この形式では、各レベルで一致するすべてのノードが選択されるため、リクエスト間で要素数が変化する可能性のある動的な構造にも XPath を適応させることができます。 - 抽出: 抽出する値を指定します。
- 要素全体: XPath 全体を出力します。たとえば、 XPath/Parent は <parent>VALUE</parent> を出力します。[抽出要素のインデックス] オプションを設定して、要素が 2 回以上発生している場合にどの要素を抽出するか指定することができます。
- 内容のみ: 値のみを出力します。たとえば、 XPath/Parent は VALUE を出力します。[テキスト内容] オプションを選択すると、選択した要素のテキスト コンテンツを抽出します。 [すべての子ノード] オプションを選択すると、選択した要素のすべての子ノードを抽出します。
- XPath の評価: [XPath の評価] をクリックすると、期待する XML に対して XPath 式を適用した結果を表示します。
送信リスト データバンクの設定
- カスタム列名: 値を格納するデータ ソース列の名前を指定します。特に指定しない限り、値は内部データ ソースに格納されます (たとえば [書き込み可能なデータ ソースの列] または [変数] を選択する場合)。このカスタム列名を指定して、格納されている情報を他のツールから参照できます。たとえば、My Value というデータ ソース列にデータを格納する場合、パラメータライズされた値として My Value を選択します。また、 ${My Value} とすれば、リテラルまたは複数のレスポンス ビューで参照できます。
書き込み可能なデータ ソース列: 書き込みできるデータ ソース列に値を格納します。値の配列を格納できます。他のツールは格納された値を繰り返し使用できます。
- 一致するすべての列に書き込む: 列名に任意の文字列を含むすべての列に値を格納できます。あるメッセージから複数の値を抽出する場合、各値は、一致するすべての列に書き込まれます。対照的に、その上の [書き込み可能なデータ ソースの列] を選択した場合、値は複数の行にまたがる列に書き込まれます。
変数: 指定の変数に値を保存して、現在のレスポンダー スイートまたはアクション スイートで再利用できるようにします。 「Virtualize での変数の定義」で説明されているように、変数は現行のテスト スイート に追加されている必要があります。 この方法で設定された値は、レスポンダー スイートまたはアクション スイートのプロパティパネルで指定された変数の値で上書きされます。
オプション
- 期待される JSON の保存: 期待される XML を保存するかどうかを指定します。有効にしない場合、ツール設定で入力したペイロード テンプレートはツール構成の保存時に保存されませんが、抽出された要素は保持されます。
- 変更を許可: XPath の変更を許可するかどうかを指定します。このオプションを有効にすると、選択した要素リストに [変更] タブが追加されます。XPath を変更するには、[変更を許可] を有効にして [変更] タブをクリックし、 [要素の抽出] ボタンをクリックして XPath を追加します。そして [修正] ボタンをクリックします。[選択した XPath の変更] ダイアログが表示され、次のオプションを設定できます。
- XPath: 選択した XPath を表示します。選択した XPath を編集して検証するには、 XPath テキストを編集してから [XPath の評価] をクリックします。そして [OK] をクリックします。
- 変更のタイプ: 入力した値が抽出を変更する方法を選択できます。後に付加: 変更した値が抽出の最後に追加されます。前に付加: 変更した値が抽出の先頭に追加されます。置換: 変更した値によって抽出全体が置換されます。
- 変更の値: データ ソースを使用して固定値またはパラメータライズされた値を指定できます。
- 空要素の抽出方法: 空の XML 要素を抽出するかどうかを指定します。このチェックボックスをオンにした場合、右側のテキスト フィールドで指定した文字列によって、抽出された要素の空コンテンツが置換されます。
- このオプションは、 XPath がテキスト コンテンツを持たないノードを示すときに適用されます。たとえば
<parent><child/></parent>では、 XPath//*[local-name()="child"]/text()は子ノードを見つけますが、テキストコンテンツはありません。 - このオプションを使用するには追加構成が必要です。 詳細については、「空要素 / 不足要素を処理して XML レスポンスの完全性を保持」を参照してください。
- このオプションは、 XPath がテキスト コンテンツを持たないノードを示すときに適用されます。たとえば
- 不足要素の抽出方法: 存在しない XML 要素を抽出するかどうかを指定します。このチェックボックスをオンにした場合、右側のテキスト フィールドで指定した文字列によって、抽出された要素の空コンテンツが置換されます。
- このオプションは XPath が一致するノードを見つけられなかったときに適用されます。例えば、次のような単純な XML ドキュメントが与えられた場合:
<parent><child>name</child></parent>, the XPath//*[local-name()="sibling"]would find 0 nodes. - このオプションを使用するには追加構成が必要です。 詳細については、「空要素 / 不足要素を処理して XML レスポンスの完全性を保持」を参照してください。
- このオプションは XPath が一致するノードを見つけられなかったときに適用されます。例えば、次のような単純な XML ドキュメントが与えられた場合:
- XML 出力の正規化: 抽出した XML 要素を正規化するかどうかを指定します。このオプションが有効であり、かつ要素全体が抽出された場合、同じ要素中で宣言されていない名前空間を参照する接頭辞が要素中にあると、必要な名前空間の宣言が抽出された要素に追加されます。
- Enclose each item on the outgoing list with: 該当する場合、送信リストの各項目を囲む文字を選択します。オプションには、一重引用符 (
') と二重引用符 (") があります。 - Delimiter for the outgoing list: 該当する場合、送信リストの区切り文字として使用する文字を選択します。オプションは、カンマ (
,) とパイプ (|) です。
