High level interactions
Functional Tester client processes interact with the application under test (AUT) and gather relevant information to perform operations such as recording, playback, and object inspections. This section provides an overview of the interactions between the client processes and the AUT processes. Functional Tester communicates with the AUT through a shared memory inter process communication (IPC) layer.
Functional Tester creates a TestContext object within each process (client or server process) and registers it in the shared memory. The TestContext object is a reference to the process under test. The registered TestContext object is used as a reference for the associated process for any communication. Typically, a TestContext object relates to an operating system level process that can be tested or a test client. It is possible to have more then one TestContext object per process.
Two AUT TestContext objects can not communicate with each other directly. They communicate through the client TestContext object.
Every process in the Functional Tester process model utilizes a TestContext object to manage IPC calls and the requests for that process. Client processes interact with multiple AUT processes, while each AUT process responds to only a single client process at a time. For example, a Find process during playback communicates with all available AUT processes for the TestObject that is being sought.
The ObjectManager handles all server side process communications and meta actions that interact with the AUT. Core record and playback interactions with the AUT originate here and interact with all AUT TestContext objects. An ObjectManager agent handles the ObjectManager meta actions related to a particular TestContext object. Within TestContext objects, TestDomain objects are established to manage Functional Tester TestDomain-specific communications. For example, for an AUT browser process, a HTML TestContext object and Java TestDomain object are established. They are established because browsers contains HTML elements of HTML domain and applets of Java domain.
In a TestDomain object, ProxyTestObjects are created to manage the control level communications. ProxyObjects are created for controls that must be communicated while performing any functional test activity. ProxyObjects have a one-to-one relationship with each control in the AUT. Any interaction between different AUT controls happens through a ProxyTestObject.
TestContext objects, ObjectManager, TestDomain objects, and ProxyObjects are all created in the AUT process.
Application under test interactions