モジュール変数とデータ駆動型テスト
データ駆動型テストを実行するには、変数を定義する必要があります。コード モジュールの外では、Ranorex Studio の UI を使って簡単に設定することができますが、コード モジュール内では、モジュール変数を使用する必要があります。モジュール変数だけが、外部データを参照できます。
メモ
モジュール変数と、ローカル/グローバル コード変数を混同しないでください。コード変数は、コード内部の値を参照するためのものです。
テストの定義
このテストでは、外部データソース (CSV ファイル) から個人データを取得し、それを Demo Application のデータベースに入力します。これらすべてをコード モジュールで実行する必要があります。
外部データ ソース (例: CSV)
すべてのデータが入力された Demo Application の表示
参照
レコーディング モジュールでの実現方法については、Ranorex Studio アドバンスト > ⇢ データ駆動型テスト を参照してください。
モジュール変数の役割
前述のように、ローカルまたはグローバル コード変数は、外部データにアクセスできません。そのため、モジュール変数が必要です。モジュール変数は、外部データ ソースとコード モジュールの間の橋渡しとして機能します。
CSV などによってテスト スイートに追加された外部データ ソース
外部データにバインドされた、テスト スイート ビューでのモジュール変数
コードでのモジュール変数
モジュール変数の作成
外部データ ソースから First name を取得し、対応するデータベース フィールドに入力するコード モジュールを作成しましょう。このプロセスは、⇢ アクション変数 を使用するすべてのフィールドで同じです。
ラジオ ボタンとリスト要素である Gender と Department については、モジュール変数を、⇢ リポジトリ変数 に接続する必要があります。これについては後で説明します。
InsertPerson.cs という名前の新しいコード モジュールを作成します。
空のコンストラクターで右クリックし、新しいモジュール変数の追加… をクリックします。
モジュール変数に varFirstName という名前を付け、デフォルト値として John を設定し、OK をクリックします。
以下のような形で、モジュール変数が作成されます。
デフォルト値を持つ、Private な変数 _varFirstName
内部参照
Get および Set メソッドを持つ、Public なモジュール変数 varFirstName
この変数は、Ranorex Studio の UI でも確認できます。
モジュール ブラウザーで、コード モジュールの一部として表示されている変数
テスト スイート ビューで、バインドされていないとして表示されている変数
これは、モジュール変数が正しく定義され、コード モジュールの外側で認識されていることを示しています。これで、外部データを処理する準備が整いました。
モジュール変数とリポジトリ アイテムの接続
モジュール変数を定義しましたが、これを正しいリポジトリ アイテムに接続する必要があります。これをおこなわないと、外部データ ソースから値を受け取ることができません。
モジュール変数を、First name テキスト フィールドを表すリポジトリ アイテムに接続します。
InsertPerson クラスの最初に、private static なリポジトリを追加します。
空のコンストラクターで、リポジトリをインスタンス化します。
Run() メソッドで、モジュール変数からリポジトリ アイテムへのデータの転送処理を実装します。
モジュール変数とデータのバインド
最後に、外部データ ソースからリポジトリ アイテムへのデータ転送処理を完成させるために、モジュール変数をデータにバインドする必要があります。これは、Ranorex Studio の UI でおこなう必要があり、コードではおこないません。
参照
データ ソースの管理と割り当てについては、Ranorex Studio アドバンスト > データ駆動型テスト > ⇢ データ ソースの管理と割り当て を参照してください。
データ バインディングについては、Ranorex Studio アドバンスト > データ駆動型テスト > ⇢ データ バインディング を参照してください。
モジュール変数とデータのバインドは、以下の手順でおこないます。
CSV data connector を使用して CSV データ ソースを追加し、myData という名前を付けます。対象の CSV ファイル RxTestDatabase.csv は、サンプル ソリューションの中にあります。または、自分で作成します。
CSV データ ソースを、コード モジュールが含まれるテスト ケースに割り当てます。
データ バインディング タブで、FirstName カラムを、モジュール変数 varFirstName とバインドします。他のカラムについても同様に設定します。
これでデータ バインドは完了しました。モジュール変数は、外部データ ソースからデータを取得し、それをリポジトリ アイテムに渡します。
モジュール変数によるリポジトリ アイテムの指定
テキスト入力アクションの値と同じように、リポジトリ アイテムも可変にすることができます。これは、メニュー エントリー、リスト要素、ラジオ ボタンなどの UI 要素で特に役立ちます。この目的で使用される変数は、リポジトリ変数と呼ばれます。ここでは、ラジオ ボタンとリスト要素である、Gender と Department を例に取り上げます。
このセクションでは、モジュール変数を使用して既存のリポジトリ変数をコードで扱う方法を説明します。そのためにはまず、⇢ リポジトリ変数 で説明されている手順に従って、Ranorex Studio の UI で、この変数を定義する必要があります。最初にラジオ ボタンの例を、次にリスト要素の例を取り上げます。
テストの定義
データ ソースから取得した値(”Male” または “Female”)に基づいて、ラジオ ボタンを選択します。レコーディング モジュールの場合には、以下のような方法になります。
Demo Application の Gender ラジオ ボタン
変数 $vatGender を RanoreXPathに含む、ラジオ ボタンを表すリポジトリ アイテム
リポジトリ アイテムにリンクされたマウス クリック アクション
参照
レコーディング モジュールでの実現方法については、Ranorex Studio アドバンスト > データ駆動型テスト > ⇢ 変数の定義 を参照してください。
または、この章にあるサンプル ソリューションを確認してください。
ラジオ ボタンの指定
コード モジュール SelectGender.cs で、以下の手順をおこないます。
SelectGender クラスで、private static なリポジトリ myRepo を宣言します。
SelectGender クラスのコンストラクターで、リポジトリをインスタンス化します。
コンストラクターの下に、モジュール変数 ModVarGender を挿入します。このモジュール変数は、リポジトリ変数 $varGender の値を取得します。ボタンの選択処理をおこなうため、以下のようなコードを実装します。
変数 $varGender の現在の値を返す Get メソッド
Set メソッド
変数 $varGender に、データ バインディングによってデータ ソースから取得された現在の値を設定します。
次に、Select() メソッドを呼び出して、変数の値で定義されているラジオ ボタンを選択します。
サンプル ソリューションのダウンロード
このサンプル ソリューションには、この章でおこなったすべての手順が含まれています。
サンプル ソリューション
Theme: Module variables
Time: 30 minutes
インストール:
任意のフォルダーに解凍します。
Ranorex Studio を起動し、ソリューション ファイル RxDatabase.rxsln
を開きます。
ヒント
このサンプル ソリューションは、Ranorex Studio 8.0 以降で利用できます。8.2 以降を利用している場合には、ソリューションのアップグレードをおこなってください。