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

始める前に、「演習 1.7: コンパレーターを使用した検査ポイントの更新」を完了してください。

この演習では、オブジェクト・マップを使用して、オブジェクト認識の警告を修正します。 また、より柔軟なオブジェクト認識のために正規表現を使用します。

認識に関する障害または警告が表示される場合は、ログ・メッセージを調べてください。 演習 1.7 の終了時に、ログを表示したままにしておいたはずです。 ログが開いていない場合は、「プロジェクト」ビューでダブルクリックして開いてください。 ログには 1 つの警告が残っています。 イベント見出しは、「Object Recognition is weak (above the warning threshold)」です。
  1. ログの下部付近にある警告セクションの ObjectLookedFor フィールドと objectFound フィールドを見てください。

ClassicsA では、パスワード・フィールドの名前が「Remember Password」になっています。 ClassicsB では、 「Remember The Password」になっています。 ClassicsB に対してスクリプトを再生すると、この差のためにオブジェクト認識が正確に一致しません。

  1. ログの「行番号」フィールドを見て、番号をメモしてください。
  2. ログを閉じて、機能テストに戻ります。
  3. スクリプト・ウィンドウの任意の場所をクリックしてから、「ナビゲート」>「指定行へジャンプ」をクリックします。
  4. ログ障害メッセージから書き留めた行番号を入力し、「OK」をクリックします。

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

  5. また、「機能テスト」ウィンドウの下部にあるインジケーターを見ながら、該当する行番号を探すこともできます。 そこには行番号とその行のカーソル位置が表示されます。 たとえば、「43:9」は、43 行目の左マージンから右へ 9 文字分進めた位置を表しています。 スクリプトのその行は以下のようになっているはずです。

    RememberPassword().clickToState(SELECTED);

    この行は、パスワード・チェック・ボックスでのクリックを表しています。スクリプトのその行は、どのオブジェクトで障害が起きているかを示しています。 これを見れば、オブジェクト・マップで該当するオブジェクトを検出できます。

  1. オブジェクトを検索するために、スクリプト・エクスプローラー (右ペイン) のテスト・オブジェクトのリストに戻ります。

「テスト・オブジェクト」フォルダーの下に「rememberPassword」がリストされているはずです。

  1. rememberPassword オブジェクトをダブルクリックし、オブジェクト・マップを開きます。
  1. 「オブジェクト・マップ」メニューで、「テスト・オブジェクト」>「すべてを受け入れる」 (すべてを受け入れる) をクリックします。 このコマンドがぼかし表示になっている場合は、何もする必要はありません。

すべてのオブジェクトが黒いテキストでの表示に変更されていることを確認します。 マップでオブジェクトを受け入れるまでは、テキストは青色で表示されます (青色は新規オブジェクトを表わします)。 新規作成のオブジェクト・マップを最初に見たときに、すべてのオブジェクトを受け入れる必要があります。

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

これは、ClassicsA からのオブジェクトであることが分かります。「accessibleContext.accessibleName」 プロパティーが「Remember Password」になっているためです。 これは、「古い」オブジェクトです。 それでも、ClassicsB に対してスクリプトを再生すると、そのオブジェクトのテキストが変更されているので、機能テストはこれを「新しい」オブジェクトとして認識します。 ここでは、新しいオブジェクトのプロパティーを使用したいので、それをマップに追加する必要があります。

新しいオブジェクトをマップに追加するために、ClassicsB と「 Member Logon」ダイアログ・ボックスを開きます。
  1. 「オブジェクト・マップ」メニューで、「アプリケーション」>「実行」をクリックします。
  2. 矢印を使用して、「ClassicsJavaB」を選択します。 (必ず「B」を選択してください。)
  3. 「OK」をクリックします。
  4. ClassicsCD で、任意の CD を選択し、「Place Order」をクリックします。

「Member Logon」ダイアログ・ボックスが開きます。

  1. すべての内容を表示するために、必要に応じてオブジェクト・マップを画面の下の方に移動します。 「オブジェクト・マップ」メニューで、「テスト・オブジェクト」>「オブジェクトの挿入」をクリックします。

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

  1. 「次のページに進む」オプションが選択されていれば、そのチェックを外します。
  2. 「オブジェクト・ファインダー」ツールを使用して、「Member Logon」ダイアログ・ボックスの「Remember the Password」チェック・ボックスを選択します。

