この記事は公開から 1 年以上経過しています。

Search for a Mapped Object Took Too Much Time の警告について

TestComplete の NameMapping は、テスト内でオブジェクトを参照するために使われるプロセスやウィンドウ、コントロールの名前を定義することができます。
NameMapping 内の各オブジェクトは、一意となるプロパティのセットと、アプリケーション内の適切なオブジェクトを見つける際に使用される他の設定を持っています。

その中の一つの設定に Extended Find があります。
Extended Find は TestComplete にアプリケーションのオブジェクトの特定の階層レベルの検索と、その階層の下のすべての階層レベルの両方で検索するように指示します。

Extended Find は通常、動的なオブジェクト階層を持つアプリケーションのオブジェクトで使用されます。

もし、アプリケーションが多数のオブジェクトを含んでいる場合、オブジェクト認識に時間がかかる場合があります。
そのような際に、TestComplete は、現在のマッピング設定が最適ではなく、全体のテストの性能に影響を与える可能性があることを知らせる Search for a Mapped Object Took Too Much Time の警告をテストログにポストします。

問題の解決方法

この問題を解決するために、問題の発生しているオブジェクトの親階層からオブジェクトを NameMapping に追加する必要があります。以下の手順で設定をします。

1. テストログから警告の個所を選択し、その後 Additional Info パネルを選択します。

2. オブジェクト名のリンクをクリックします。
TestComplete は NameMapping エディターを開き、マップされたオブジェクトのツリーから対象のオブジェクトを選択します。

3. 選択されたオブジェクトを右クリックし、コンテキストメニューから、”Show in Object Browser” を選択します。

注意:この操作は完了するまでに少し時間がかかる場合があります。

TestComplete は Object Browser を開き、対応するオブジェクトを選択します。

4. NameMapping エディターに戻り、問題のあるオブジェクトの親オブジェクトを選択し、
右クリックし、コンテキストメニューから、”Show in Object Browser” を選択します。

オブジェクトの識別パフォーマンスを向上させるには、これらの中間オブジェクトのいくつかを名前マッピングに追加する必要があります。

5. Object Browser で、NameMapping に追加したい、いくつかの中間オブジェクトを
選択します。

補足:一意となるプロパティを持つオブジェクト (特定のタイプや識別条件) を選択します。

6.
対象のオブジェクトを右クリックし、コンテキストメニューの “Map Object…” を選択します。

7. デフォルトの識別プロパティを使用するかを尋ねるメッセージボックスが表示された場合、”Map the object as panel” を選択してください。

8. このステップはオプションです。必要に応じてオブジェクト ツリーの下のレベルからいくつかの中間オブジェクトをマップするために、5-7 のステップを繰り返します。

9. NameMapping エディターに戻ります。新しく追加されたオブジェクトを確認するために、マップされたオブジェクトのツリーを展開します。

10. 問題のあるオブジェクトをドラッグし、新しく追加したオブジェクトの下にドロップします。

補足:上記の動作は、問題のあるオブジェクトの識別のために使用される親オブジェクトのセットのみを変更します。オブジェクトの Alias はテスト内および、チェックポイントで使用されます。例えば、Aliases.browser.pageWebOrders.linkLogout は同じまま残ります。
もし、”long search time” の問題が解決しない場合で、オブジェクトの検索に時間がかかっても問題が無い場合は、スクリプトを用いてタイムアウトのメッセージを無効にすることが可能です。設定方法はこちらのサイトの説明をご参照ください。

NameMapping に関する詳細情報は 技術情報サイト をご参照ください。