Welcome to the new Ranorex Support Portal

テストと変数の定義

この章では最初に、データ駆動型テストの手順を定義します。次に、必要となる変数を定義します。また、変数の管理方法についても説明します。

変数は、データソースまたはパラメーターから、テストで入力する値の、プレースホルダーです。Ranorex Studio には 3 種類の変数、アクション変数、アクション変数のサブタイプであるバリデーション変数、リポジトリ変数があります。

tipp icon

スクリーンキャスト

以下のスクリーンキャストで、この章で説明している内容を確認できます。

Watch the screencast now

テストの定義

この例でも、Ranorex Studio Demo Application を使用します。このアプリには、テストのためのデータベース機能があります。データベースのテストは、データ駆動型テストにおける一般的な例のひとつです。

このテストは以下の手順でおこないます。

Demo Application を起動します。
Test database タブをクリックします。

Test database in Ranorex demo application

データベースにエントリを追加します。

Principle of inserting data into the test database

手順を繰り返し、8 人分のエントリを追加します。
エントリを追加するごとに、Number of entries の値が正しく更新されることを確認します。

Test example with 8 persons in list

Demo Application を終了します。

サンプル ソリューション

⇢ サンプル ソリューション には、上記の手順をおこなうアクションが構成されたモジュールが既に含まれています。これらのモジュールは、シンプルなテスト スイートで構成されています。以降の手順で、いくつかのモジュールに含まれる定数を変数に置き換えていきます。

Sample solution working environment

フォルダーで構造化されたレコーディング モジュールを含むモジュール ブラウザー
既に実行できる状態のテスト スイート

アクション変数の定義

アクション変数は、アクションのコンポーネントやプロパティ内の定数値を置き換えます。例えば、Key sequence アクションで入力する文字列などです。アクション変数は、アクション変数が定義されているレコーディング モジュール内でのみ使用できます。

最初に、デモ アプリのデータベースに性名および年齢を入力するアクションにある定数を、変数に置き換えます。

Examples for recorder variables
Note icon

メモ

Ranorex Studio では、変数名は、$<variablename> という形で表されます。変数名は、数字や、アンダースコアー以外の記号で始めることはできません。

定数を変数で置き換えるには以下の手順をおこないます。

定数のドロップダウン リストを開き、As new variable… をクリックします
変数に分かりやすい名前を付けて OK をクリックします。
作成した変数は、アクション テーブルで緑色で表示されます。

Adding a new text variable

上記の手順を、Last name (InsertName モジュール) と Age (InsertAge モジュール) についてもおこないます。

以下のような結果になります。

Definition of three recorder variables in test example

First name の定数値 ‘John’ を、変数 $txtFirstName で置き換えます。
Last name の定数値 ‘Public’ を、変数 $txtLastName で置き換えます。
Age の定数値 ’48’ を、変数 $intAge で置き換えます。

Note icon

メモ

アクション変数は、アクション変数が定義されているレコーディング モジュール内でのみ使用できます。

リポジトリ変数の定義

アクション値を可変にすることの他に、データ駆動型テストでは、リポジトリ アイテムを可変にする必要があります。リポジトリ変数は、リポジトリ アイテムの RanoreXPath 内の属性値の一部を、変数で置き換えます。リポジトリ変数は、リポジトリ変数が定義されたリポジトリと、このリポジトリを参照するすべてのモジュールで使用できます。

この例では、リストとラジオボタンの選択を可変にします。これらは通常、複数の選択項目からの選択をおこなう操作となるため、これを可変にすることは理にかなっています。

参照

RanoreXPath については、Ranorex Studio アドバンスト > ⇢ RanoreXPath を参照してください。

リスト選択の変数化

ここでは、Department リストの選択についてのリポジトリ アイテムを変数化します。サンプル ソリューションの SelectDepartment モジュールでは、クリック アクションは、リスト内の Project Management エントリを指すリポジトリ アイテムにリンクされています。このリポジトリ アイテムの RanoreXPath の、@text=’Project Management’ 属性が、これに相当します。

データ ソースの指定で他のエントリをクリックできるようにするため、固定の属性値 Project Management を、変数 $lstDepartment で置換します。

Making list items variable
Note icon

メモ

後の行程でデータ ソースを作成する際に、Department の選択で指定するエントリが、リスト内のエントリと完全に同一であることを確認する必要があります。エントリに誤りがある場合、Ranorex Studio は UI 要素を識別できません。例えば、リストに IT というエントリがない場合、@text=’IT’ という属性を持つリポジトリ アイテムは、何も返しません。

変数の定義は以下の手順でおこないます。

2 番目のクリック アクションを選択し、右クリック メニューから、リポジトリ アイテム変数の作成 をクリックします。

Making a repository item variable...

Text 属性の固定値がハイライトされた状態で、Ranorex Spy が開かれます。変数の作成ボタンをクリックします。
変数に分かりやすい名前を付けて、OK をクリックします。
黄色のバーにある、APPLY をクリックします。

Assigning a repository variable

リポジトリ アイテムの RanoreXPath で変数が確認できます。

Defined list item variabel

Department セクションの固定値を置換したリポジトリ変数 $lstDepartment

ラジオ ボタンの変数化

ここでは、性別を選択するリポジトリ アイテムを変数化します。サンプル ソリューションの SelectGender モジュールでは、クリック アクションは、ラジオ ボタン Male を指すリポジトリ アイテムにリンクされています。このリポジトリ アイテムの RanoreXPath の、@controlname=’rdbMale’ 属性が、これに相当します。

