< 前へ | 次へ >

演習 8: オブジェクト・マップの更新

この演習では、オブジェクト・マップを使用してオブジェクト認識に関する警告を修正します。 また、より柔軟なオブジェクト認識のために正規表現を使用します。
認識の失敗または警告が生じたときは、ログ・メッセージを参照してください。 演習 7 の終了時に、ログを開いたままにしておきました。 開いていない場合は、「プロジェクト」ビューでログをダブルクリックして開きます。 1 つの警告がログ内に残っています。 イベント見出しは、「オブジェクト認識が弱いです (警告しきい値を超えています)」です。
  1. ログの末尾に近い警告セクションで、 「ObjectLookedFor」および「objectFound」フィールドを参照します。

    ClassicsA で、パスワード・フィールドの名前は「Remember Password」です。 ClassicsB では、「Remember The Password」です。 ClassicsB 上でスクリプトを再生したとき、 この相異のためにオブジェクト認識は完全に一致しませんでした。

  2. ログ内の「行番号」フィールドを参照します。 その番号を記録して、ログを閉じ、Functional Tester に戻ります。
  3. スクリプト・ウィンドウ内の任意の箇所をクリックしてから、 「ナビゲート」 > 「指定行へジャンプ」をクリックします。
  4. ログ失敗メッセージの行番号を入力してから、 「OK」をクリックします。

    カーソルが、その行番号の左マージンに移動します。

    注: 「Functional Tester」ウィンドウの下部にあるインディケーターを参照して、 行番号を知ることもできます。 たとえば、「43:9」は行 43 の位置 9 を示します。
    スクリプト内の行は、次のようになっています。
    RememberPassword().clickToState(SELECTED); 
    この行は、 パスワード・チェック・ボックス上のクリックを表します。 スクリプト内のこの行は、どのオブジェクトが失敗しているかを示します。 これで、オブジェクト・マップ内でそのオブジェクトを探すことができます。
  5. オブジェクトを検索するには、スクリプト・エクスプローラー (右ペイン) 内でテスト・オブジェクトのリストに戻ります。 「テスト・オブジェクト」フォルダーの下に「rememberPassword」がリストされていることが分かります。

オブジェクト・マップ内のオブジェクト認識プロパティーの表示

  1. 「rememberPassword」オブジェクトをダブルクリックして、 オブジェクト・マップ内でそれを開きます。
  2. オブジェクト・マップ・メニューで、「テスト・オブジェクト」 > 「すべてを受け入れる」をクリックします。 コマンドがグレー表示になっている場合、何も行わないでください。

    すべてのオブジェクトが黒のテキストに変わることに注目してください。 テキストは、マップ内のオブジェクトを受け入れるまで青色 (新規のオブジェクトを示すため) です。 新規に作成されたオブジェクト・マップを初めて見るときに、オブジェクトを受け入れてください。

  3. パスワード・チェック・ボックス・オブジェクトがマップ内で選択されていない場合、 それを選択します。 (それは、Java: checkBox: checkRemember: javax.swing.JCheckBox というオブジェクトです。)
  4. オブジェクト・マップの下部にある、「認識」タブにリストされた認識プロパティーを参照してください。

    「text」プロパティーに 「Remember Password」とあるので、 これは ClassicsA のオブジェクトであることが分かります。 これは「古い」オブジェクトです。 ただし、ClassicsB でスクリプトを再生したときに、オブジェクトのテキストが変更されたので、 Functional Tester はそれを「新しい」オブジェクトとして認識します。 この例では新しいオブジェクトのプロパティーを使用するので、 それをマップに追加する必要があります。

新しいオブジェクトのマップへの追加

新しいオブジェクトをマップに追加するには、 ClassicsB を開いてから、「Member Logon」ウィンドウを開きます。
  1. オブジェクト・マップ・メニューで、「アプリケーション」 > 「実行」をクリックします。
  2. 「ClassicsJavaB」 を選択します。(必ず B を選ぶようにします)
  3. 「OK」をクリックします。
  4. ClassicsCD で、任意の CD を選択してから「Place Order」をクリックします。

    「Member Logon」ウィンドウが開きます。

  5. 必要であれば、全体が見えるように、オブジェクト・マップを画面の低い位置に移動します。 「オブジェクト・マップ」メニューで、 「テスト・オブジェクト」 > 「オブジェクトの挿入」をクリックします。

    これは検査ポイント・ウィザードの「オブジェクトの選択」ページにある 「オブジェクト・ファインダー」ツールと同じです。

  6. 「オブジェクトを選択した後、次のページに進む」チェック・ボックスが選択されている場合、 それをクリアします。
  7. 「オブジェクト・ファインダー」ツールを使用して、 「Member Logon」ウィンドウで「Remember the Password」チェック・ボックスを選択します。

    チェック・ボックスを選択した後に、 「text」 プロパティーが Remember The Password に なっていることが分かります。 必要であれば、オブジェクト・マップの枠を拡大してプロパティーを表示してください。

  8. 「オブジェクトの選択」ページで、「次へ」をクリックします。
  9. 「オブジェクトの選択オプション」ページ上では何も変更しないで、 「完了」をクリックします。

    これで、新しいチェック・ボックス・オブジェクトがオブジェクト・マップに表示されるようになりました。

  10. 別のオブジェクトをクリックして、新しい項目が青色でリストされていること、 および「新規」という語が行の先頭に表示されていることに注目してください。

    これで、古いオブジェクトと新しいオブジェクトの両方がマップにリストされるようになりました。 次に、2 つのオブジェクトを統合して、新規オブジェクトのためのプロパティーをそれぞれから取得できるようにします。

