このセクションでは、クエリーに対するデータベースのレスポンスを仮想化する、SQL Responder ツールの構成方法について説明します。レスポンダーは、Parasoft Virtualize で使用される主要ツールです。
このセクションの内容:
SQL レスポンダーの作成
SQL レスポンダーの作成についての詳細は、 「データベースの記録から SQL レスポンダーを作成」および 「メッセージ レスポンダーを手動で作成」を参照してください。
クエリーと結果の変更
各 SQL レスポンダーは特定の JDBC URL の SQL クエリーを処理します。受信したクエリーは、利用可能なクエリー テンプレートのセットと照合されます。一致する値が見つかった場合は、応答条件に応じた結果セットが応答として使用されます。SQL レスポンダーが処理するクエリーとその結果を変更することで、仮想化されたデータベースの振る舞いをカスタマイズできます。
ツールが処理するクエリーを変更するには、 SQL テンプレートを追加または編集します。ワイルドカードを使用できます。
クエリーの結果を変更するには、関連するパラメーターと結果セットを追加または編集します。
データを追加および編集する方法は、 SQL レスポンダーが CSV からパラメータライズするように作成されたか、あるいは Parasoft データ リポジトリからパラメータライズするように作成されたかに基づきます。
データ リポジトリに格納されたデータの編集
データ リポジトリに格納されたデータを編集するには、 SQL Responder エディターの [テーブル エディターで開く] ボタンをクリックしてください。
関連するデータ リポジトリ エディターが開き、格納されている値をレビューしたり編集/拡張したりすることができます。また、 [データ リポジトリ] ビューで適切な SQL データ セット ノードをダブルクリックしてもデータ リポジトリ エディターを開くことができます。
最初のビュー (レベル 1)
データ リポジトリの最初のビューでは、トップレベルに常に 3 つの列が表示されます。
- JDBC 接続 URL (string): ウィザードで選択したデータベースの記録の名前。
- SQL テンプレート (string): 記録された SQL クエリー。SQL レスポンダーはクエリーを受信すると、利用可能なクエリー テンプレートとのマッチングを試みます。一致する値が見つかった場合は、応答条件に応じた結果セットが応答として使用されます。
- SQL パラメーター (データ セットの記録のリスト): 上記の SQL クエリーのために記録されたパラメーター (WHERE 句の値など)。
JDBC 接続 URL と SQL テンプレートはキー列です (水色で示されています)。SQL パラメーター列の黄色は、その列からさらに詳細情報を表示できることを表します。
SQL パラメーター テーブル (レベル 2)
SQL パラメーター列の値をダブルクリックすると、 SQL パラメーター テーブルが開きます。SQL パラメーター テーブルは、次の列を常に含みます。
- 結果セット: 結果セットの値を表示できます。
- 追加レスポンス時間: 「Modifying Response Times」で説明しているように、タイミングを調整できます。
記録されたクエリー (WHERE 句の値など) に関連するパラメーターがある場合、関連するパラメーターの値を表示し編集できる列が追加されます。
結果セット テーブル (レベル 3)
SQL パラメーター ビューから、結果セット列の値をダブルクリックすることで、レスポンスで使用される値を編集できる結果セット テーブルが開きます。
編集
SQL テンプレート、結果セット、および関連するパラメーターをレビュー、編集、拡張するには、「リポジトリ構成とコンテンツの参照/修正」に記載されているデータ リポジトリ エディター機能を使用します。
CSV 形式で結果セットを編集したい場合は、データをエクスポートし、 CSV エディターで操作して、エディター ファイルを再インポートします。
結果セットのデータを CSV 形式でエクスポートするには、次の操作を行います。
- 結果セット テーブルを右クリックし、 [CSV にエクスポート] を選択します。
編集したデータをインポートするには、次の操作を行います。
- 結果セット テーブルを右クリックし、 [CSV からインポート] を選択します。リポジトリにある既存のエントリはインポートによって上書きされるので注意してください。
注意事項
SQL データ セットを編集または拡張する際は、以下の点に注意してください。
- 記録された JDBC URL を編集しないでください。これらはデータベースを構成した JDBC URL に完全一致しなければいけません。
- SQL クエリーを追加する場合は、パラメーター (もしあれば) と結果セット (もしあれば) を設定してください。
- SQL テンプレート、 SQL パラメーター、および結果セットで、パラメーター一致条件に式を使用できます。詳細については「Using Criteria Expressions to Match Values」を参照してください。
- タイミングを調整したい場合は、次で説明するようにレスポンス時間を変更できます: Modifying Response Times
注意: SQL データ セットにある既存の記録は再利用できません。
CSV ファイルに格納されたデータの編集
[クエリー] パネルは、記録されているすべての SQL クエリーを表示します。各 SQL クエリーでは、パラメーター (WHERE 句の値など) があるかもしれません。特定の SQL クエリーに関連づく結果セットやパラメーターを表示するには、そのクエリーを選択します。
結果セットのファイルが [パラメーター判定条件] テーブルに表示されます。
SQL テンプレートを編集するには、クエリー パネルを使用します。必要に応じてエントリを追加または削除できます。
結果セットとパラメーター条件を編集するには、まず関連するクエリーを選択します。関連する CSV ファイルの名前がパラメーター条件項目に表示されます。これらの CSV ファイルは、 VirtualAssets プロジェクト内の database_recorded_data フォルダーに格納されます。結果セットの値を編集するには、これらの CSV ファイルを編集します。
パラメーターを編集するには、パラメーター条件項目で直接変更します。
条件式を使用した値のマッチング
パラメーター一致条件として式を使用するツールを設定するには、文字列や数値だけでなく、ワイルドカードや正規表現を使ったマッチング文字列の比較をサポートする判定基準式の構文を使用できます。これは 「値を照合するための条件式」で説明しています。
たとえば、以下の設定は給与が 80,000 の場合に使用する結果セット ファイルと給与が 100,000 の場合に使用する結果セット ファイルに条件が一致するように設定されています。
1 つの結果セット ファイルで 80,000 までのすべての給与を一致させ、別の結果セット ファイルで 80,000 から 100,000 までを一致させ、3 つ目の結果セット ファイルで 100,000 を超えるすべての給与を一致させるような条件式を使用できます。あるいは、SQL テンプレート項目で [*] を使用して、条件に一致しない SQL クエリーのための「キャッチ オール」を作成できます。
レスポンス時間の変更
SQL レスポンダーを変更して、異なる応答時間を反映するように設定できます。たとえば、現実的なデータベースのパフォーマンスを反映することや、異なる条件下でパフォーマンスがどのように変化するかをシミュレーションするように設定できます (データベースやテーブルのサイズ、クエリーの実行に使用されるテーブルの数、インデックスの存在、およびサーバーの負荷など)。
SQL レスポンダーが更なるレスポンス遅延とともに結果セットを使用するきっかけとなる場合、結果を返す前に、 [追加の応答遅延 (ミリ秒)] 列で指定された時間に加え、仮想アセットのパフォーマンス プロファイルで指定された追加時間の間中断します。パフォーマンス プロファイルについては、「パフォーマンス プロファイルの使用」に記述しています。 [追加の応答遅延 (ミリ秒)] 列で指定された時間は、クエリーごとの時間です。たとえば、遅延に 5000 ミリ秒と指定し、クエリーが 2 つ実行されると、追加遅延は 10,000 ミリ秒となります。
注意: 追加レスポンス遅延は、metadata クエリーを含む、すべてのクエリーに適用されます。
リポジトリ データ
リポジトリ データ ソースにデータが格納される場合、レスポンス時間は SQL データ セットの [追加の応答遅延 (ミリ秒)] 列の値を変更することで調整できます。
CSV データ
データが CSV ファイルに格納されている場合、レスポンス時間はパラメーター パネルの [追加の応答遅延 (ミリ秒)] 列の値を変更することによって調整できます。
レスポンダーの SQL クエリーまたは結果セットへのツールの連結
SQL レスポンダーの受信リクエスト (SQL クエリー) または発信レスポンス (結果セット) にツールを連結するには、次の操作を行います。
- ツールを追加したい、仮想アセット エクスプローラーのノードを右クリックします。
- [出力の追加] を選択します。
- 左ペインで任意の出力タイプを選択し、右ペインでツールを選択します。たとえば、クエリーに対してカスタム ツールで何らかのアクションを実行する場合、左ペインで [受信リクエスト] > [SQL クエリー] を選択し、右ペインで適切なツールを選択します。