Application under test interactions
There are several levels of requests in the test process. In each level there are various interactions between Functional Tester and the application under test (AUT).
The following list describes the levels of requests:
- High level requests cause a series of interactions with one or more proxies. Find and ObjectAtPoint are examples of high level requests.
- Direct proxy references can occur for direct access to a proxy. Click and GetTestData are examples of direct proxy references.
- Domain requests which are similar to high level requests, provide access to the hierarchy of base proxies and perform other high level actions.
Recording interactionsThe following interactions happen between the Object Manager and Object Manager agents for recording
- Object Manager and Object Manager agents
- Locate the Object at point. For example, the proxyAtPoint method.
- Get recognition properties and initial references in the map. For example, the getMappedTestObject method.
- The following proxy methods are called for recording:
Table 1. Proxy methods for recording
Action Method Process low level events processMouseEvent Locate target of a drag action getMethodSpecForPoint Verification Point support
The Functional Tester client sends requests to all test domains if they can find the target object in its recorded object map hierarchy by using the recorded recognition properties.
Table 2. Playback interactions
Result Action No target object is found A TestObject not found exception is thrown. Several target objects are found The object finding score is used to determine the winner, or it can be ambiguous. A unique TestObject is found The playback action method is invoked on the proxy. For example, the playback action which was recorded, may be the click() method. More than one TestObject was found within the ambiguity threshold An ambiguous exception is thrown.
Functional Tester uses recognition properties and control hierarchy to identify a control and provides an interface. This information is collected and stored in the Object Map. During playback the stored information is used to uniquely identify the UI element. Functional Tester also collects information on screen coordinates, control properties and data, reflection details, and portions of the controls when required. It presents the UI element with the gathered information as a TestObject to the script side.
At the time of recording user actions such as mouse clicks, double-clicks or drags are recorded as respective TestObject methods into a test script. For example, button().click(atPoint(10,10)). During playback, Functional Tester finds the corresponding TestObject using the information stored in the Object Map and the user action is performed based on it.
High level interactions