データ ソースの指定で別の性別をクリックできるようにするため、固定の属性値を、変数 $selGender で置き換えます。

Making radio button selection variable
Note icon

メモ

後の行程でデータ ソースを作成する際に、性別選択のエントリが、2 つのラジオ ボタンのそれぞれの @controlname 属性 (つまり、rdbMalerdbFemale) と完全に同一であることを確認する必要があります。エントリに誤りがある場合、Ranorex Studio は UI 要素を識別できません。例えば、@controlname=’Male’ を指定したリポジトリ アイテムは、何も返しません。

tipp icon

ヒント

データ駆動型テストを、ローカライゼーションに対してより堅牢にするためには、ControlName などの属性を使用することをおすすめします。

変数の定義は以下の手順でおこないます。

クリック アクションを選択し、右クリック メニューから、リポジトリ アイテム変数の作成 をクリックします。

Making a repository item variable...

Text 属性の固定値がハイライトされた状態で、Ranorex Spy が開かれます。変数の作成ボタンをクリックします。
変数に分かりやすい名前を付けて、OK をクリックします。
黄色のバーにある、APPLY をクリックします。

Applying repository variable

リポジトリ アイテムの RanoreXPath で変数が確認できます。

Radio button selection made variable

変数 $selGenderGender ラジオ ボタンの選択を指定するリポジトリ アイテム

バリデーション変数の定義

このサンプル テストには、エントリが追加されたときにデータベース カウンタが正しく更新されるかどうかを確認する手順が含まれています。このバリデーションが動作するためには、変数化する必要があります。

ここでは、ValidateEntries モジュール内のバリデーション アクションの定数値 Match を変数に置き換えます。

Example for test validation variables
Note icon

メモ

原則的に、バリデーション変数はアクション変数と同じです。ただし、バリデーション アクションは、他の多くのアクションよりも複雑であるため、個別に説明します。

変数の定義は以下の手順でおこないます。

Match value のドロップダウン リストから、As new variable… をクリックします。
変数に分かりやすい名前を付けて、OK をクリックします。
作成した変数は、アクション テーブルで緑色で表示されます。

Definition of validation variable

デフォルト値

変数のデフォルト値は、利用可能なデータソースがない場合に使用される値です。例えば、レコーディング モジュール ビューから、レコーディング モジュールを実行した場合などです。したがって、デフォルト値には意味がある値を指定してください。

Note icon

メモ

定数値を変数で置き換えた場合、元の定数値がデフォルト値として設定されます。

変数の表示と管理

変数の表示と管理は、いくつかの場所からおこなうことができます。レコーディング モジュールのすべての変数のステータスを確認できるデータ バインディング パッド、変数の追加と編集をおこなえる編集の編集ダイアログなどです。

データ バインディング パッド

レコーディング モジュール ビューを開くと、データ バインディング パッドには、レコーディング モジュールのアクション変数、リポジトリ変数、およびコード変数のステータスが、それらのデフォルト値と共に表示されます。データ バインディング パッドには、変数の編集ダイアログで表示されるものと同じ、ステータス アイコンが表示されます。ステータス アイコンについては、以降で説明しています。

レコーディング モジュール ビューで、ツールバーから、データ バインディングの表示 をクリックします。
アクション変数やリポジトリ変数、およびそれらのステータスとデフォルト値を表示するには、以下の場所をクリックします。

アクション テーブル
リポジトリ

レコーディング モジュールに、コードでのみ使用されている変数がある場合、それらの変数は最初、Not in use に表示されます。コード変数の識別 ボタンをクリックすることで、In use in code に表示されるようになります。

変数の編集ダイアログ

このダイアログで、変数のスタータスの表示、および変数の追加と編集をおこなうことができます。

変数の編集ダイアログは、以下の手順で開きます。

アクション変数の場合、変数を定義しているレコーディング モジュールを開き、VARIABLES… をクリックします。

リポジトリ変数の場合、リポジトリ ビューで、変数… をクリックします。

以下のようなダイアログが表示されます。

変数のステータス、名前、デフォルト値
変数の編集ツールバー

  • 変数をクリップボードにコピー/クリップボードから貼り付けします。
  • 変数を追加します。
  • 未使用の変数を削除します。
  • (アクション変数ダイアログの場合のみ) リポジトリ変数を、現在のレコーディング モジュールに、アクション変数としてコピーします。

変数のステータスの凡例

  • 使用中: 変数がアクションで使用されています。変数がデータソースにバインドされているかは示しません。
  • リポジトリで使用中: (アクション変数ダイアログの場合のみ) 上記と同じですが、対象の変数はリポジトリからコピーされたものです。
  • 未使用: 変数が定義されていますが、アクションで使用されていません。変数がデータソースにバインドされているかは示しません。

定義した変数の概要

データ駆動型テストに必要なすべての変数を定義しました。テスト スイート ビューに切り替えると、モジュールごとに定義された変数の数が確認できます。これらの変数は、まだバインドされていない、つまりデータ ソースが割り当てられていないことに注意してください。

次の章では、データ ソースを定義し、それをテスト ケースに割り当てます。データ ソースを管理するためのオプションについても説明します。

Defined, but unbound example variables

定義済みだが、またバインドされていない変数