前のトピック: Excel ファイルからの読み取りデータ セット次のトピック: 一意コード ジェネレータ データ セット


Excel ファイルからの DTO の読み取りデータ セット

Excel ファイルからの DTO の読み取りデータ セットでは、テスト ステップで Java データ転送オブジェクト(DTO)をパラメータ化できます。 データ セットは、Excel スプレッドシートを使用してこれらのパラメータのデータ値を指定する簡単な方法を提供します。

Excel ファイルからの DTO の読み取りデータ セットは、DTO のプロパティに値を割り当て、オブジェクトをプロパティに格納します。 DTO がパラメータとして必要な場合は、いつでもこのプロパティを使用できます。 データ セット内のデータには、数値または文字列のような単純なデータ型、あるいは DTO、配列、およびコレクションなどの複雑なデータ型を使用できます。 Excel で表されるデータは、必要に応じて適切なデータ型に自動的に変換されます。 このデータ セットを使用する場合の複雑な点は、最初の Excel スプレッドシート作成です。 幸い、この作成は完了しています。 DTO のパッケージ名に応じて、オブジェクトを表す 1 つ以上の Excel シートを使用してテンプレートが作成されます。 プリミティブ、文字列、プリミティブの配列、および単純な個別の DTO の配列などのデータ型は、単一のシートで表すことができます。 オブジェクトの配列などのより複雑なデータ型は、完全な DTO を表すためにより多くの Excel シートを必要とします。

多くの場合、Web サービス エンドポイントは複雑な DTO を想定しています。 Excel データ セットは、Web サービスへのパラメータとして使用するオブジェクトの作成を容易にします。 Web サービスが最初に参照されると、WSDL の名前および URL が与えられます。 com.lisa.wsgen.SERVICENAME.OBJECTNAME 形式の Java DTO クラスが自動的に生成され、クラスパスで使用可能になります。 DTO クラス ブラウザで生成されたクラスを参照し、Excel ファイルを生成して、テンプレートに簡単に記入することができます。 以下の例を参照してください。

データ セットの作成は 2 段階のプロセスです。 まず、DevTest に Excel でテンプレートを作成させます。 次に、Excel スプレッドシートを開き、作成されたすべてのシート内のデータ フィールドに入力します。

テンプレートを作成する方法

  1. データ セット エディタで以下のパラメータを入力します。
name

データ セットの名前。 この名前は、現在の DTO オブジェクトを格納するために使用されるプロパティになります。

ローカル

グローバル データ セットとして機能させるか、またはローカル データ セットとして機能させるかを指定します。 デフォルトは[グローバル]です。 ローカル データ セットはシミュレータごとに 1 つ作成されます。グローバル データ セットは 1 回作成され、すべてのシミュレータで共有されます。

ランダム

現在のレコードの次のレコード(シーケンシャル アクセス)が読み取られるか、またはランダムなレコードが読み取られるか。 シーケンシャル読み取りがデフォルトです。

取得する最大レコード

ランダム アクセスの場合に取得するレコード数の上限。 [ランダム]チェック ボックスがオンになっていない場合、このテキスト フィールドは無効です。

データが終了した場合

データ セットの終了に対応するアクションを選択します。 データ セットの最初からもう一度値を読み取るか、または実行するステップを選択できます。

ファイル

完全修飾パス名、または参照プルダウン メニューを使用して Excel ファイルを参照します。

DTO クラス名

完全なパッケージ名、または DTO オブジェクトを参照します。 クラス ファイルは、テスト マネージャ上にある必要があります。 クラスは、hotDeploy ディレクトリにコピーしてテスト マネージャ上に配置します。

詳細設定]では、以下を指定できます。

フラット化された子プロパティ表記を生成中に使用する

Excel DTO データ セットの生成中に、フラット化された子プロパティの上書きを選択します。 オフにした場合、子プロパティは固有のワークシートによる参照として生成されます。

フラット化されたプロパティに対して新しい空のセルのセマンティックを使用する

フラット化されたプロパティに対する空のセルのセマンティックとは、DTO スプレッドシートで空のセルが解釈される方法を意味します。 たとえば、フラット化されたプロパティ

{ "prop1.subprop1"、"prop1.subprop2" } は、

