テストと変数の定義
この章では最初に、データ駆動型テストの手順を定義します。次に、必要となる変数を定義します。また、変数の管理方法についても説明します。
変数は、データソースまたはパラメーターから、テストで入力する値の、プレースホルダーです。Ranorex Studio には 3 種類の変数、アクション変数、アクション変数のサブタイプであるバリデーション変数、リポジトリ変数があります。
スクリーンキャスト
以下のスクリーンキャストで、この章で説明している内容を確認できます。
テストの定義
この例でも、Ranorex Studio Demo Application を使用します。このアプリには、テストのためのデータベース機能があります。データベースのテストは、データ駆動型テストにおける一般的な例のひとつです。
このテストは以下の手順でおこないます。
Demo Application を起動します。
Test database タブをクリックします。
データベースにエントリを追加します。
手順を繰り返し、8 人分のエントリを追加します。
エントリを追加するごとに、Number of entries の値が正しく更新されることを確認します。
Demo Application を終了します。
サンプル ソリューション
⇢ サンプル ソリューション には、上記の手順をおこなうアクションが構成されたモジュールが既に含まれています。これらのモジュールは、シンプルなテスト スイートで構成されています。以降の手順で、いくつかのモジュールに含まれる定数を変数に置き換えていきます。
フォルダーで構造化されたレコーディング モジュールを含むモジュール ブラウザー
既に実行できる状態のテスト スイート
アクション変数の定義
アクション変数は、アクションのコンポーネントやプロパティ内の定数値を置き換えます。例えば、Key sequence アクションで入力する文字列などです。アクション変数は、アクション変数が定義されているレコーディング モジュール内でのみ使用できます。
最初に、デモ アプリのデータベースに性名および年齢を入力するアクションにある定数を、変数に置き換えます。
メモ
Ranorex Studio では、変数名は、$<variablename>
という形で表されます。変数名は、数字や、アンダースコアー以外の記号で始めることはできません。
定数を変数で置き換えるには以下の手順をおこないます。
定数のドロップダウン リストを開き、As new variable… をクリックします
変数に分かりやすい名前を付けて OK をクリックします。
作成した変数は、アクション テーブルで緑色で表示されます。
上記の手順を、Last name (InsertName モジュール) と Age (InsertAge モジュール) についてもおこないます。
以下のような結果になります。
First name の定数値 ‘John’ を、変数 $txtFirstName
で置き換えます。
Last name の定数値 ‘Public’ を、変数 $txtLastName
で置き換えます。
Age の定数値 ’48’ を、変数 $intAge
で置き換えます。
メモ
アクション変数は、アクション変数が定義されているレコーディング モジュール内でのみ使用できます。
リポジトリ変数の定義
アクション値を可変にすることの他に、データ駆動型テストでは、リポジトリ アイテムを可変にする必要があります。リポジトリ変数は、リポジトリ アイテムの RanoreXPath 内の属性値の一部を、変数で置き換えます。リポジトリ変数は、リポジトリ変数が定義されたリポジトリと、このリポジトリを参照するすべてのモジュールで使用できます。
この例では、リストとラジオボタンの選択を可変にします。これらは通常、複数の選択項目からの選択をおこなう操作となるため、これを可変にすることは理にかなっています。
参照
RanoreXPath については、Ranorex Studio アドバンスト > ⇢ RanoreXPath を参照してください。
リスト選択の変数化
ここでは、Department リストの選択についてのリポジトリ アイテムを変数化します。サンプル ソリューションの SelectDepartment モジュールでは、クリック アクションは、リスト内の Project Management エントリを指すリポジトリ アイテムにリンクされています。このリポジトリ アイテムの RanoreXPath の、@text=’Project Management’ 属性が、これに相当します。
データ ソースの指定で他のエントリをクリックできるようにするため、固定の属性値 Project Management を、変数 $lstDepartment で置換します。
メモ
後の行程でデータ ソースを作成する際に、Department の選択で指定するエントリが、リスト内のエントリと完全に同一であることを確認する必要があります。エントリに誤りがある場合、Ranorex Studio は UI 要素を識別できません。例えば、リストに IT というエントリがない場合、@text=’IT’ という属性を持つリポジトリ アイテムは、何も返しません。
変数の定義は以下の手順でおこないます。
2 番目のクリック アクションを選択し、右クリック メニューから、リポジトリ アイテム変数の作成 をクリックします。
Text 属性の固定値がハイライトされた状態で、Ranorex Spy が開かれます。変数の作成ボタンをクリックします。
変数に分かりやすい名前を付けて、OK をクリックします。
黄色のバーにある、APPLY をクリックします。
リポジトリ アイテムの RanoreXPath で変数が確認できます。
Department セクションの固定値を置換したリポジトリ変数 $lstDepartment
ラジオ ボタンの変数化
ここでは、性別を選択するリポジトリ アイテムを変数化します。サンプル ソリューションの SelectGender モジュールでは、クリック アクションは、ラジオ ボタン Male を指すリポジトリ アイテムにリンクされています。このリポジトリ アイテムの RanoreXPath の、@controlname=’rdbMale’ 属性が、これに相当します。
データ ソースの指定で別の性別をクリックできるようにするため、固定の属性値を、変数 $selGender で置き換えます。
メモ
後の行程でデータ ソースを作成する際に、性別選択のエントリが、2 つのラジオ ボタンのそれぞれの @controlname 属性 (つまり、rdbMale と rdbFemale) と完全に同一であることを確認する必要があります。エントリに誤りがある場合、Ranorex Studio は UI 要素を識別できません。例えば、@controlname=’Male’ を指定したリポジトリ アイテムは、何も返しません。
ヒント
データ駆動型テストを、ローカライゼーションに対してより堅牢にするためには、ControlName
などの属性を使用することをおすすめします。
変数の定義は以下の手順でおこないます。
クリック アクションを選択し、右クリック メニューから、リポジトリ アイテム変数の作成 をクリックします。
Text 属性の固定値がハイライトされた状態で、Ranorex Spy が開かれます。変数の作成ボタンをクリックします。
変数に分かりやすい名前を付けて、OK をクリックします。
黄色のバーにある、APPLY をクリックします。
リポジトリ アイテムの RanoreXPath で変数が確認できます。
変数 $selGender
で Gender ラジオ ボタンの選択を指定するリポジトリ アイテム
バリデーション変数の定義
このサンプル テストには、エントリが追加されたときにデータベース カウンタが正しく更新されるかどうかを確認する手順が含まれています。このバリデーションが動作するためには、変数化する必要があります。
ここでは、ValidateEntries モジュール内のバリデーション アクションの定数値 Match を変数に置き換えます。
メモ
原則的に、バリデーション変数はアクション変数と同じです。ただし、バリデーション アクションは、他の多くのアクションよりも複雑であるため、個別に説明します。
変数の定義は以下の手順でおこないます。
Match value のドロップダウン リストから、As new variable… をクリックします。
変数に分かりやすい名前を付けて、OK をクリックします。
作成した変数は、アクション テーブルで緑色で表示されます。
デフォルト値
変数のデフォルト値は、利用可能なデータソースがない場合に使用される値です。例えば、レコーディング モジュール ビューから、レコーディング モジュールを実行した場合などです。したがって、デフォルト値には意味がある値を指定してください。
メモ
定数値を変数で置き換えた場合、元の定数値がデフォルト値として設定されます。
変数の表示と管理
変数の表示と管理は、いくつかの場所からおこなうことができます。レコーディング モジュールのすべての変数のステータスを確認できるデータ バインディング パッド、変数の追加と編集をおこなえる編集の編集ダイアログなどです。
データ バインディング パッド
レコーディング モジュール ビューを開くと、データ バインディング パッドには、レコーディング モジュールのアクション変数、リポジトリ変数、およびコード変数のステータスが、それらのデフォルト値と共に表示されます。データ バインディング パッドには、変数の編集ダイアログで表示されるものと同じ、ステータス アイコンが表示されます。ステータス アイコンについては、以降で説明しています。
レコーディング モジュール ビューで、ツールバーから、データ バインディングの表示 をクリックします。
アクション変数やリポジトリ変数、およびそれらのステータスとデフォルト値を表示するには、以下の場所をクリックします。
アクション テーブル
リポジトリ
レコーディング モジュールに、コードでのみ使用されている変数がある場合、それらの変数は最初、Not in use に表示されます。コード変数の識別 ボタンをクリックすることで、In use in code に表示されるようになります。
変数の編集ダイアログ
このダイアログで、変数のスタータスの表示、および変数の追加と編集をおこなうことができます。
変数の編集ダイアログは、以下の手順で開きます。
アクション変数の場合、変数を定義しているレコーディング モジュールを開き、VARIABLES… をクリックします。
リポジトリ変数の場合、リポジトリ ビューで、変数… をクリックします。
以下のようなダイアログが表示されます。
変数のステータス、名前、デフォルト値
変数の編集ツールバー
- 変数をクリップボードにコピー/クリップボードから貼り付けします。
- 変数を追加します。
- 未使用の変数を削除します。
- (アクション変数ダイアログの場合のみ) リポジトリ変数を、現在のレコーディング モジュールに、アクション変数としてコピーします。
変数のステータスの凡例
- 使用中: 変数がアクションで使用されています。変数がデータソースにバインドされているかは示しません。
- リポジトリで使用中: (アクション変数ダイアログの場合のみ) 上記と同じですが、対象の変数はリポジトリからコピーされたものです。
- 未使用: 変数が定義されていますが、アクションで使用されていません。変数がデータソースにバインドされているかは示しません。
定義した変数の概要
データ駆動型テストに必要なすべての変数を定義しました。テスト スイート ビューに切り替えると、モジュールごとに定義された変数の数が確認できます。これらの変数は、まだバインドされていない、つまりデータ ソースが割り当てられていないことに注意してください。
次の章では、データ ソースを定義し、それをテスト ケースに割り当てます。データ ソースを管理するためのオプションについても説明します。
定義済みだが、またバインドされていない変数