About the 'Search for a Mapped Object Took Too Much Time' Warning

Applies to TestComplete 12.60, last modified on September 17, 2018

About the Warning

The Name Mapping project item allows you to define names for processes, windows and controls that will be used to refer to these objects in tests. Each object in Name Mapping has a set of identification properties and other settings that are used to locate the relevant object in the application under test.

One of these settings is Extended Find. It instructs TestComplete to search for the object both on a specific level of the application object hierarchy and on all levels down the hierarchy. Extended Find is usually used with objects in applications that have a dynamic object hierarchy.

If the application contains a large number of objects, object identification using Extended Find may take a long time. When this happens, TestComplete posts a warning to the test log to inform you that the current mapping settings are not optimal and can affect the overall test performance.

Resolving the Problem

To resolve the problem, you need to add more objects from the parent hierarchy of the problematic object to Name Mapping. You can do that as follows:

  1. Select the warning in the test log and then select the Additional Info panel.

  2. Click the link with the object name. TestComplete will open the Name Mapping editor and select this object in the Mapped Objects tree.

  3. Right-click the selected object and choose Show in Object Browser from the context menu.

    Note: This command may take some time to complete.
    Name Mapping editor: Show in Object Browser command

    TestComplete will open the Object Browser and select the corresponding object in it.

  4. Go back to the Name Mapping editor. Now select the parent object of the problematic object and choose Show in Object Browser from its context menu.

    Note the large number of intermediate objects in the object tree between the selected parent object and the one that triggered the warning. To improve the object identification performance, you need to add some of these intermediate objects to Name Mapping.

    Objects in Name Mapping and the corresponding objects in the Object Browser
  5. In the Object Browser, select some intermediate object that you want to add to Name Mapping.

    Tip: Select an object that has some unique properties, such as a specific type or identifier.
  6. From the object’s context menu, select Map Object.

    Adding objects to Name Mapping from Object Browser
  7. Click Yes in the message box asking whether to use the default identification properties for this object.

  8. (Optional.) Repeat steps 5-7 to map a few intermediate objects from lower levels of the object tree.

  9. Go back to the Name Mapping editor. Expand the Mapped Objects tree to see the newly added objects.

  10. Drag the problematic mapped object and drop it as a child of the newly mapped objects.

    Dragging and dropping a mapped object to another parent object
Note: The above actions change only the set of parent objects used for identification of the problematic object. The object’s alias that is used in tests and checkpoints (for example, Aliases.browser.pageWebOrders.linkLogout) remains the same.

If you cannot resolve the problem and you are fine with long search times, you can disable the message using the TimeOutWarning property of the NameMapping scripting object.

See Also

Handling Playback Errors
Name Mapping

Highlight search results