subprop1 および subprop2 の両方に空のセル値がある場合、新しいセマンティックでは「prop1」への参照は NULL に設定されます。 古いセマンティックでは、prop1 は NULL ではありませんが、subprop1 および subprop2 への参照は両方とも NULL です。 新しいセマンティックはデフォルトで使用されます。これは特に、Nil 不可型を使用する WSDL による Web サービスでは使用される必要があります。 Nil 不可型の場合に使用しないと、DTO スプレッドシートを読み取るときに自動的に作成されるプロパティが含まれているので、中間の NULL でない参照が、スキーマに従って無効な XML を作成する場合があります(セル値が空であるため)。

  1. テンプレートの生成]ボタンをクリックします。 DevTest がテンプレートを作成し、システム メッセージによって、ファイルがいつ作成されたかがレポートされます。
  2. XLS ファイルを開く]ボタンをクリックします。

    スプレッドシートには、オブジェクトを構築するために必要なものがすべて含まれます。 次のセクションでは、データを追加する方法について説明します。

  3. XLS ファイルを閉じます。
  4. テスト アンド キープ]ボタンをクリックして、データをテストおよびロードします。 データ セットを読み取れたことを示す確認ウィンドウが表示され、データの最初のセットが表示されます。

Excel スプレッドシートの作成

説明をわかりやすくするため、実際の DTO オブジェクト com.itko.example.dto.Customer を使用します。 このクラスは DevTest のサンプルに含まれており、[参照]ボタンを使用してテスト マネージャ を参照すると見つけることができます。

Customer DTO には以下のプロパティがあります。

プロパティ名

タイプ

balance

Double

id

int

name

String

poAddr

アドレス

since

日付

types

int[]

locations

Address[]

Address DTO には以下のプロパティがあります。

プロパティ名

タイプ

city

String

line1

String

line2

String

状態

String

zip

String

最初の 6 つの Customer DTO プロパティが 1 つの Excel スプレッドシートに表示されます。 ただし、locations プロパティ(Address オブジェクトの配列)は別の Excel スプレッドシートを必要とします。

DevTest は 1 番目のスプレッドシートの上部に、DTO 仕様(Customer)および現在の DTO オブジェクト(Customer)をリストします。 使用可能な場合、スプレッドシートには Java ドキュメントの場所がリストされます。 以下の図は、プロパティ名を指定する行に続けてデータ型を指定する行があるデータ シートを示しています。 1 番目のフィールド(列)は、DTO プロパティではなく特別なフィールド(プライマリ キー)で、各行に対する一意の値を保持します。

プロパティ名を指定する行とデータ型を指定する行がある Excel ファイル。

データ シートには、以下の項目があります。

型が Address[] の location プロパティは、このシートに表示されません。 location プロパティは、オブジェクトの配列であるため、Excel ファイルの 2 番目のシートに表示されます。 このシートには、各行に Address オブジェクトのデータが含まれます。 このシートには、「Primary Key」と「reference the containing DTO」という 2 つの特別なフィールドがあり、後者は、このシート内の行をプライマリ シート内の行にリンクするために使用されます。

各行に Address オブジェクトのデータを含むシートのある Excel ファイル

各 Customer オブジェクトに複数の場所があるため、locations シート内の複数の行が、Customer シートの単一の行で指定されたオブジェクトに属します。 これは、親 Customer オブジェクトのプライマリ キーを Customer に属する各場所の「reference the containing DTO」フィールドにリストすることにより、2 番目のシートに明示されます。 これは、データベースのプライマリ/外部キーの関係と似ています。

親の Customer オブジェクトのプライマリ キーを[(含まれる DTO を参照)]フィールドの Customer に属する各場所にリストした 2 つ目の Excel ファイル

Excel ファイルからの DTO の読み取りデータ セットの Excel ファイル

スプレッドシートを保存し、DevTest で[テスト アンド キープ]をクリックすると、メッセージに 1 番目の Customer DTO が表示されます。

メッセージ - テストは成功しました。

DTO の複雑さに応じて、Excel ワークブックにさらに複数の Excel シートがあります。 ただし、そのプロセスは上記の例と同じです。

プロパティとしてこの Customer DTO を使用する方法については、「CA Application Test の使用」の「テスト ステップ」の Java オブジェクトのテストについてのセクションを参照してください。