すべてのブラウザのテストに使用する 1 つのテストの作成
複数のブラウザでアプリケーションまたは Web ページをテストする場合,その目的は,すべてのブラウザ・タイプにおけるアプリケーションまたは Web ページの動作の一貫性を確認することです(そのように設計されていない場合を除きます)。さらに,テストを準備するときには,すべてのブラウザに同じテストを使用し,ブラウザの違いに対応するためのメンテナンスと更新を最小限にとどめることが求められます。とはいえ,異なるブラウザのテスト用に 1 つのテストを作成する場合,次のようにいくつかの課題が存在します。
適切なオブジェクトとプロパティの準備
UFT One のアプリケーション・テストでは,テスト用のオブジェクト・リポジトリ(複数可)にアクセスします。このリポジトリには,アプリケーションのオブジェクトをテストするのに必要なオブジェクトが格納されています。(アプリケーション・セクションまたは Web ページにつき)1 つまたは 1 セットのオブジェクト・リポジトリを作成し,そのオブジェクト・リポジトリを使用してすべてのブラウザ・バージョンでテストを実行し,UFT One がアプリケーションまたは Web ページのオブジェクトを問題なく認識できることが理想です。
しかし実際には,正しいオブジェクト・リポジトリに正しいオブジェクトを準備するのは必ずしも容易ではありません。まず,オブジェクトの認識の問題があります。特定のオブジェクトに対する UFT One の認識がブラウザのタイプやバージョンによって大幅に異なる場合,UFT One が正しいオブジェクトを検出できるように,ブラウザ・タイプごとに別々のリポジトリの作成が必要になる可能性があります。しかも,特定のブラウザでテストを実行するときに,テスト実行用に正しいオブジェクト・リポジトリが必要です。
こうしたシナリオに備え,テスト実行の最初にオブジェクト・リポジトリを動的に追加できるように UFT One を設定する方法があります。詳細については,テスト実行中のオブジェクト・リポジトリの動的なロードを参照してください。
動的に作成されたオブジェクト
アプリケーションには,動的に作成されるオブジェクト,つまり,ある処理の結果としてページに表示されるオブジェクトが時として存在します。テストとオブジェクト・リポジトリの作成の際,これらのオブジェクトは認識されません(UFT One が最初にアプリケーションを学習するときに存在しないため)。他の多くのオブジェクトと同様に,これらのオブジェクトの作成方法と認識方法はブラウザによって大きく異なるため,UFT One でこれらを認識するのはさらに困難になります。
UFT One でこれらのオブジェクトを認識できるようにするには,記述的なプログラミングを使用します。詳細については, プログラム的記述を参照してください。
動的なページ更新
各ブラウザ・バージョンでは,通常のワークフローの一環として,ブラウザまたはページの動的な更新も行われます。たとえば,アラート・ダイアログはブラウザ・バージョンによって異なるため,そのダイアログを認識,処理,無視する方法を UFT One で知るのは困難です。アラート・ダイアログを閉じるテスト・ステップを作成できるブラウザ・タイプもあれば,ダイアログのステップの認識や実行が難しいブラウザ・タイプもあります。また,ブラウザによっては,こうしたダイアログが存在しない場合もあります。アラート・ダイアログを閉じない限りテストの続行すらできないブラウザもあります。このようなブラウザでは,ダイアログを認識できず,ダイアログに対する適切なステップを実行できないという理由だけで,テストが失敗します。
ブラウザのダイアログ・ボックスについては,Browser.HandleDialog,Browser.GetDialogText,Browser.DialogExists メソッドのように,ポップアップ・ダイアログを適切に処理できる専用のメソッドがあります(ただし,こうしたメソッドさえも,各ブラウザでまったく同じように機能するとは限りません)。
また,ブラウザ固有の動作に対応するために,テストにステップを追加する方法もあります。詳細については,ブラウザ固有の動作のためのステップの追加を参照してください。
ブラウザまたはアプリケーション固有の動作
同じアプリケーション操作([戻る]ボタンを押すなど)に対する動作が,ブラウザによってまったく異なる場合があります。たとえば,予約アプリケーションの場合,Internet Explorer で[戻る]ボタンを押すと,前に表示したページに戻りますが,Firefox や Chrome で[戻る]ボタンを押すと,アプリケーションからログアウトします。
こうした問題があるため,動作の違いに即したテストを準備する必要があります。いくつかの解決策が考えられます。
-
(たとえば,上の例の場合)前/次のページに移動する代わりに,アプリケーションの特定の URL/場所に移動する。
-
アプリケーションまたはアプリケーションのオブジェクトが特定の状態に達するまで(オブジェクトの Exist プロパティでチェック可能)テストを一時停止する Wait ステップを挿入する。
詳細については,ブラウザ固有の動作のためのステップの追加を参照してください。