このセクションでは、XML Data Bank ツールの構成と適用方法について説明します。XML Data Bank ツールは、リクエスト メッセージやレスポンス メッセージから JSON の値を抽出して別の場所で使用できるようにします。抽出したデータは、書き込み可能なデータ ソースへ格納して Extension Tool で使用したり、変数に代入してテスト スイート間 (SOAtest) または レスポンダー スイート/アクション スイート間 (Virtualize) で再利用したりすることができます。

このセクションの内容:

XML Data Bank ツールとは

XML Data Bank ツールは、リクエスト メッセージやレスポンス メッセージから JSON の値を抽出して別の場所で使用できるようにします。XML Data Bank ツールは、 XML を出力する任意のツールに接続できます。 XML Data Bank ツールは、 XML から任意の情報を抽出し、今後のテストで使用できるようにします。

たとえば、銀行の Web サービス トランザクションをテストするテスト スイートを構成するとします。このテスト スイートの Test 1 が ユーザー ID を使ってサービスにログオンすると、 SOAP レスポンスは Test 1 にセッション ID を返します。Test 2 は Test 1 のセッション ID を使用してトランザクションを実行するように構成できます。テスト スイート中の任意のテストで、 SOAP レスポンス パラメーターを SOAP リクエスト パラメーターとして使用するように構成できます。

XML Data Bank ツールは、通常データ ソース ウィザードを使って構成します。値は SOAP Client ツールや Messaging Client ツールでパラメータライズします。データ ソース ウィザードを使用するのは、あるツールからデータを抽出して別のツールで使用するために、迅速で、直感的で、大部分が自動化された方法です。抽出されたデータを挿入したいツールに移動し、ウィザードを使用して抽出するデータ (抽出元のツールなど) を指定するだけです。「Storing Results to Be Used in Subsequent Tests」チュートリアルでは、このような利用モデルについて説明しています。これと同じ手法で、変数にセットするためのデータを抽出できます。あるいは、手動で XML Data Bank ツールを構成し、ひとつのツールからデータを抽出するようにします。そして別のツールを手動で構成し、抽出した値を使用できるようにします。

Virtualize では、たとえば、着信リクエストから値を抽出し、そのリクエストに対するレスポンスの要素として使用することもできます。XML Data Bank は、ウィザードを使用してトラフィックからの仮想アセットを作成する際に自動で設定できます。さらに、[データ ソース ウィザードの使用] ウィザードを使用すると、抽出した値をパラメーター値としてレスポンスで使用できます。メッセージ レスポンダーでは、着信リクエストのボディやヘッダーから値を抽出できます。アクション スイートで使用されるツールでは、スイート中の他のツールから値を抽出できます。その他のオプションとしては、XML Data Bank ツールを既存のツールの出力先として手動で追加し、必要なデータを抽出するように設定します。そして抽出したデータを使用するように他のツールを設定します。

ビデオ チュートリアル

XML レスポンスから値を抽出し、他のテストで再利用する方法について説明します。

データ ソース ウィザードを使用した XML Data Bank ツールの構成

抽出の構成

データ ソース ウィザードを使用して XML Data Bank ツールを構成するには、次の操作を行います。

  1. (メッセージ レスポンダーでの使用には適用されません) 少なくとも 2 つのテスト ツールを持つ テスト スイートを用意します。

  2. 抽出した値を使用するツールのコンフィギュレーション パネルで、 [ビュー] ドロップダウン リストから利用可能なフォーム ビューを選択します。
  3. [操作] から、抽出した値を使用する操作を選択します。
  4. [要素] タブで、抽出した値を使用するメッセージ要素を選択します。 [パラメータライズ] を選択し、[データ ソース ウィザードの使用] を選択します。
  5. ウィザードでは次の操作を行います。
    1. 値を抽出したいツールを選択します (アクション スイート ツールの場合)。パネル上部のメニューには、現在構成しているツールより前にある、テスト スイートまたはレスポンダー スイートのすべてのツールが表示されます。たとえば、現在 Tool 4 を設定しているとすると、 Tool 1 、 2 、 3 がドロップダウン リストに表示されます。

    2. メッセージ レスポンダーでは、値を抽出したい着信リクエスト メッセージを選択し、値をメッセージ ボディから抽出するかメッセージ ヘッダーから抽出するかを指定します。

    3. パネルの左側から抽出対象を選択し、 [追加] をクリックして右側に追加します。右側のパネルには、抽出のために設定した値のリストが表示されるほか、デフォルト設定のままにした場合、格納されるデータ ソース列名が表示されます。
    4. (オプション) さらにオプションを指定したい場合 (たとえば、値を格納するために使用する列の名前を変更したい場合、書き込み可能なデータ ソースに値を保存したい場合、あるいは既存の変数に値を格納したい場合)、または XPath の詳細設定を変更したい場合、右側の表で適切な要素を選択し、[変更] をクリックします。次に、必要に応じてオプションを設定し、 [OK] をクリックします。利用可能なオプションについては 「Options for Each Extracted Element」を参照してください。

