このセクションでは、 JSON Data Bank ツールの設定および適用方法について説明します。JSON Data Bank ツールは、リクエスト メッセージやレスポンス メッセージから JSON の値を抽出して別の場所で使用できるようにします。データは書き込み可能なデータ ソースに送られて Extension Tool でアクセスできたり、変数に送られてレスポンダー スイートまたはアクション スイート間での再利用を簡単にしたりします。
セクションの内容:
移行に関する注意事項
JSON Data Bank ツールはバージョン 9.7 で再実装されました。以前の実装は廃止予定です。既存のツールは引き続き動作しますが、ユーザーが追加する新しい JSON Data Bank は新しい実装を使用します。
このセクションでは、現在の JSON Data Bank 実装に焦点を当てています。非推奨の JSON Data Bank の詳細については「JSON Data Bank (非推奨)」を参照してください。
JSON Data Bank ツールとは
JSON Data Bank ツールは、リクエスト メッセージやレスポンス メッセージから JSON の値を抽出して別の場所で使用できるようにします。JSON Data Bank ツールは、 JSON を出力する他のツールに連結できます。JSON から情報を抽出し、以降のテストで使用できます。
たとえば、銀行のサービス トランザクションをテストするテスト スイートを設定するとします。テスト スイートの Test 1 は、User ID を使用してサービスにログオンし、JSON レスポンスによって Test 1 にセッション ID が返されます。テスト スイートの Test 2 は、Test 1 で取得したセッション ID を使用して実行するよう設定できます。テスト スイート内の任意のテストで JSON レスポンス パラメーターを JSON リクエスト パラメーターとして使用できます。
よくある例としては、REST Client や Messaging Client などのツールで値をパラメータライズする場合に SOAtest の [データ ソース ウィザードの使用] で JSON Data Bank を設定します。これにより、すばやく、簡単に、そして大部分が自動化された方法で、あるツールからデータを抽出し、別のツールでそのデータを利用することができます。抽出されたデータを挿入したいツールに移動し、ウィザードを使用して抽出するデータ (抽出元のツールなど) を指定するだけです。「Storing Results to Be Used in Subsequent Tests」チュートリアルでは、このような利用モデルについて説明しています。同じ方法で、抽出したデータを変数に設定できます。あるいは、手動で JSON Data Bank ツールを設定して、あるツールからデータを抽出し、別のツールを手動で設定して、抽出された値を使用することもできます。
Virtualize では、 JSON Data Bank を使用して、たとえば 受信リクエストから値を抽出し、リクエスト受信時に送信するレスポンスの要素を設定する際にその値を使用できます。ウィザードを使用してトラフィックから仮想アセットを作成するときに、自動的に JSON Data Bank を設定できます。さらに、[データ ソース ウィザードの使用] で値を抽出し、レスポンス内のパラメータライズされた値として使用することもできます。メッセージ レスポンダーの場合、受信リクエスト (ボディまたはヘッダー) の値を抽出できます。他のツール (アクション スイートで使用されるツールなど) の場合、スイート内の別のツールの値を抽出できます。別のオプションとして、既存のツールの出力として、任意のデータを抽出する JSON Data Bank を手動で追加し、抽出された値を使用するために他のツールを構成します。
動画チュートリアル
この動画では、JSON レスポンスから値を抽出し、他のテストで再利用する方法を学びます。
データ ソース ウィザードを使用した JSON Data Bank の設定
抽出の設定
JSON Data Bank を設定するために [データ ソース ウィザードの使用] を使用するには、次の操作を行います。
(メッセージ レスポンダーと一緒に使用することはできません) テスト スイートに少なくとも 2 つツールがあることを確認します。
- 抽出した値を使用したいツールのコンフィギュレーション パネルで、利用可能なフォーム ビューを選択します。
- 抽出した値を使用したいメッセージ要素に移動し、ドロップダウン メニューから [パラメータライズド] および [データ ソース ウィザードの使用] を選択します。
- ウィザードが開くので、次の操作を行います。
- 値を抽出したいツールを選択します。パネル上部のドロップダウン メニューには、現在構成しているツールより前にあるテスト スイート内のすべてのツールが含まれます。たとえば、ツール 4 を構成している場合は、ツール 1、 2、 3 が利用可能なデータ ソースとともにメニューに表示されます。
メッセージ レスポンダーでは、値を抽出したい着信リクエスト メッセージを選択し、値をメッセージ ボディから抽出するかメッセージ ヘッダーから抽出するかを指定します。[期待されるメッセージ] で、抽出したい要素を選択して [追加] をクリックします。右側のパネルには、抽出のために設定した値のリストが表示されるほか、デフォルト設定のままにした場合、格納されるデータ ソース列名が表示されます。
後でオプションを指定する場合 (たとえば、値を格納するために使用する列の名前を変更したい場合、書き込み可能なデータ ソースに値を保存したい場合、あるいは既存の変数に値を格納したい場合)、または参照される要素の詳細設定を変更したい場合、右側の表で適切な要素を選択し、[変更] をクリックします。そして、必要に応じてオプションを設定して [OK] をクリックします。
追加オプションを設定するためにこのダイアログを使用する方法については、「JSON Selector のリファレンス」を参照してください。
手動で JSON Data Bank を設定
テスト スイート、レスポンダー スイートまたはアクション スイート内のツールに手動で JSON Data Bank ツールを連結することも可能です。連結されたツールとして JSON Data Bank を設定するには、次の操作を行います。(メッセージ レスポンダーと一緒に使用することはできません)
テスト スイートに少なくとも 2 つツールがあることを確認します。
抽出したいデータのあるツールのノードを右クリックし、(たとえば、着信リクエストや送信レスポンスから値を抽出したい場合、それらのメッセージを処理するメッセージ レスポンダーを選択します)、ショートカットメニューの [出力の追加] をクリックします。
[出力の追加] ウィザードで、どこから値を抽出したいか(例: 着信リクエスト、トランスポート ヘッダー、着信添付ファイル、送信レスポンス、など)を選択し、ツールのリストから JSON Data Bank を選択して [終了] ボタンをクリックします。JSON Data Bank ノードがツールの下に表示されます。
- 次のようにツールを設定します。
抽出したい要素を指定します。要素を抽出するには、 JSON ツリーから値を選択して [要素の抽出] ボタンをクリックします。追加した値は、値に由来するツールの名前を含んだデータ ソース列名と抽出した値とともに、 [選択された要素] のリストに表示されます。
抽出によって参照される要素を後で変更したい場合、[修正] をクリックして変更します。詳細については「JSON Selector のリファレンス」を参照してください。
- 実行したい抽出をさらに設定するには、必要に応じてステップ a と b を繰り返します。
- JSON Data Bank のコンフィギュレーション パネル下部で、必要に応じてオプションをカスタマイズします。詳細については、「ツールのオプション」を参照してください。
抽出した情報の使用
抽出を追加あるいは変更したら、抽出された値を使用するツールを設定します。
[パラメータライズ] を選択し、ドロップダウンから適切なアイテムを選択します。たとえば、データ ソース列「title」に値を保存した場合は、次のように選択します。
ツールのオプション
JSON Data Bank ツールのコンフィギュレーション パネル下部で、次のオプションが構成できます。
- 期待される JSON の保存: 期待される JSON を保存するかどうかを指定します。
- 変更を許可: 抽出の変更を許可するかどうかを指定します。このオプションがオンの場合、 [選択された要素] の下に [抽出] タブと [変更] タブが表示されます。抽出を変更するには、 [変更を許可] チェックボックスを選択し、 [変更] タブを選択して、[要素の抽出] ボタンをクリックして抽出を追加します。その後、[変更] ボタンをクリックして抽出を変更します。次のオプションを含む [変更] ダイアログが表示されます。
XPath: 選択された XPath を表示します。詳細については「JSON Selector のリファレンス」を参照してください。
- 変更のタイプ: 入力する値が JSON を変更する方法を選択できます。後に付加: 変更した値が抽出の最後に追加されます。前に付加: 変更した値が抽出の先頭に追加されます。置換: 変更した値によって抽出全体が置換されます。
- 変更の値: データ ソースを使用して固定値またはパラメータライズされた値を指定できます。
- 空要素の抽出方法: 空の要素を抽出するかどうかを指定します。このオプションが有効な場合、隣のテキスト フィールドで、空の抽出要素の代わりに「プレースホルダー」として追加するテキスト文字列を指定できます。
- 抽出された要素が空文字列の場合に適用されます。たとえば、JSON { "name": "" } は "name" に空文字列を持ちます。
- このオプションを使用するには追加設定が必要です。詳細については、「JSON レスポンスの整合性を維持するために空要素/不足要素を処理する」を参照してください。
- 不足要素の抽出方法: 存在しない要素を抽出するかどうかを指定します。このオプションが有効な場合、隣のテキスト フィールドで、存在しない抽出要素の代わりに「プレースホルダー」として追加するテキスト文字列を指定できます。
- このオプションは、抽出が一致するノードを見つけられなかった場合に適用されます。
- このオプションを使用するには追加設定が必要です。詳細については、「JSON レスポンスの整合性を維持するために空要素/不足要素を処理する」を参照してください。
テスト実行中に使用された Data Bank 変数の参照
コンソール ビューにテスト実行中に使用された Data Bank 変数を表示できます。コンソール ビューは [ウィンドウ] メニューの [ビューの表示] > [コンソール] から表示できます。詳細は「変数の使用状況をモニタリング」を参照してください。
JSON レスポンスの整合性を維持するために空要素/不足要素を処理する
デフォルトでは、空要素および不足要素は抽出されません。このことは、書き込み可能なデータ ソースで使用する JSON レスポンスの整合性に影響します。
たとえば、次の JSON があるとします。
{
"e":
5,
"e":
"",
"e":
6
}
また、すべての'e'
要素に抽出を作成したいと仮定します。これを行うには、最初の要素を選択し、[要素の抽出] をクリックします。
次に、新しい抽出を選択して [修正] をクリックします。
修正ダイアログで、抽出する XPath を /root/e[1]/text()
から /root/e/text()
に変更します。
そうすることで、 3 つすべてのテキストノードが抽出されます。
次に、データ ソース列をクリックして書き込み可能なデータ ソース列を選択します。 2 番目の要素はテキストが不足しているので、 Data Bank が実行されるとき、書き込み可能なデータ ソースはには 2 行しかありません。
ROW 1 = 5
ROW 2 = 6
空の値を書き込みたい場合は、 XPath を /root/e/text()
から /root/e
に変更して、 [内容のみ] が有効であることを確認します。
この方法で、 3 要素すべてが内容を含め抽出されます。空の値のために抽出された値を変更するためのオプションとして、任意で [空要素の抽出] を有効にできます。Data Bank は書き込み可能なデータ ソースに空の値を追加します。
ROW 1 = 5
ROW 2 =
ROW 3 = 6