HTML アプリケーションの機能テストを行う際のヒント

このトピックでは、HTML アプリケーションをテストするためにスクリプトを記録および再生するときのヒントとなる情報を記載します。

まず記録を開始してからアプリケーションを開始する

HTML アプリケーション上でスクリプトを記録するときには、Functional Tester を使用して記録中にアプリケーションを開始します。Functional Tester は、指定する HTML ページをデフォルトのブラウザーまたは特定のブラウザーに表示します。

HTML メニューの吹き出しの記録

HTML アプリケーション上でスクリプトを記録中に、アクティブなドロップダウン・メニューの上にマウスを乗せると、ドロップダウン・メニューの吹き出しを記録できます。 ドロップダウン・メニューは DIV タグでインプリメントされています。 ドロップダウン・メニューの吹き出しを記録し、かつサブメニューをドロップダウンするには、メニュー項目の上にマウスを載せて Shift を押します。マウスは、メニュー項目テキストの右のブランク・スペースではなく、メニュー項目のテキストの上に乗るようにしてください。

スクリプト内で deleteCookies メソッドを使用する

deleteCookies メソッドの 2 つのバージョンを使用することができます。 1 つのメソッドは現在のプロファイルまたはユーザーのすべての Cookies を削除し、もう 1 つのメソッドは現在のプロファイルまたはユーザーの Cookies のうち特定のパスまたはドメイン内のものを削除します。 詳細は、com.rational.test.ft.object.interfaces パッケージにある「Functional Tester API Reference」で IBrowserObject を参照してください。

スクリプトへのメニュー項目の組み込みは避ける

ブラウザー・メニュー上の各選択項目はそれぞれの画面座標に基づいて記録されるため、ブラウザーのサイズや位置が変わってしまうと、スクリプトが忠実に再生されない可能性があります。また、ブラウザーの種類によってメニューも異なるため、それが原因でスクリプトの再生が正しく行われないこともあります。

再生中に Java アプレットの全体が見えるようにする

ブラウザーが小さいサイズに変更されている場合には、アプレット・オブジェクトが見えなくなっていても、Functional Tester が再生中にスクロールしてアプレット・オブジェクトを見えるようにすることはありません。

loadURL( ) メソッドを使用して URL を変更する

ブラウザー内の「アドレス」フィールドの位置は画面座標に基づいており、ブラウザーのサイズや位置が変わると、その座標も変わってしまいます。「アドレス」フィールドをクリックして新規 URL を入力する方法では、スクリプトは大抵失敗します。記録中に、スクリプトにブラウザー・クリック (Browser_htmlBrowser) を挿入して URL を変更します。

  1. 記録中に、ブラウザー・ヘッダーの空きスペースをクリックして、テスト・オブジェクト・マップにブラウザー・クリックを組み込みます。
  2. 記録後に、スクリプトを表示して、スクリプト内のブランク行にカーソルを置きます。
  3. スクリプト・エクスプローラーで「テスト・オブジェクト」を展開し、「Browser_htmlBrowser」アイコン 「Browser_htmlBrowser」を右クリックして「カーソル位置に資産を挿入」を選択します。
  4. loadURL(String) メソッドを選択します。
  5. loadURL ステートメントの括弧の中に、新規 URL の名前を入力します。
  6. Java™ の場合のみ、行末にセミコロン (;) を挿入します。VB.NET の場合は不要です。

INPUT エレメントでの .size プロパティーの使用

INPUT エレメントに .size プロパティーを使用し、INPUT エレメントの HTML 内には .size プロパティーを指定しない場合、Internet Explorer によって戻されるデフォルト値は 20 です。

両方のブラウザーに共通のツールバー・ボタンを使用する

異種プラットフォームにわたるスクリプトを作成する場合、一方のブラウザーにしかないツールバー・ボタンの使用は控えます。以下のツールバーは、両方のブラウザーに共通です。

「閉じる」ボタンを使用してブラウザーを終了する