そのチェック・ボックスを選択すると、「accessibleContext.accessibleName」プロパティーが「Remember the Password」になります。そのプロパティーを表示するために、必要に応じてオブジェクト・マップの枠を拡大してください。

  1. 「オブジェクトの選択」ページで、「次へ」をクリックします。
  2. 「オブジェクトの選択オプション」 ページで何も変更しないで、「完了」をクリックします。
これで、オブジェクト・マップに新規のチェック・ボックス・オブジェクトが表示されます。
  1. 別のオブジェクトをクリックすると、その新しい項目が青でリストされ、「新規」というテキストが行の先頭に表示されることを確認してください。

この時点で、新旧両方のオブジェクトがマップにリストされています。 2 つのオブジェクトを統合し、新しいオブジェクトに含めるプロパティーをそれぞれのオブジェクトから取り込みましょう。

  1. オブジェクトを統合するには、古いオブジェクト (「CheckBox: checkRemember」というラベルの元のチェック・ボックス) をクリックし、リスト内の新しいオブジェクトまでドラッグします。 カーソル矢印の先端を新しいオブジェクトの上に置いたら、マウス・ボタンを放します。

「テスト・オブジェクトの統合」ウィザードが表示されます。

  1. 下の方のセクションにある情報の詳細を表示するために、必要に応じて「統合」ウィザードを広げます。
  2. 左下のセクションに、元のオブジェクトのプロパティーが表示されます。 これは、「Source: RememberPassword」という名前になっているはずです。 つまりこれは、ClassicsA のチェック・ボックスにあるテキストです。 右下のセクションでは、「Target: RememberThePassword」という名前になっているはずです。 つまりこれは、ClassicsB のチェック・ボックスにあるテキストです。

    古いオブジェクトを新しいオブジェクトにドラッグするので、新しいオブジェクトの認識プロパティーがウィザードの先頭に表示されます。 機能テストは基本的に、新しいプロパティーが優先プロパティーである場合、新しいプロパティーを先頭に書き込みます。 しかし、古い管理プロパティーが優先される場合もあります。 たとえば、機能テストは、古いプロパティー・セット内の正規表現をそのまま保持します。 古いオブジェクトのプロパティーを使用するには、古いオブジェクトのグリッドでそのプロパティーをダブルクリックします。すると、そのプロパティーが統合オブジェクトにコピーされます。 ここでは、新しいオブジェクトのすべてのプロパティーを使用します (すでにすべてが表示されています)。

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

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

  1. 「完了」をクリックします。
  2. オブジェクト・マップのツールバーで、「ファイル: 保管」ボタンをクリックし、この変更を保存してオブジェクト・マップを閉じます。
ここで、ClassicsB に対してスクリプトを再び再生し、合格するかどうかを確認します。
  1. まず、ClassicsCD の両方のダイアログ・ボックスを閉じます。
  2. 機能テスト・ツールバーで、「機能テスト・スクリプトの実行」をクリックします。
  3. 「Classics」ログを選択し、「完了」をクリックします。
  4. 今回は、警告は表示されずに、スクリプトは合格になります。 認識プロパティーが一致するようになったので、再生がパスワード・チェック・ボックス・オブジェクトで休止しないことを確認してください。

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

    注: テスト・オブジェクトの認識プロパティーを変更した場合にスクリプトを更新するためのさらに簡単な方法もあります。 この演習で取り上げた統合ウィザードを使用する代わりに、認識プロパティーを更新したいテスト・オブジェクトをオブジェクト・マップでまず選択します。 「オブジェクト・マップ」ツリーに表示されているテスト・オブジェクトを右クリックし、ポップアップ・メニューから「認識プロパティーの更新」を選択します。 このアクションを実行するときに、テスト・アプリケーションを稼動中にしておく必要があります。そのようにしておけば、機能テストが更新後の認識プロパティーを取得できるからです。 古いオブジェクトのプロパティーを使用したくない場合は、この更新方式だけで十分です。

  5. ログを閉じます

次に、「演習 1.9: 認識設定の変更」に進んでください。

ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2002, 2004. All Rights Reserved.