コンボボックスに対するデータ駆動型テスト

テスト対象アプリケーションにコンボボックスが存在する場合、テストケースによって選択したい項目が異なる場合があるかと思います。
このように、同一操作であっても流し込むデータが複数パターン存在する場合には、データ駆動型テストを利用します。
本記事では、データ駆動型テストによって、コンボボックスの選択項目を動的に変更する方法についてご紹介します。
テスト対象アプリケーション
Ranorex 社のサンプルのWebアプリケーションを利用します。
Ranorex Studio – Web example page
https://www.ranorex.com/web-testing-examples/
TestForm内にあるコンボボックスを操作対象とします。
本コンボボックスでは、 green/blue/yellow のいずれかを選択できます。

コンボボックスに対するデータ駆動型テストを実施するには、以下の操作をおこないます。
操作手順
1. アクションの追加
2. 変数化
3. データソースの登録と割り当て
4. 変数とデータソースの紐づけ
5. テストの実行
1. アクションの追加
Ranorex にてコンボボックス内の項目を選択する場合、①Set valueアクション もしくは ②Invoke action – Select() のいずれかを使用します。
方法① Set valueアクションの追加
1つ目の方法として、Set value(※)アクションを利用します。
※Set valueアクションとは、対象オブジェクトが持つ属性の値を書き換えるアクションとなります。
まずは対象のオブジェクト情報をリポジトリ内に取得した後、Set valueアクションを設定します。
操作手順は、以下となります。
1. テスト対象アプリケーションを起動し、対象のオブジェクトを画面上に表示します。
2. Ranorex Studio を起動し、メニュバーから Spyの起動 をクリックします。
3. 左上の TRACK ボタンを選択し、対象のコンボボックス を赤枠で囲み、その上でクリックします。
→Ranorex Spy上で、対象のオブジェクトがハイライトされます。
4. BROWSER&RESULTS の一覧から、ハイライトされたオブジェクト(Select ‘testcolor’)を選択し、右クリックします。
5. ショートカットメニューの一覧から リポジトリに追加 を選択します。

6. リポジトリ内に、対象のオブジェクト(Testcolor)が追加されます。

7. 下側のリポジトリから、対象のオブジェクト(Testcolor)を選択し、上側のアクションテーブルへドラックアンドドロップを行い、ショートカットメニューより “値の設定(Set value) > TagValue” を選択します。
上記手順により、Set valueアクションが追加されます。

【Set valueアクション追加時に選択する属性について】
今回の対象オブジェクト(Testcolor)では、各項目の値を TagValue属性 で保持しています。
そのため、今回はSet valueアクション追加時にTagValue属性を選択しています。

どの属性を選択するかについては、対象のオブジェクトによって異なりますので、対象オブジェクトが保持する情報をご確認ください。
オブジェクト情報の確認方法については、 Ranorex Spy の使用方法 をご参照ください。
方法② Invoke action – Select() の追加
2つ目の方法として、Invoke action – Select() (※)を利用します。
※Invoke action は、マウスの操作を介さずに、対象オブジェクトに対して直接イベントを発生させるアクションとなります。
テスト対象のアプリケーションによっては、対象オブジェクトがTagValue属性といった情報を保持していない場合があります。
この場合、Invoke action – Select() で対応します。
操作手順は、以下となります。
1. テスト対象アプリケーションを起動し、対象のオブジェクトを画面上に表示します。
2. Ranorex Studio を起動し、メニュバーから Spyの起動 をクリックします。
3. 左上の TRACK ボタンを選択し、対象のコンボボックス を赤枠で囲み、その上でクリックします。
→Ranorex Spy上で、対象のオブジェクトがハイライトされます。
4. BROWSER&RESULTS の一覧から、ハイライトされたオブジェクト(Select ‘testcolor’)を展開します。
→Select要素の配下には、3つの Option要素 が表示されます。
Option要素は、コンボボックスの各選択項目を認識するオブジェクトとなります。

