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