Hi Tanya, Alexei,
Thank you for your replies.
I have finally managed to test in a distributed environment the Lync application (Sending/Recevieing IM between 2 remote clients).
The solution I have found is more a workaround than the final solution. It needs improvement though.
I understood that I was missing some concepts related to the distributed setup explained by Smartbear, although I think there are limitation.
mixing master, slave, remote, project and project suites terms all together
unsure where the master ans slaves project files should be stored in TestComplete and on the remote test machines (physically)
Therefore the solution I implemented as you have mentioned, can be run from a Project NetworkSuite, and from the ProjectSuite NetworkSuite using an additional Project dedicated to Regression test for all Projects under my Project Suite.
Project Location: Local Machine with TestComplete installed (acts as Test controller)
Project Suite name: Desktop_Application_Testing
Projects (or Slave project):
Lync
Lync_Transmitter
Lync_Receiver
Other application such as MS_Office
Regression
Lync and
Other applications slave projects contain only tests that do not require interaction with other computers.
Lync acts as the "Master" or Coordinator project for the distributed tests involving both
Lync_Transmitter and Lync_Receiver projects.
Lync_Transmitter and Lync_Receiver contain tests that includes under the NetworkSuite the same synchronization points and different steps waiting for other actions from other computers. (
Sending/Recevieing IM between 2 remote clients)
Lync project contains the Test Items "NetworkSuite\Jobs\Task" to be able to run both non-distributed and distributed tests sequentially.
Regression contain no test at all, but only a NetworkSuite with the path to the ProjectSuite PJS file. This means that it will run all the slave projects sequentially stored in my ProjectSuite. There is only 1 Task with only the PJS filename specified. Ref discussion
here for more info. Beforehand, each Project Test items have been selected to ensure which test should be run for regression.
Host machine (Remote/Slave machines where the slave projects will be copied) with
TestExecute installed
RemoteComputer1 (act as Transmitter) -> Lync_Transmitter copied on the machine
RemoteComputer2 (act as Receiver) -> Lync_Receiver copied on the machine
So I am talking about "workaround" because the test I have created for
Sending/Receiving IM does not use properly the Synchronization points made available. There are skipped.
Therefore I have thought to add a timeout (Integer) as proposed in the
description of SynchPoints with Keyword Driven test. But I got a failure/Warning that this Synchpoint did not work (
NetworkSuite.Synchronize("SPC",10000) or NetworkSuite.SynchPoints.SPC.WaitFor(10000))
I have filed a case to the customer support for this (Case #00045778).
To bypass this, I have added manually delays together with the Synchronization points. It works, and both remoteComputers can interact with the Lync application. Now I am able to run the Project Lync with a mix of test items, both non-distributed and distributed tests by using only 3 machines (Test Controller and 2 remote machines). The best would be to use only 2 machines where the Test Controller could interact in the distributed tests as well.
Now I come to a point I would like to run this distributed test "Sending/Receiving IM" into my Regression project. Since this project runs only tests towards remote machines, it means that I am
trying to run a distributed test into another distributed environment.
When starting the Regression project task, it runs all the tests only towards 1 remote machine (RemoteComputer1). The tests which do not require interactions with other test machines works fine, but when it comes to the test "Sending/Receiving IM" it shall start another remote machine (the Receiver), but TestComplete does not manage. The RunState does not display the other RemoteComputer2. The test fails.
What is the problem? TestExecute does not support to start another host to run a distributed test?
I have thought to isolate the distributed test involving interation between remote computers to its own ProjectSuite. So when running the Regression project, I can run in parallel 2 tasks, one for Desktop_Application and one for the Lync_Distributed_Tests. But this requires an additional machine to be used to run the Lync tests.
Thank you for your help in advance