XML Data Bank ツールの手動構成

レスポンダー スイート、アクション スイート、テスト スイートのツールに XML Data Bank ツールを手動で接続することもできます。XML Data Bank ツールを接続ツールとして構成するには、次の操作を行ってください。

  1. (メッセージ レスポンダーでの使用には適用されません) 少なくとも 2 つのテスト ツールを持つ テスト スイートを用意します。

  2. 抽出したい値と関連するツールのノードを右クリックし (たとえば、着信リクエストか発信レスポンスから値を抽出したい場合、それらのメッセージを扱うメッセージ レスポンダーを選択します)[出力の追加] をクリックします。

  3. [出力の追加] ウィザードで、どこから値を抽出したいか (例: SOAP エンベロープ、着信リクエスト、トランスポート ヘッダー、着信添付ファイル、送信レスポンスなど)、[終了] をクリックします。 XML Data Bank ノードがツールの下に表示されます。

  4. 次のようにツールを構成します。
    1. 抽出する値を示す XPath を指定します。 XPath を追加するには、 [期待されるメッセージ] リストから値を選択し、[要素の抽出] をクリックします。追加した値は、値に由来するツールの名前を含んだデータ ソース列名と抽出した値とともに、 [選択された要素] のリストに表示されます。

       デフォルトでは、XPath フィールドは大文字と小文字を区別しますが、Virtualize の起動時に適切なシステム プロパティを指定することにより、大文字と小文字の区別を変更できます。詳細については「大文字と小文字の区別」を参照してください。

      期待されるメッセージの操作

      左側のパネルは、要素を選択できるテンプレートの作成に使用された、期待される XML レスポンスを表示します。このツールが (たとえばトラフィックから、あるいは連結先のクライアント ツールで定義されて) 正常な XML メッセージを受信する場合、このパネルに自動的にデータが投入されます。代わりに、サンプル メッセージを [リテラル] タブや [ツリー] タブにコピーすることも可能です。注意: 期待される XML はデフォルトでは保存されませんが、保存したい場合は、[期待される XML を保存] オプションをオンにします。
    2. XPath をさらに構成したい場合またはこの要素の抽出設定をカスタマイズしたい場合は、 [修正] をクリックして修正します。詳細については「Options for Each Extracted Element」を参照してください。

    3. 抽出を追加するには、 a と b の手順を繰り返してください。
    4. XML Data Bank コンフィギュレーション パネルの下部で、必要に応じてオプションをカスタマイズできます。詳細については「Tool-Wide Extraction Options」を参照してください。

抽出した値の使用

抽出を追加あるいは修正したら、抽出したデータを使用するツールを構成します。

[パラメータライズ] を選択し、メニューから適切なアイテムを選択します。たとえば、 "title" データ ソース列に値を保存した場合、次のように選択します。

構成オプション

XML Data Bank ツールを構成する際、次のオプションも設定できます。

抽出した各要素のオプション

以下のオプションは、XML Data Bank ツールの設定パネル右側に表示されている選択を変更することで設定できます。

