1 つのツールから値を抽出することで、仮想アセットなどのツールをパラメータライズし、別のツール (または同じツール内) で使用できます。この操作は以下などのツールで実行可能です:
- XML Data Bank
- Header Data Bank
- JSON Data Bank
- Text Data Bank
- 書き込み可能データ ソース (詳細については、「書き込み可能データ ソースの設定」に記載)
たとえば、レスポンス メッセージの値の 1 つを着信リクエストからの値でパラメータライズしたい場合、そのフィールドを [パラメータライズ] に設定します。
そして、データ ソース ウィザードを使用して、test 1 の id 要素の値を使用することを指定します (この値は、テスト スイートに自動的に追加される XML Data Bank ツールに格納されます)。
以下のセクションでは、テストからテストへの値を受け渡すための 2 種類の方法を説明します。 テストからテストへの値の受け渡しに加えて、次の方法で値を渡すことが可能です:
- 変数を通して: 変数は、ツール エディターで、すべてのまたは一部のテキスト フィールドの値をパラメータライズするのに使用できます。たとえば、テキスト フィールドは環境変数、データ ソース列、データ バンク列、または現在のスイートで定義された変数を参照できます。詳細については、「変数によるツールのパラメータライズ」を参照してください。
- スクリプトを通して: これは主に、文字列の他にオブジェクトの型を渡す必要がある場合に使用されます。これらの値にはスクリプト経由でしかアクセスできません。 com.parasoft.api.Context get(String) と put(String, Object) を使用します。 詳細については「スクリプトを使用した拡張機能の基礎」を参照してください。
テスト間で値を渡す
Parasoft SOAtest では、次の 2 つの方法でテストを連結できます (つまり、1 つのテストの値を後続の別のテストで使用できるようにします)。
データ バンクの使用: 1 回の実行のために値をキャプチャする
この方法は、1 つのテスト実行結果の値だけを抽出し、後続のテストで再利用するという、単純なケースで使用します。
たとえば、銀行の Web サービス トランザクションをテストするテスト スイートを構成するとします。 このテスト スイートの Test 1 が ユーザー ID を使ってサービスにログオンすると、 SOAP レスポンスは Test 1 にセッション ID を返します。 Test 2 は Test 1 のセッション ID を使用してトランザクションを実行するように構成できます。テスト スイート中の任意のテストで、 SOAP レスポンス パラメーターを SOAP リクエスト パラメーターとして使用するように構成できます。
このケースでのテスト シナリオは、次のようになります。
- テスト 1: ログオンと ID の取得
- XML Data Bank: ユーザー ID の抽出
- テスト 2: ID を使用してサービス 1 を呼び出し
- テスト 3: ID を使用してサービス 2 を呼び出し
- ...
この場合、テスト スイートが実行されるたびに異なる ID が使用されますが、シナリオ実行ごとに 1 つの ID しか使用されないものと仮定します。
同じ原則がすべての SOAtest データ バンク ツール (XML、Browser、Header、JSON、Object、Text) に適用されることに注意が必要です。単一の値を任意のデータ バンク ツールに抽出し、後続のテストで値を使用することができます (パラメータライズされた値として、またスクリプトで com.parasoft.api.ScriptingContext.getValue(String, String) を使用して)。 抽出された値は String として格納されます。
この機能は、さまざまなカスタマイズのニーズに応えられるよう設計されています。上記の例は、応用のほんの一例です。
書き込み可能なデータ ソースでデータ バンクを使用: 複数の実行で反復するために値をキャプチャする
この方法は、数があらかじめ決まっていない値のリストを抽出し、抽出された値の数だけテストまたはテスト スイートを繰り返し実行する必要がある場合に便利です。以下のテスト シナリオがあるものとします:
- データ ソース:
- 書き込み可能データ ソース: 抽出されたユーザー ID
- セットアップ テスト: ユーザー ID を取得
- XML Data Bank: ユーザー ID を抽出して書き込み可能データ ソースに書き込み
- テスト 1: 抽出された ID を使用して サービス 1 を呼び出し (「抽出されたユーザー ID」でパラメータライズ)
- テスト 2: 抽出された ID を使用して サービス 2 を呼び出し (「抽出されたユーザー ID」でパラメータライズ)
- …
この場合、「ユーザー ID を取得」テストは、呼び出されたサービスがユーザー ID のリスト (連続) を返すものと仮定します。ユーザー ID が抽出され、書き込み可能データ ソース列に保存されます。ユーザー ID の正確な数は未定または変数です。「ユーザー ID を取得」テストを実行し、値が書き込み可能データ ソースに取り込まれた後、シナリオはテスト スイートの残りの部分を実行し、後続のテスト (Test 1 および Test 2) を書き込み可能データ ソースでパラメータライズします (たとえば、適切なデータ ソースを選択し、フィールドをデータ ソースの適切な列でパラメータライズします)。これは、データ ソースを繰り返し処理し、「ユーザー ID の取得」テストによってデータ ソースに書き込まれたすべての ID を使用できることを意味しています。言い換えれば、取得された ID ごとにテストが実行されます。
書き込み可能データ ソースが役に立つその他のケースとして、値を生成するテストは 1 回の実行で 1 つずつ値を取得するが、データ ソースのデータを繰り返し処理して値を書き込み可能データ ソースに抽出する場合が挙げられます。この場合、テスト シナリオは次のようになります。
- データ ソース:
- テーブル データソース: ユーザー名
- 書き込み可能データ ソース: 抽出されたユーザー ID
- セットアップ テスト: ユーザー ID の取得と格納 (ユーザー名でパラメータライズ)
- XML Data Bank: ユーザー ID を抽出し、書き込み可能データ ソースに書き込み
- テスト 1: 抽出された ID を使用して サービス 1 を呼び出し (「抽出されたユーザー ID」でパラメータライズ)
- テスト 2: 抽出された ID を使用して サービス 2 を呼び出し (「抽出されたユーザー ID」でパラメータライズ)
- …
この例では、「ユーザー ID の取得と格納」テストは複数回実行されます。つまり、「ユーザー名」データ ソースに格納されたユーザー名 1 つにつき 1 回、テストが実行されます。実行のたびに、ユーザー ID が「取得されたユーザー ID」データ ソースに書き込まれます。「取得されたユーザー ID」書き込み可能データ ソースに (ユーザー ID の) 値が取り込まれたら、テスト スイートの残りの部分は、それらの ID を使用して Test 1 および Test 2 を実行します。
書き込み可能データ ソースの詳細については「書き込み可能なデータ ソースの構成」を参照してください。
一般的な目安
一般的なルールとして、次のようにまとめることができます。
- シナリオの一部として 1 回だけメッセージの内容を抽出する場合は、データバンクだけを使用します。
- 値のリストを抽出し、その値を 1 つずつ使用して別のテストを繰り返し実行する場合、XML Data Bank と書き込み可能データソースを組み合わせて使用します。