Internet Explorer で「閉じる」ボタンを使用できます。異種プラットフォームにわたってスクリプトを記録する場合、それ以外の方法でブラウザーを終了することは避けてください。 例えば、Alt+F+C は Internet Explorer のみで機能します。いずれかのキー組み合わせを使用すると、その組み合わせを使用しないブラウザーでスクリプトを実行したときに失敗します。

ブラウザー・オブジェクトの .readystate を検査する

ブラウザー・オブジェクトの作動可能状態が 4 でない場合、HTML アプリケーションをテストする際にスクリプト再生が失敗することがあります。スクリプトの再生中には、ブラウザーの作動可能状態が 4 であることを確認してください。 次の例に示すように、テスト・スクリプトを手動で変更することによって、この確認を行うことができます。

Java でブラウザーの状態をチェックするスクリプト: logInfo("Ready State #: "+browser_htmlBrowser().getProperty(".readyState").toString());

.Net でブラウザーの状態をチェックするスクリプト: LogInfo("Ready State #: " & Browser_HtmlBrowser().GetProperty(".readyState").ToString)

waitForExistence メソッドを使用してブラウザーの始動速度を補正する

異種ブラウザーにわたってスクリプトを記録する場合は、waitForExistence メソッドを使用してブラウザーを待機します。例:

  1. 記録中に、アプリケーションを開始します。
  2. 「記録中」ツールバーの「検査ポイント・コマンドまたはアクション・コマンドの挿入」ボタン 「検査ポイント・コマンドまたはアクション・コマンドの挿入」ボタン をクリックします。
  3. 検査ポイントおよびアクション・ウィザードの「オブジェクトの選択」ページで、「オブジェクト・ファインダー」アイコン 「オブジェクト・ファインダー」アイコン をクリックして (ブラウザーそのものではなく) HTML ページ上にドラッグします。
  4. 「次へ」をクリックします。
  5. 検査ポイントおよびアクション・ウィザードの「アクションの選択」ページで、「選択されたテスト・オブジェクトを待機します」オプションをクリックします。
  6. 必要な場合は「デフォルトの使用」をクリアして「最大待ち時間」「チェック間隔」の設定を変更します。それぞれ 2 分と 2 秒になっています。
  7. 「完了」をクリックします。

異種プラットフォームにわたるスクリプトでは避けるべきクリックおよびキーの組み合わせ

一部のブラウザーでは、ポップアップ・メニューを処理する必要から、右クリックの直後にリンクをクリックしても無視されます。このクリックの組み合わせが必要な場合には、リンクを右クリックし、文書内の空きスペースをクリックしてから、リンクをクリックします。

一部のブラウザーでは、Ctrl を押したままリンクをクリックすると、ブラウザーの別のインスタンスにページが開きます。その他のブラウザーでは、同じキー・シーケンスの操作が通常のリンク・クリックとなります。このアクションの組み合わせを含むスクリプトを再生すると、ブラウザーによって動作が異なってしまうため、異種ブラウザーでのテストでは避けてください。

形式不良の HTML はユーティリティーを実行して修正する

ときどき HTML のエラーが原因で、HTML DOM 階層の解釈がブラウザーによって異なることがあります。あるブラウザーでは正常に実行するスクリプトでも、別のブラウザーでは失敗するということがあります。1 つのスクリプトを各ブラウザーに対して記録し、その結果として生成されるテスト・オブジェクト・マップを比較してください。それぞれのマップに表示される階層が異なっている場合には、HTML Tidy などのユーティリティーを実行します。ユーティリティーがエラーを記録した場合は、そのエラーが原因でオブジェクト・モデルの解釈が異なり、結果として階層も異なっている可能性があります。HTML Tidy は World Wide Web Consortium (www.w3.org) から入手できます。

ポップアップ・メッセージ・ボックスの処理

