このセクションでは、XML Data Bank ツールの構成と適用方法について説明します。XML Data Bank ツールを使用すると、リクエスト メッセージやレスポンス メッセージから XML 値を抽出して他のツールで使用できます。抽出したデータは、書き込み可能なデータ ソースへ格納して Extension Tool で使用したり、変数に代入してテスト スイート間 (SOAtest) または レスポンダー スイート/アクション スイート間 (Virtualize) で再利用したりすることができます。
このセクションの内容:
XML Data Bank ツールとは
XML Data Bank ツールを使用すると、リクエスト メッセージやレスポンス メッセージから指定の XML 値を抽出し、他のツールで使用できます。 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 ツールを構成し、ひとつのツールからデータを抽出するようにします。そして別のツールを手動で構成し、抽出した値を使用できるようにします。
ビデオ チュートリアル
XML レスポンスから値を抽出し、他のテストで再利用する方法について説明します。
データ ソース ウィザードを使用した XML Data Bank ツールの構成
抽出の構成
データ ソース ウィザードを使用して XML Data Bank ツールを構成するには、次の操作を行います。
少なくとも 2 つのテスト ツールを持つ テスト スイートを用意します。
- 抽出した値を使用するツールのコンフィギュレーション パネルで、 [ビュー] ドロップダウン リストから利用可能なフォーム ビューを選択します。
- [操作] ドロップダウン リストから抽出した値を使用する操作を選択します。
- [要素] タブで、抽出した値を使用するメッセージ要素を選択します。 [パラメータライズ] を選択し、ドロップダウン リストから [データ ソース ウィザードの使用] を選択します。
- ウィザードでは次の操作を行います。
値を抽出したいツールを選択します。パネル上部のドロップダウン リストには、テスト スイート内の現在設定しているツールより前に存在するすべてのツールを表示します。たとえば、現在 Tool 4 を設定しているとすると、 Tool 1 、 2 、 3 がドロップダウン リストに表示されます。
- パネルの左側から抽出対象を選択し、 [追加] をクリックして右側に追加します。パネルの右側には、抽出の構成で設定した値と、格納先のデータ ソース列の名前が表示されます (デフォルト設定の場合)。
- (オプション) たとえば、値を格納する列の名前を変更するのに、値を書き込み可能なデータ ソースか既存の変数に保存したい場合があります。このような追加オプションを指定する場合、または XPath の拡張設定を修正する場合は右側の表から適切な要素を選択し、 [変更] をクリックします。 次に、必要に応じてオプションを設定し、 [OK] をクリックします。利用可能なオプションについては 「Options for Each Extracted Element」を参照してください。
XML Data Bank ツールの手動構成
レスポンダー スイート、アクション スイート、テスト スイートのツールに XML Data Bank ツールを手動で接続することもできます。XML Data Bank ツールを接続ツールとして構成するには、次の操作を行ってください。
少なくとも 2 つのテスト ツールを持つ テスト スイートを用意します。
抽出したい値と関連するツールのノードを右クリックし[出力の追加] をクリックします。
[出力の追加] ウィザードで、どこから値を抽出するか指定し (たとえば、 SOAP エンベロープ)、[終了] をクリックします。 XML Data Bank ノードがツールの下に表示されます。
- 次のようにツールを構成します。
抽出する値を示す XPath を指定します。 XPath を追加するには、 [期待されるメッセージ] リストから値を選択し、[要素の抽出] をクリックします。追加した値は、抽出した値と、その値に由来するツールの名前を含んだデータ ソース列名で [選択された要素] リストに表示されます。
期待されるメッセージの操作
左側のパネルは、要素を選択できるテンプレートの作成に使用された、期待される XML レスポンスを表示します。このツールが (たとえばトラフィックから、あるいは連結先のクライアント ツールで定義されて) 正常な XML メッセージを受信する場合、このパネルに自動的にデータが投入されます。代わりに、サンプル メッセージを [リテラル] タブや [ツリー] タブにコピーすることも可能です。注意: 期待される XML はデフォルトでは保存されませんが、保存したい場合は、[期待される XML を保存] オプションをオンにします。XPath をさらに構成したい場合またはこの要素の抽出設定をカスタマイズしたい場合は、 [修正] をクリックして修正します。詳細については、「Options for Each Extracted Element」 を参照してください。
- 抽出を追加するには、 a と b の手順を繰り返してください。
- 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 の評価: [XPath の評価] をクリックすると期待される XML に対する XPath 式の適用結果を表示します。
データ ソース列オプション
カスタム列名: 値を格納するデータ ソース列の名前を表示します。[書き込み可能なデータ ソースの列] や [変数] を指定しない限り、値は SOAtest の内部データ ソースとして格納されます。このカスタム列名を指定して、格納されている情報を他のツールから参照できます。たとえば、My Value というデータ ソース列にデータを格納する場合、パラメータライズされた値として My Value を選択します。また、 ${My Value} とすれば、リテラルまたは複数のレスポンス ビューで参照できます。
書き込み可能なデータ ソース列: 値を書き込み可能なデータ ソース列に格納します (詳細は 「書き込み可能なデータ ソースの構成」 を参照してください)。このオプションを使用すると、値の配列を 1 列で 格納できます。他のツールは格納された値を繰り返し使用できます。
一致するすべての列に書き込む: 列名に任意の文字列を含むすべての列に値を格納できます。メッセージから複数の値を抽出する場合、値は一致するすべての列で 1 つの行に書き込まれ、各値は異なる列に置かれます。一致する列の数よりも多くの値が抽出された場合、一致する列の数が値の数よりも少ないため、一部の値は書き込まれません。対照的に、その上の [書き込み可能なデータ ソースの列] を選択した場合、値は複数の行にまたがる列に書き込まれます。
変数: 値を指定の変数に格納するので、現行のレスポンダー スイート、アクション スイート、テスト スイートで再利用できます。次で説明するように、変数は現行のテスト スイートに追加されている必要があります: 「SOAtest での変数の定義」 変数に代入された値は、レスポンダー スイート、アクション スイート、またはテスト スイートのプロパティ パネルで指定されたローカル変数の値を上書きします。
ツール全体の抽出オプション
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
関連するチュートリアル
以下のチュートリアルでこのツールの使い方を説明しています。