XPath オプション

  • XPath: 抽出する値の XPath を表示します。 より一般的な XPath を求めている場合、リスト インデックスに異なる番号を入力します。たとえば、 2 番目のオカレンスのみ抽出したい場合は example [1] を [2] に変更します。XPath テキストの編集が終わったら、 [XPath の評価] をクリックして XPath 書式を検証し、 [OK] をクリックします。
  • 抽出: 抽出する値を指定します。
    • 要素全体: XPath 全体を出力します。たとえば、 XPath/Parent は <parent>VALUE</parent> を出力します。[抽出要素のインデックス] オプションを設定して、要素が 2 回以上発生している場合にどの要素を抽出するか指定することができます。
    • 内容のみ: 値のみを出力します。たとえば、 XPath/Parent は VALUE を出力します。[テキスト内容] オプションを選択すると、選択した要素のテキスト コンテンツを抽出します。 [すべての子ノード] オプションを選択すると、選択した要素のすべての子ノードを抽出します。
  • XPath Evaluation: [XPath の評価] をクリックすると、期待する XML に対して XPath 式を適用した結果を表示します。

データ ソース列オプション

  • カスタム列名: 値を格納するデータ ソース列の名前を表示します。特に指定しない限り、値は内部データ ソースに格納されます (たとえば [書き込み可能なデータ ソースの列] または [変数] を選択する場合)。このカスタム列名を指定して、格納されている情報を他のツールから参照できます。たとえば、My Value というデータ ソース列にデータを格納する場合、パラメータライズされた値として My Value を選択します。また、 ${My Value} とすれば、リテラルまたは複数のレスポンス ビューで参照できます。

  • 書き込み可能なデータ ソースの列: 値を書き込み可能なデータ ソース列に格納します (詳細は 「書き込み可能なデータ ソースの構成」 を参照してください)。このオプションを使用すると、値の配列を 1 列で 格納できます。他のツールは格納された値を繰り返し使用できます。

  • 一致するすべての列に書き込む: 列名に任意の文字列を含むすべての列に値を格納できます。メッセージから複数の値を抽出する場合、値は一致するすべての列で 1 つの行に書き込まれ、各値は異なる列に置かれます。一致する列の数よりも多くの値が抽出された場合、一致する列の数が値の数よりも少ないため、一部の値は書き込まれません。対照的に、その上の [書き込み可能なデータ ソースの列] を選択した場合、値は複数の行にまたがる列に書き込まれます。

  • 変数: 値を指定の変数に格納するので、現行のレスポンダー スイート、アクション スイート、テスト スイートで再利用できます。次で説明するように、変数は現行のテスト スイートに追加されている必要があります:  「SOAtest での変数の定義」または「Virtualize での変数の定義」 変数に代入された値は、レスポンダー スイート、アクション スイート、またはテスト スイートのプロパティ パネルで指定されたローカル変数の値を上書きします。

ヘッダーには、ヘッダー名のみならず上にリストされているデータ ソース列オプションも設定できます。

ツール全体の抽出オプション