一部のブラウザーでスクリプトを記録中に、暗号化の注意などのポップアップ・メッセージ (ブラウザー・ユーザー・インターフェース・ダイアログ・ボックス) が表示されることがあります。異種ブラウザーにわたるスクリプトを記録する場合、このようなメッセージ・ボックスは他のブラウザーでは通常表示されないため、スクリプトには組み込みません。この問題を回避するため、次のような操作を行います。

  1. ポップアップ・メッセージが表示されたら、記録を一時停止します。
  2. このメッセージが次回に表示されないようにする、メッセージ上のチェック・ボックスを選択します。
  3. 「キャンセル」をクリックしてメッセージ・ボックスを閉じます。
  4. 記録を再開します。

この種のメッセージ・ボックスを処理するようにスクリプトを修正することもできますが、コードが複雑になる可能性があります。詳しくは、『Rational Functional Tester 機能の拡張』のトピックを参照してください。

異種ブラウザー互換のスクリプト (Functional Tester がサポートするすべてのブラウザーに対して互換性があるスクリプト) を記録する場合は、ポップアップ・メッセージ・ボックスが記録されないようにしてください。 異種ブラウザー互換のスクリプトを記録していない場合は、スクリプト内にポップアップ・メッセージ・ボックスが記録されていてもかまいません。

Functional Tester は、Windows® プラットフォームで「ログイン」、「ファイルのダウンロード」、「Certificate/Security Warnings」、File Picker (「ファイルを開く」/「ファイルを保存」)、および「印刷」ダイアログ・ボックスをサポートします。これらのユーザー・インターフェースのダイアログ・ボックスは特定のブラウザー専用であり、異種ブラウザー互換ではありません。通常、「ログイン」ダイアログ・ボックスは異種ブラウザー互換です。

アプリケーションを構成せずに URL をテストする

アプリケーションを構成すると、Functional Test はアプリケーション名をアプリケーション構成ツールに追加します。 多数の異なる URL をテストする場合には、「アプリケーション」リストが長くなることがあります。 URL をリストに追加したくない場合は、空のスクリプトで startBrowser コマンドを使用してテストできます。

  1. 記録を行わずに、新しい機能テスト・スクリプトを作成します。
  2. ブランク行に次のコマンドを入力します。

    startBrowser ("url");

  3. スクリプトを保管して実行します。
  4. ページが表示されたら、「Functional Test」ツールバーの「アクティブな Functional Test スクリプトに記録を挿入」 「アクティブな Functional Test スクリプトに記録を挿入」ボタン をクリックしてページに対する記録を開始します。

HTA のテスト

Functional Tester は、Microsoft® HTML アプリケーション (MSHTA) のテストをサポートしています。 MSHTA は、テストする前に、mshta.exe を実行して構成しておく必要があります。テストしたい各 HTA を構成するには、以下の操作を行います。

  1. 「アプリケーション構成ツール」の「種類」フィールドで、「実行可能ファイル」または「バッチ」を選択します。
  2. 「実行可能ファイル」フィールドで、mshta.exe を選択します。
  3. 「引数」フィールドで、パラメーター x.hta を実行可能ファイルに渡します。ここで x は HTA ファイルの名前です。

詳しくは、『HTML アプリケーションをテスト用に構成する』を参照してください。

TestManager を使用してリモート・テストを実行する

TestManager がインストールされている場合は、TestManager を使用して HTML アプリケーションのテストをリモート側の Linux® コンピューターで行えます。詳しくは、『ローカルおよびエージェント・コンピューター』のトピックを参照してください。

Java プラグインに関するエラーの処理

Java プラグインに関するエラーが戻される場合、HTML アプリケーションをテストしているか、または HTML ログ内の「結果の表示」リンクからコンパレーターを開始しているのであれば、ブラウザーの Java プラグインが正しく構成されていることを確認する必要があります。 手順については、ブラウザーの Java プラグインの使用可能化についての関連トピックを参照してください。

TestManager の統合についての注記: Functional Tester は、Rational TestManager バージョン 7.0.2 と統合されています。TestManager の 7.0.2 バージョンをご使用の場合、Functional Tester と TestManager の統合機能を使用することができます。


フィードバック