Testing in Parallel
It is possible to execute tests in parallel using XCUITest driver. Appium allows to do this on per-process (multiple server processes running on different ports managing single session) or per-request basis (single server process managing multiple sessions, more preferable, uses less resources and ensures better control over running sessions).
Note: If you are not going to run your tests in parallel then consider enabling the --session-override
Appium server argument.
It forces the server to close all pending sessions before a new one could be opened,
which allows you to avoid possible issues with such sessions silently running/expiring in the background.
Important Real Device Capabilities
udid
must be a unique device UDID for each parallel session.wdaLocalPort
must be a unique port number for each parallel session. The default value is8100
.derivedDataPath
set the unique derived data path root for each driver instance. This will help to avoid possible conflicts and to speed up the parallel execution.mjpegServerPort
must be a unique port number for each parallel session if you are going to record a video stream from it. The default value is9100
.
Important Simulator Capabilities
- Either
udid
, which is the unique simulator UDID for each parallel session (it could be retrieved fromxcrun simctl list
command output), or a unique combination ofdeviceName
andplatformVersion
capabilities to identify the appropriate simulator with the given name and version number for each parallel session. wdaLocalPort
must be a unique port number for each parallel session. The default value is8100
.derivedDataPath
set the unique derived data path root for each driver instance. This will help to avoid possible conflicts and to speed up the parallel execution.mjpegServerPort
must be a unique port number for each parallel session if you are going to record a video stream from it. The default value is9100
.