オブジェクトの統合

  1. オブジェクトを統合するには、古いオブジェクト (CheckBox: checkRemember という ラベルの元のチェック・ボックス) をクリックしてから、それをリスト内の新しいオブジェクトの上にドラッグします。 マウス・ボタンを離す前に、カーソル矢印の先端を新しいオブジェクトに置きます。 その後、マウス・ボタンを離してください。

    「テスト・オブジェクトの統合」ウィザードが開きます。

  2. 必要であれば「統合」ウィザードを拡大して、下の方のセクションにある他の情報を表示します。

    左下のセクションに、元のオブジェクトのプロパティーが表示されています。 そのラベルは、「Source: RememberPassword」です。 これが ClassicsA でのチェック・ボックスのテキストでした。 右下のセクションでは、「Target: RememberThePassword」というラベルが付いています。 これが ClassicsB でのチェック・ボックスのテキストです。

    古いオブジェクトを新しいオブジェクトにドラッグしたので、 新しいオブジェクトの認識プロパティーがウィザードの最上部に入ります。 一般に、新規プロパティーが優先されるプロパティーであれば、Functional Tester はそれを最上部に配置します。 ただし、いくつかの古い管理プロパティーが優先される場合もあります。 たとえば、Functional Tester は古いプロパティー・セットの正規表現を保持します。 古いオブジェクトからのプロパティーを使用するには、 古いオブジェクトのグリッド内でそのプロパティーをダブルクリックすれば、 それは統合されるオブジェクト内にコピーされます。 この例では、すでに入っている、新しいオブジェクトのすべてのプロパティーを使用します。

  3. 「次へ」をクリックします。

    オブジェクト・マップ内のこの変更により影響を受けるすべてのスクリプトがリストされます。 1 つのスクリプト、「Classics」だけが影響を受けます。

  4. 「完了」をクリックします。
  5. オブジェクト・マップで、オブジェクト・マップ・ツールバー上の「ファイル」 > 「保管」メニューをクリックして、 加えた変更を保管してからオブジェクト・マップを閉じます。

再びスクリプトを再生する

ここで ClassicsB に対してスクリプトを再び再生して、それが合格することを確認します。
  1. ClassicsCD の両方のダイアログ・ボックスを閉じます。
  2. Functional Testerで、ツールバー上の「Functional Test スクリプトの実行」をクリックします。
  3. 「Classics」ログを選択してから、「完了」をクリックします。

    これでスクリプトは警告を出さずに成功します。 今回は認識プロパティーが一致するために、パスワード・チェック・ボックス・オブジェクトで 再生が一時停止しなくなったことに注目してください。

    このオブジェクト統合機能は、オブジェクトの認識プロパティーが意図的に変更されたときに、 スクリプトを更新するための簡単な方法となります。 この機能の主な利点の 1 つは、オブジェクト・マップが多数のスクリプトによって使用されている場合に、 ウィザードで変更を行うことによってそれらのスクリプトすべてを更新できることです。 複数のスクリプトを手作業で編集する代わりに、マップ内で 1 度だけ変更を行うことにより、 変更内容はそのマップを使用するすべてのスクリプトに自動的に伝わります。 この機能により、時間を節約できます。

    テスト・オブジェクトが変更された場合に、 その認識プロパティーを更新するより簡単な方法もあります。 この課題で説明された「統合」ウィザードを使用する代わりに、 オブジェクト・マップから、更新する認識プロパティーを持つテスト・オブジェクトを選択できます。 オブジェクト・マップ・ツリーに表示されたテスト・オブジェクトを右クリックして、 ポップアップ・メニューから「認識プロパティーの更新」を選択します。 このアクションを行う際には、Functional Tester が更新された認識プロパティーを取得できるように、 テスト・アプリケーションを実行している必要があります。 この更新方法を使用するのは、古いオブジェクトのどのプロパティーも使用しない場合だけです。
  4. ログを閉じます。
< 前へ | 次へ >

フィードバック