5. 追加したいオブジェクトを右クリックし、ショートカットメニューの一覧から リポジトリに追加 を選択します。
今回は、Option ‘yellow’ を追加します。Option ‘yellow’ オブジェクトは、コンボボックスのyellow項目を認識するオブジェクトとなります。

6. リポジトリ内に、対象のオブジェクト(Yellow)が追加されます。

7. 下側のリポジトリから、対象のオブジェクト(Yellow)を選択し、上側のアクションテーブルへドラックアンドドロップを行い、ショートカットメニューより アクションの実行(Invoke action) > Select() を選択します。
上記手順により、Yellow オブジェクトに対する Invoke action – Select() が追加されます。

2. 変数化
データ駆動型テストにより、コンボボックスの選択項目を動的に変化させるには、一部の値を変数化します。
Set valueアクション / Invoke action – Select() を利用した場合のそれぞれの変数化は、以下の手順となります。
方法① Set valueアクション 利用時の変数化
Set valueアクションを利用する場合、コンボボックスの選択項目は Value 欄にて設定します。
TagValue属性の値(Value)に対して変数化をおこないます。
操作手順は、以下となります。
1. Set valueアクションのValue欄横の下矢印を選択し、 As new variable を選択します。
2. 任意の変数名を設定し、 OK ボタンをクリックします。
これにより、Value欄の値が変数化され、$変数名 として表示されます。

② Invoke action – Select() 利用時の変数化
Invoke action – Select() を利用する場合、アクションのRepository itemに登録しているオブジェクト情報で選択項目を認識しています。
今回は、Yellow オブジェクトのRanoreXPath内の属性値を変数化します。
Yellow オブジェクトのRanoreXPathは、以下となります。
/dom[@domain=’www.ranorex.com’]//select[#’testcolor’]/option[@value=’yellow‘]
上記のRanoreXPathでは、option要素のvalue属性を使用しており、値は yellow が設定されています。
本オブジェクトでは、value属性の値を変数化します。
操作手順は、以下となります。
1. Ranorex Studioにて、対象のレコーディングモジュールを開きます。
2. 下側のリポジトリから、対象のオブジェクト(Yellow)を選択し、 EDIT IN SPY をクリックします。
3. PATH EDITORのツリー画面より、option[@value=’yellow’]要素 を選択します。
4. 右側のvalue属性の値 yellow 横の下矢印をクリックし、 As new Variable を選択します。

5. 任意の変数名を設定し、 OK ボタンをクリックします。
これにより、value属性の値が変数化され、RanoreXPath内のvalue属性の値が $変数名 として表示されます。

3. データソースの登録と割り当て
流し込むデータソースの登録と割り当てをおこないます。
Ranorex では、外部のデータソースとして CSV/Excel/SQL に対応しています。
例として、以下のようなCSVファイルを用意します。
1行目の値はカラム名となり、流し込まれるデータは2行目以降の値となります。

上記データソースと変数を紐づけた場合、対象の変数に対してblue→green→yellow の値が順番に流し込まれます。
流し込むデータソースの登録と割り当ての手順は、ユーザーガイドの データ ソースの管理と割り当て をご確認ください。
4. 変数とデータソースの紐づけ
変数とデータソースのカラム名を紐づけます。
カラム名 Value と 変数 NewVariable を紐づける場合、以下のような設定となります。

変数とデータソースの紐づけの手順は、ユーザーガイドの データ バインディング をご確認ください。
5. テストの実行
テストを実行します。
Set valueアクションの場合、Set valueアクションのValue値にデータソースの値が流し込まれます。
Invoke action – Select() の場合、Yellowオブジェクトのvalue属性の値にデータソースの値が流し込まれます。
これにより、コンボボックスの選択項目が動的に変化します。

まとめ
Ranorex では、入力フォームなどに対する入力操作だけでなく、コンボボックスに対してもデータ駆動型テストを実施できます。
今回ご紹介した例を基に、ぜひコンボボックスに対するデータ駆動型テストをお試しください。