XML Data Bank ツールのコンフィギュレーション パネル下部では、以下のオプションを構成できます。

  • 期待される XML の保存: 期待される XML を保存するかどうかを指定します。
  • XML 出力の正規化: 抽出した XML 要素を正規化するかどうかを指定します。このオプションが有効であり、かつ要素全体が抽出された場合、同じ要素中で宣言されていない名前空間を参照する接頭辞が要素中にあると、必要な名前空間の宣言が抽出された要素に追加されます。
  • 変更を許可: XPath の変更を許可するかどうかを指定します。このオプションが有効な場合、 [選択された要素] の下に [抽出] タブと [変更] タブが表示されます。XPath を変更するには、[変更を許可] を有効にして [変更] タブをクリックし、 [要素の抽出] ボタンをクリックして XPath を追加します。そして [修正] ボタンをクリックします。[選択した XPath の変更] ダイアログが表示され、次のオプションを設定できます。
    • XPath: 選択した XPath が表示されます。選択した XPath を編集して検証するには、 XPath テキストを編集してから [XPath の評価] をクリックします。そして [OK] をクリックします。
    • 変更のタイプ: 入力した値が抽出を変更する方法を選択できます。後に付加: 変更した値が抽出の最後に追加されます。前に付加: 変更した値が抽出の先頭に追加されます。置換: 変更した値によって抽出全体が置換されます。
    • 変更の値: データ ソースを使用して固定値またはパラメータライズされた値を指定できます。
  • 空要素の抽出方法: 空の XML 要素を抽出するかどうかを指定します。このチェックボックスをオンにした場合、右側のテキスト フィールドで指定した文字列によって、抽出された要素の空コンテンツが置換されます。
    • このオプションは、 XPath がテキスト コンテンツを持たないノードを示すときに適用されます。たとえば <parent><child/></parent> では、 XPath //*[local-name()="child"]/text() は子ノードを見つけますが、テキストコンテンツはありません。
    • このオプションを使用するには追加構成が必要です。 詳細については、「空要素 / 不足要素を処理して XML レスポンスの完全性を保持」を参照してください。
  • 不足要素の抽出方法: 存在しない XML 要素を抽出するかどうかを指定します。 このチェックボックスをオンにした場合、右側のテキスト フィールドで指定した文字列によって、抽出された要素の空コンテンツが置換されます。
    • このオプションは XPath が一致するノードを見つけられなかったときに適用されます。たとえば、 <parent><child>name</child></parent> という XML 文書では、 XPath //*[local-name()="sibling"] はノードを見つけられません。
    • このオプションを使用するには追加構成が必要です。 詳細については、「空要素 / 不足要素を処理して XML レスポンスの完全性を保持」を参照してください。

テスト中に使用された Data Bank 変数の参照

コンソール ビューにテスト実行中に使用された Data Bank 変数を表示できます。コンソール ビューは [ウィンドウ] メニューの [ビューの表示] > [コンソール] から表示できます。詳細は「変数の使用状況をモニタリング」を参照してください。

XPath のパラメータライズ

XPath をパラメータライズし、テスト変数、環境変数、データ ソース値を参照できます。変数を参照するための構文は、${myVariableName} です。XML Data Bank の値と XML Data Source の値を参照する構文は ${myColumnName} です。${myColumnName} です。

たとえば、データ ソース列名が ${XPath Key} の場合、次の構文を使用できます。

/*[local-name(.)="bookstore" and namespace-uri(.)=""]/*[local-name(.)="book"

および

namespace-uri(.)=""][child::node()[local-name(.)="title" and text()="${XPath Key}"]]

空要素 / 不足要素を処理して XML レスポンスの完全性を保持

デフォルトでは、空要素と不足要素は抽出されません。したがって、書き込み可能なデータ ソースで使用する XML レスポンスの完全性に影響をあたえる可能性があります。

たとえば、次の XML があるとします。

<?xml version="1.0" encoding="UTF-8"?>
<root>
	<e>5</e>
	<e/>
	<e>6</e>
</root>

さらに、すべての「e」要素に抽出を作成したいと仮定します。これを行うには、最初の要素を選択し、[要素の抽出] をクリックします。

次に、新しい抽出を選択して [修正] をクリックします。  

変更ダイアログで、 抽出する XPath を /root/e[1]/text() から /root/e/text() に変更します。

すべてのツリー ノードが抽出されるようになります。

次に、 [データ ソース列] をクリックして [書き込み可能なデータ ソースの列] を選択します。データ バンクが実行されるとき、2 つ目の要素はテキストがないため、書き込み可能なデータ ソースには 2 つの行しか含まれません。

ROW 1 = 5
ROW 2 = 6

空の値を書き込みたい場合は、 XPath を /root/e/text() から /root/e に変更して、[内容のみ] を選択します。

この方法で、内容を含むすべてのツリー要素が抽出されます。任意で [空要素の抽出方法] をオンにし、空の値から抽出された値を変更できます。以上で、 Data Bank は書き込み可能なデータ ソースに空の値を追加するようになります。

ROW 1 = 5
ROW 2 =
ROW 3 = 6

関連するチュートリアル

以下のチュートリアルでこのツールの使い方を説明しています。

  • No labels