このセクションでは、SOAtest/Virtualize において JSON Assertor および JSON Data Bank ツールで JSON 要素を選択するためのヒントを提供します。 このセクションの内容:
Table of Contents | ||
---|---|---|
|
要素の変更
JSON を扱いノードを選択するために、SOAtest/Virtualize は XML DOM を内部に構成してノードの選択に XPath を使用します。 XML 構造は JSON 構造に非常に厳密に一致します。次の場合を除き、すべての名前と値は等しいです。
ドキュメントのルート ノードは XPath では「root」と呼ばれますが、JSON ドキュメントではオブジェクトや配列のリファレンスです。 SOAtest と Virtualize の JSON ツリーでは
{}
や[]
として表されます。配列のアイテムは XPath では「item」と呼ばれますが、 JSON ドキュメントでは配列の要素であるという性質から名前がありません。 SOAtest と Virtualize の JSON ツリーでは
[0]
、[1]
などとして表されます。XML 要素名で不正である文字を含む JSON 名は、 XPath での使用において正当である XML 要素名を作成するために変換されます。 SOAtest と Virtualize の JSON ツリーは、 JSON ドキュメントにある通りの、元の名前を表示します。
JSON ツリーのノードを選択すると、SOAtest と Virtualize は関連する XPath も作成します。 手動で XPath を構成する必要があるが、 どのノード名を XPath で使用すればよいか分からない場合、 JSON ツリーを使用してノードを選択することをお勧めします。そうすることで XPath が生成されるので、その後レビューして特定のニーズに合うように変更できます。
選択した XPath の設定の変更
[要素の変更](JSON Assertor) または [編集](JSON Data Bank) をクリックして開くダイアログでは、次のオプションが利用可能です。
[選択された XPath] オプション
- XPath: 抽出する値の XPath を表示します。より一般的な XPath を求めている場合、リスト インデックスに異なる番号を入力します。たとえば、 2 番目のオカレンスのみ抽出したい場合は example [1] を [2] に変更します。XPath テキストの編集が終わったら、 [XPath の評価] をクリックして XPath 書式を検証します。
- 抽出: 抽出する値を指定します。
- 要素全体: XPath 全体を出力します。たとえば、 XPath/Parent は <parent>VALUE</parent> を出力します。このオプションを選択すると、次の [抽出要素のインデックス] オプションを設定できます。デフォルト値は 1 です。このオプションは、要素が 2 回以上発生した場合にどの要素を抽出するかを制御します。
- 内容のみ: [内容のみ] を選択すると、値のみを出力します。たとえば、 XPath/Parent は VALUE を出力します。[テキスト内容] オプションを選択すると、選択した要素のテキスト コンテンツを抽出します。 [すべての子ノード] オプションを選択すると、選択した要素のすべての子ノードを抽出します。
- XPath の評価: [XPath の評価] をクリックすると期待されるメッセージに対する XPath 式の適用結果を表示します。
[データ ソース列] オプション (Data Bank のみ)
- カスタム列名: 値を格納するデータ ソース列の名前を表示します。特に指定しない限り、値は内部データ ソースに格納されます (たとえば [書き込み可能なデータ ソースの列] または [変数] を選択する場合)。このカスタム列名を指定して、格納されている情報を他のツールから参照できます。たとえば、My Value というデータ ソース列にデータを格納する場合、パラメータライズされた値として My Value を選択します。また、 ${My Value} とすれば、リテラルまたは複数のレスポンス ビューで参照できます。
書き込み可能なデータ ソース列: 書き込みできるデータ ソース列に値を格納します (詳細については「書き込み可能なデータ ソースの構成 」を参照)。 値の配列を格納できます。他のツールは格納された値を繰り返し使用できます。
- 一致するすべての列に書き込む: 列名に任意の文字列を含むすべての列に値を格納できます。あるメッセージから複数の値を抽出する場合、各値は、一致するすべての列に書き込まれます。対照的に、その上の [書き込み可能なデータ ソースの列] を選択した場合、値は複数の行にまたがる列に書き込まれます。
変数: 指定の変数に値を保存して、現在のテスト スイート、レスポンダー スイート、またはアクション スイートで再利用できるようにします。 「SOAtest での変数の定義」や「Virtualize での変数の定義」で説明されているように、変数は現行のテスト スイート に追加されている必要があります。 この方法で設定された値は、スイート プロパティ パネルで指定されたローカル変数の値を上書きします。
ヘッダーには、ヘッダー名のみならず上にリストされているデータ ソース列オプションも設定できます。
XPath のパラメータライズ
XPath をパラメータライズし、テスト スイートまたはレスポンダー スイートの変数、環境変数、データ ソース値を参照できます。変数を参照するための構文は、${myVariableName} です。Data Bank の値と XML Data Source の値を参照する構文は ${myColumnName} です。
たとえば、データ ソース列名が ${XPath Key} の場合、次の構文を使用できます。
/*[local-name(.)="bookstore" and namespace-uri(.)=""]/*[local-name(.)="book" and namespace-uri(.)=""][child::node()[local-name(.)="title" and text()="${XPath Key}"]]]