Running Tests in Parallel

You can use multiple JUnit processes to execute tests in parallel against multiple browsers or mobile devices. For example, you can use this functionality when executing test from a continuous integration server, or from Silk Central.

Silk Testby default supports parallel testing for the following browsers and platforms:
  • Google Chrome.
  • Mozilla Firefox.
  • Web, native, and hybrid apps on the following platforms:
    • Physical Android devices.
    • Android Emulators.
    • Physical iOS devices.
When using mixed scripts to add WebDriver functionality to an existing Silk4J script, use the getWebDriver method to get a new driver. For additional information, see Using Selenium with Existing Silk4J Scripts.
Note: Using new RemoteWebDriver to get a new WebDriver object does not work for parallel testing of mixed scripts.

To disable parallel test replay, set the environment variable SILKTEST_ENABLE_PARALLEL_TESTING to false.

Note: Enabling parallel testing causes the Open Agent to handle each test-executing process separately. Applications which have been tested in one Silk Test client cannot be tested from another client, while the initial client is running. For example, you cannot test the same application alternating between Silk4J and Silk4NET.
Note: You cannot execute multiple test runs on the same mobile device at the same time. Before running tests in parallel, ensure that enough devices or emulators are available. Any test runs that get no mobile device or emulator assigned will fail.

Each parallel test run starts as a separate java.exe, which corresponds to one browser or mobile device. You can specify the browser or mobile device that you want to associate with a specific java.exe through the connection string. For additional information, see Connection String for a Mobile Device or Connection String for a Remote Desktop Browser .

The following image shows testing multiple browsers in parallel:

The following image shows testing multiple devices in parallel:

Multiple processes starting simultaneously might each try to start the Open Agent on the machine on which Silk4J is running. Running the Open Agent multiple times on the same machine is not possible and will cause Silk4J to throw an exception. To avoid this, ensure that the Open Agent is running before starting the parallel test runs.

The test results are stored in multiple TrueLog files, one for each test run. To ensure that the TrueLog files are not overwritten, you can add placeholders to the TrueLog file name. For additional information, see Setting TrueLog Options.
Note: If you are experiencing high memory consumption during testing, ensure that test results are saved in the compressed TLZ file format, and not in the XLG format. Silk4J does not support the TrueLog API for parallel testing.