このセクションの内容:
データ構造の変更
テスト シナリオによって、さまざまなデータ構造が必要になる場合があります。データ モデリング機能を利用すると、必要なすべてのテスト シナリオで使用できるよう、データ構造を変更できます。
レコード タイプの複製
複製機能を利用すると、単純型および階層型のデータ セット タイプのコピーを作成できます。メンバー/キーおよびそのプロパティ (制約、マスク、生成設定を含む) も複製されます。
- レコード タイプの省略記号メニューから [レコード タイプの複製] を選択します。
- 名前を指定し、[保存] をクリックします。
レコード タイプの削除
レコード タイプの省略記号メニューから [レコード タイプの削除] を選択します。
メンバーの追加と削除
単純型および階層型データ セット内のレコード タイプにメンバーを追加できます。
- レコード タイプを選択し、メンバーの追加ボタン (+) をクリックします。
- 新規メンバーの名前を指定し、ドロップダウン メニューからタイプを選択します。選択したレコード タイプのメンバーとして、プリミティブ、プリミティブのリスト、またはレコード タイプを追加できます (メンバーのタイプについては「Data Model の概要」を参照してください)。
- 新規メンバーのデータ生成モードを選択します。詳細については「マスクおよび生成設定」を参照してください。
- モード設定を指定し、[作成] をクリックします。
モデルからメンバーを削除するには、メンバーの省略記号メニューから [メンバーの削除] を選択します。
プロパティの設定
プロパティは、データ モデルのコンポーネントに対して実行できる操作の種類を定義します。以下のコンポーネントがプロパティを持ちます。
- メンバー
- キー
- パラメーター (SQL)
- 列 (SQL)
- 結果セット (SQL)
生成設定およびマスク設定、データ制約は、[制約の推論] または [データの生成] を選択した場合に追加されるプロパティです。
- コンポーネントをクリックし、省略記号メニューから [新規プロパティの追加] を選択します。
- 表示されるフィールドでプロパティを定義します。
- フィールドから移動すると、変更が自動的に保存されます。
プロパティを削除するには、次の操作を行います。
- [プロパティの削除] メニューを開きます。
- ゴミ箱のアイコンをクリックします。
SQL テンプレートの追加と削除
SQL テンプレートは、記録された SQL クエリーを表す 1 つまたはそれ以上の SQL ステートメントからなります。
- モデルのデータ セット モードをクリックし、テンプレート追加ボタン (+) をクリックします。
- SQL テンプレートを入力し、[保存] をクリックします。
モデルに新しいテンプレートが表示されます。新しいテンプレートには SQL# という形式の表示名が割り当てられ、空の結果セットが含まれています。
テンプレートの表示名を変更するには、次の操作を行います。
- 省略記号メニュー アイコンをクリックし、[表示名の編集] をクリックします。
- 新しい名前を指定し、[保存] をクリックします。表示名の変更は、モデルで表示される名前を変更するだけで、元になっているデータには影響を与えません。
テンプレートを削除するには、省略記号アイコンをクリックし、[SQL テンプレートの削除] をクリックします。
SQL パラメーターの追加と削除
パラメーターを追加するには、次の操作を行います。
- テンプレート名を選択し、サイドバーのテンプレート パラメターのパラメーター追加ボタン (+) をクリックします。
- パラメーター名を指定し、[作成] ボタンをクリックします。
パラメーターを削除するには、次の操作を行います。
- 省略記号メニューをクリックし、ドロップダウン メニューの [パラメーターの削除] をクリックします。
- 確認ダイアログが表示されたら、パラメーターの削除を確定します。パラメーターおよびすべての関連データがリポジトリから削除されます。
列の追加と削除
SQL データ セットの列はデータを保持します。
- 結果セットをクリックして列を表示します。
- 列エリアにある列の追加ボタン (+) をクリックし、名前を入力します。
- [作成] をクリックします。
列を削除するには、次の操作を行います。
- 列の省略記号メニューをクリックし、[列の削除] をクリックします。
- 確認ダイアログが表示されたら、列の削除を確定します。
データの生成
SQL、階層型、および単純型のデータ セット用にデータを生成できます。データを保持するパラメーター、列、結果セット、メンバー、またはキー メンバーに対して指定したマスクおよび生成設定に従ってデータが生成されます。
- レコード タイプまたは SQL テンプレートをクリックし、コンポーネントの省略記号メニューの [マスクおよび生成設定] をクリックします。
結果セットに対するマスクおよび生成設定は、繰り返しの数だけに限られています。 - ドロップダウン メニューからモードを選択します。モードは、データの生成方法を決定します。モードにはそれぞれ異なるオプションがあります。詳細については「マスクおよび生成設定」を参照してください。
- 選択したタイプのためのマスクおよび生成設定を指定したら、[保存] をクリックします。
- ツールバーの [データの生成] をクリックします。
- 生成されるリポジトリの名前を指定し、生成するレコード数を選択し、含める元のデータ セットを選択します。
SQL テンプレートの場合、SQL を展開できます。
- [生成] をクリックすると、データ生成タスクがキューに追加されます。
新規リポジトリが作成され、マスクおよび生成設定に従ってデータが入力されます。
データのマスク
データ セットのマスクされたコピーを生成し、サーバーに保存された機密情報を非表示にすることができます。マスクされたデータ セットには、ソースと同じ数のデータが含まれますが、マスクおよび生成設定が指定されたコンポーネントは、設定に従ってランダム化されます。以下のタイプのコンポーネントのデータをマスクできます。
- メンバー
- キー
- パラメーター (SQL)
- 結果セット (SQL)
- 列 (SQL)
データ制約設定を指定し、テスト シナリオに対してマスクされたデータが正しく生成されるよう保証することもできます。
- コンポーネントをクリックし、キーまたはメンバーの省略記号メニューから [制約の推論] を選択します (「データ制約の推論」も参照)。手動で制約を設定することもできますが、あらかじめ用意された機能を既存のデータに対して使用するほうが簡単です。
- 調整が必要なコンポーネントの制約をクリックします。
- コンポーネントの省略記号メニューから [マスクおよび生成設定] を選択します。
- ドロップダウン メニューからモードを選択します。モードは、データの生成方法を決定します。モードにはそれぞれ異なるオプションがあります。詳細については「マスクおよび生成設定」を参照してください。
- 選択したタイプのための設定を指定したら、[保存] をクリックします。
ツールバーの [データのマスク] をクリックします。
マスクおよび生成設定が指定されたすべてのデータ メンバーが、新しくマスクされたリポジトリ内で置き換えられます。
データのサブセット化
既存のリポジトリから新しいリポジトリにデータのサブセットをコピーできます。
- サブセットを生成する元になるリポジトリを開きます。
- サブセットのデータ制約を設定します (「データ制約の推論」を参照)。指定された制約に適合するデータが新しいサブセット リポジトリにコピーされます。
- (任意) ツールバーの [完全性テスト] をクリックして制約が有効であることを検証します。指定された制約に適合するデータが新しいサブセット リポジトリにコピーされます。
- ツールバーの [サブセット データ] をクリックします。
- サブセット リポジトリ名を指定し、[サブセット] をクリックします。
制約に適合するデータだけを含むリポジトリのコピーが作成されます。
SQL データ セットのサブセット化
SQL データ セットのサブセット化は以下のように動作します。
- 結果セット行のいずれかの列の値がデータ制約に違反する場合、行全体がコピーから除外されます。
- 結果セットに対して最大行数の制約が設定されている場合、最大行数に達すると結果セットの行のコピーが終了します。
- いずれかのパラメーターの値がデータ制約に違反する場合、SQL パラメーター行および関連する結果セットがコピーから除外されます。
- 結果セットに対して最小行数の制約が設定されている場合、最小行数以上の行を持たない SQL パラメーター行はコピーから除外されます。
データ制約の推論
データ モデリング機能は、リポジトリのデータに基づいて、新規データを生成する際の制約を自動的に設定することができます。選択したリポジトリの制約を推論するには、サイドバーでリポジトリを選択し、[制約の推論] ボタンをクリックします。
キー/メンバーの省略記号メニューから [制約の推論] を選択すると、個々のメンバーやキーの制約を推論することもできます。
CTP はデータが ブール型、日付、数値、または文字列であると推論します。
データ制約の編集
制約を編集するには、制約プロパティをクリックし、データ制約設定エディターで変更を行います。
以下の設定を行うことができます。
タイプ
キー/メンバーを true または false に制限するには、[ブール型] タイプを選択します。
キー/メンバーを日付に制限するには、[日付] タイプを選択します。以下の設定を行うことができます。
開始 | 開始日付および/または時間を指定します。 |
---|---|
終了 | 終了日付および/または時間を指定します。 |
フォーマット | 開始日付および終了日付のパターンを指定します。 |
キー/メンバーを数値に制限するには、[数値] タイプを選択します。以下の設定を行うことができます。
最小 | 生成される最小の数値を入力します。 |
---|---|
最大 | 生成される最大の数値を入力します。 |
小数 | 許可される小数の数を入力します。 |
キー/メンバーを文字列に制限するには、[文字列] タイプを選択します。以下の設定を行うことができます。
パターン | 使用する文字列のパターンを定義します。 たとえば、次のパターンを使用すると、社会保障番号をランダムに生成できます。
|
---|---|
文字マップ | パターン中で使用可能な文字の範囲を指定します。固定に設定したときのデフォルト値は、印刷可能なすべての ASCII 文字、0x20 (スペース) から 0x7e (~) です。 パターンにアンパサンド (&) が 1 つも含まれていない場合、文字マップは無視されます。 |
参照
コンポーネントは別のコンポーネントを参照するよう設定できます。これによって、モデル内のキー、メンバー、列、結果セット、その他のデータを保持するオブジェクトの一貫性を保つことができます。参照フィールドをクリックすると、データ セット内のオブジェクトの階層ビューが表示されます。
データの完全性のテスト
データ制約は、制約の推論機能を使用してプロパティを設定することで手動で設定するか、Virtualize のトラフィックから仮想アセットを作成する際に定義ファイルを使用して設定できます。完全性テスト機能により、リポジトリに格納されたデータに対して制約が有効であるかどうかを検証できます。
省略記号メニューから [完全性テスト] を選択すると、モデル内の個々のコンポーネントまたはデータ セット内のすべてのオブジェクトの完全性をテストできます。
ツールバーの [完全性テスト] ボタンをクリックすると、リポジトリのデータの完全性をテストできます。
制約が設定されていない場合、警告が表示されます。データが制約に適合していない場合、エラーが表示され、メンバーにフラグが付きます。
エラー メッセージをクリックすると、ツールチップに詳細が表示されます。
完全性テストに関するその他の情報は、Test Data Assistant の [タスク] タブに表示されます。
マスクおよび生成の設定
マスクおよび生成設定を利用すると、さまざまなシナリオ向けにテスト データを制御できます。マスクおよび生成設定は、以下のデータ セット コンポーネントに適用されます。
- プリミティブ メンバー
- プリミティブ メンバーのリスト
- SQL パラメーター
- SQL 列
SQL 結果セットにはモードは適用されません。SQL 結果セットに対してマスクおよび生成設定を行うと、SQL 列が結果セットに出現する最大回数および最小回数を指定できます。
どのような設定が利用可能かは、モードによって異なります。メンバーを追加する際、または既存のメンバーを変更する際のマスクおよび生成モードを指定できます。以下のモードを指定できます。
数式
レコード タイプ メンバー間の外部キー制約を使用して数式を指定する場合、このモードを選択します。単純な算術、文字列、および日付演算がサポートされています。数式内で集約関数 (SUM、COUNT など) を使用できます。
他のレコード タイプ メンバーを参照する場合の構文については「ツールでのデータの使用」を参照してください。
数式の変数について
- 変数は "
${
" (ドル記号および開き波括弧)で始まり、"}
" (閉じ波括弧) で終わります。 - 同じレコード タイプ内のメンバーを参照するには、
${member}
という構文を使用します。 - 変数がマスク/生成設定が適用されるのと同じメンバーを参照している場合、数式では元の値が使用されます。
- 単純型または階層型のデータ セットで特定のレコード タイプ内のメンバーを参照するには、
${recordType.member}
という構文を使用します。 - 特定のデータ セット内のキーを参照するには、
${dataSet:ds.key}
という構文を使用します。
数式の例
SUM(${cart_item.price})*${sales_tax.rate})
シードから
既存のリポジトリの値を使用してデータを生成する場合、このモードを選択します。このモードでは、追加の設定が必要です。
タイプ | シード データを生成先リポジトリにコピーする方法を指定します。 ランダム: 生成先リポジトリにランダムに値をコピーします。 ラウンド ロビン: 生成設定に従って追加する必要があるレコードの数だけ、シード データをループします。たとえば、生成するレコードの数を 100 に設定しているが、シード データが 80 レコードしかない場合、差分は最初の 20 個のデータをコピーすることで埋められます。 ユニーク: 各レコードを 1 回だけコピーします。データの生成時、要求するレコードの数は、シード データのレコード数以下である必要があります。シード データのレコード数を超える数のレコードが要求された場合、エラー メッセージが表示されます。 |
---|---|
リポジトリ | シード リポジトリを選択します。 |
データ セット | リポジトリ内のシード データ セットを選択します。 |
列 | データ セット内のキー列を選択します。 |
独立 | 独立オプションを有効にすると、設定されている可能性がある他のメンバーとは独立してメンバー データが生成されます。 データを生成すると、メンバーがどのように設定されているかに従って、既存のリポジトリと選択されたデータ セットのコピーが作成されます。メンバー データが独立して生成されるよう設定すると、競合の可能性を減らすことができます。 |
ランダム
ランダムなブール型、日付、数値、または文字列を生成する場合、このモードを選択します。日付、数値、文字列の場合、追加の設定が必要です。
日付
以下のようにランダムな日付の生成およびマスクを設定できます。
開始 | 開始日付および/または時間を指定します。 |
---|---|
終了 | 終了日付および/または時間を指定します。 |
フォーマット | 開始日付および終了日付のパターンを指定します。 |
数値
以下のようにランダムな数値の生成およびマスクを設定できます。
最小 | 生成される最小の数値を入力します。 |
---|---|
最大 | 生成される最大の数値を入力します。 |
小数 | 許可される小数の数を入力します。 |
文字列
以下のようにランダムな文字列の生成およびマスクを設定できます。
パターン | 使用する文字列のパターンを定義します。 たとえば、次のパターンを使用すると、社会保障番号をランダムに生成できます。
|
---|---|
キャラクター マップ | パターン中で使用可能な文字の範囲を指定します。固定に設定したときのデフォルト値は、印刷可能なすべての ASCII 文字、0x20 (スペース) から 0x7e (~) です。 |
範囲
指定された値から始まり、指定された終了値まで増加する一連の数値および日付を生成する場合、このモードを選択します。範囲データの設定オプションは、ランダム データと同じですが、範囲データにはデータのインクリメント方法を指定するインクリメント フィールドがあります。