クロスブラウザーテストの自動化

Webアプリケーションをテストする場合、1つのブラウザーだけでなく、すべての主要なブラウザーでテストする(クロスブラウザーテストを行う)のが最善であるのは明らかです。このブログ記事では、Webサイトのブラウザーテストを記録し、記録されたテストを自動的に複数のブラウザーで実行し、ブラウザー互換性テストを行う方法を説明します。
Ranorexはクロスブラウザーテスト対応ツールであり、Microsoft Internet Explorer、Mozilla Firefox、Google Chromeでテストを実行できます。
- サンプルテストスイートプロジェクト
- クロスブラウザー テスト
サンプルテストスイートプロジェクト
複数ブラウザーによるテストの実行方法を具体的に示すため、RanorexのVIP データベーステストWebアプリケーションにデータを入力する簡単なサンプルを作成します。最初にテストケースを作成し、2つのレコーディングを含めます。1つはブラウザーをオープンするSETUPモジュールで、もう1つはブラウザーをクローズするTEARDOWNモジュールです。

OpenBrowser モジュールに “OpenBrowser” アクションを追加します。
URLに “http://www.ranorex.com/web-testing-examples/vip/” を指定し、ブラウザーとして “IE” を指定します。

次に、接続時および切断時にステータス文字列を検証するレコーディングモジュールを追加します。

レコーディングモジュールでは次の処理を行います。
- ステータステキストが “Online” に等しいことを検証します。
- 切断します。
- ステータステキストが “Offline” に等しいことを検証します。
- 再度接続します。
- ポップアップウィンドウで接続の確認を行います。
- ステータステキストが “Online” に等しいことを検証します。

接続ステータステキストを表すリポジトリアイテムが2つあり、1つは “Online” であり、もう1つは “Offline” であることを確認します。これによって、検証ステップの妨げになる問題を回避できます。サンプルアプリケーションでは、ステータステキストが “connecting…” から “Online” に変わるまでに多少時間がかかる場合があります。検証が適切に動作するよう、RanoreXPath に実際の検証を追加し、Webページにステータステキストがあるかどうかを検証します。そうした場合、リポジトリアイテムの検索タイムアウトを使用してステータステキストの変化を待機することになります。TestConnection レコーディングに加えて、データベースにVIPを追加するレコーディングを作成します。このレコーディングは、別のテストケースとして追加します。なぜなら、データ駆動でVIPの追加を行い、その際、繰り返しのたびにブラウザーをオープンまたはクローズしたり、接続をテストするのを避けたいからです。

レコーディングは次のようになります。

テストをデータ駆動型にするため、データソースのデータとバインドする変数を追加します。名および姓の入力キーシーケンスに、それぞれ変数 $FirstName および $LastName を設定します。カテゴリを選択するには、SetValueアクションを追加し、変数 $Categoryに TagValue を設定します。性別を設定するには、該当するリポジトリアイテムの RanoreXPath に変数を追加します。さらに、変数 $VIP_Count と比較してVIPの数を検証します。レコーディングを作成したら、Add_VIPテストケースのためのデータソースを作成し、AddVIPレコーディングの変数とデータテーブルをバインドします。



最後に、CloseBrowserモジュールにClose Applicationアクションを追加し、リポジトリアイテムとしてWebアプリケーションのアプリケーションフォルダーを指定します。

これで、次のテストスイートプロジェクトを実行できるようになりました。
- SETUPモジュールで、Internet Explorer を使用して Webアプリケーションを開きます。
- 接続テストを実行します。
- データ駆動型アプローチに従って3つのVIPデータを追加します (3つのVIPデータはシンプルなデータテーブルに格納されます)。
- Webアプリケーションに格納されたVIPの数を検証します。
- TEARDOWNモジュールでブラウザーをクローズします。
クロスブラウザー テスト
これらのステップを IE だけではなく、サポート対象の他のブラウザーでも実行するには、“OpenBrowser” レコーディングで起動されるブラウザーを変数にします。
“OpenBrowser” レコーディングを開き、起動されるブラウザーを編集します。”IE”の代わりに ”As new Variable…” を選択し、BrowserNameという名前の新しい変数を追加します。


その後、“Add_VIP_and_Validate” テストケースに新しいデータテーブルを追加し、他のブラウザーの名前を入力して “BrowserName” 変数とデータコネクタをバインドします。



このようにブラウザーを変数にして、サポート対象のすべてのブラウザー名を格納したテーブルと変数をバインドすると、サポート対象のすべてのブラウザーでテストスクリプトを実行できます。

(この記事は、開発元 Ranorex 社 Blog 「Cross-Browser Test Automation with Ranorex」2016年04月19日の翻訳記事です。)