Synchronous remote execution

In synchronous remote execution, tests are run that typically involve multiple machines interacting with each other, or accessing the same resource.

As an example of a scenario requiring synchronization, say you wish to set up a test wherein Machine A sends a message which Machine B then receives and checks. Under this scenario, the executions of Machines A and B must be synchronized so that B checks the message only after A has sent it out.

Note: A synchronous remote execution scenario must be explicitly defined as part of the test case itself – that is, written up as action line sequences. Special lead-deputy built-in actions dedicated to synchronous remote execution are employed. This is very different from the case of asynchronous execution, in which the remote machine(s) are specified at runtime, and the remote execution is unrelated to the content of the test cases.
In TestArchitect synchronous execution, the machine that initiates execution is called the lead, while other involved test machines are the deputies. Switching control from lead to deputy, deputy to lead, or between deputies is directed by the six lead-deputy actions:

Under synchronous remote execution, control is passed to a deputy in one of two modes, serial or parallel. (This is governed by the parallel argument of the use deputy action, in which yes = parallel and no = serial.)

  • If the deputies are running in parallel mode, each thread has its own local/global variables. You cannot refer to a variable declared in another thread no matter whether the variable is local or global.
  • If the deputies are running in serial mode, the scoping rules are the same as for executing normal tests procedures (see Variables for details).
  • If a test case variable is declared before both of the use deputy actions, the deputies can retrieve the value of that local variable regardless of whether the deputies are running in parallel or serial mode.
  • However, if the deputies write values to an existing local/global variable, the new value takes effect only if the deputies are running in serial mode. Otherwise, the new value is discarded.
  • TestArchitect automatically adds controllers executing tests to the controller list in Lab Manager, and you can monitor the test progress there.
  • Note that, while synchronous (lead/deputy) remote execution applies specifically to execution on TestArchitect controller hosts, it can be used in mobile testing when those hosts are controlling mobile devices.
  • Note that database actions are not supported on machines operating as deputies.