Run and test two applications on same device simultaneously

Hi there,

Is it possible to run and test two applications on the same device at the same time? I need to do this for both Android and iOS.

My use case is this: I have a main application and a helper application and the helper application can send and receive messages from the main application. I want to test that both applications are sending and receiving messages; however this requires that I am able to run and test both applications at the same time.


We are also interested in solution for this.

In this case, you can use parallel execution mode from Test Suite Collection. It will execute multiple Test Suites at the same time and you can select different devices for it:

Hey Alex,

Thanks for the suggestion - I’ve tried this though and the tests are still running sequentially when on the same device - is this not the expected behavior for multiple tests running on the same device? Are they supposed to run at the same time?




Hi Alex,

Thank you again for your suggestion - following that recommendation, I tried moving around the order in which the tests were run and I was able to successfully complete the workflow between the main and helper applications working sequentially. However, while the device worked through all actions on both applications, the logs appear to have stopped after the first test suite ended. Here is the end of the log:

02-26-2018 10:56:55 AM - [PASSED] - Tapped on element ‘Object Repository/MobileEnterprise-iOS/LoginScreen/Button-Login’

02-26-2018 10:56:55 AM - [END] - End action : tap

02-26-2018 10:56:55 AM - [START] - Start action : delay

02-26-2018 10:56:55 AM - [INFO] - Delaying browser in 5 second(s)

[debug] [JSONWP Proxy] Got response with status 200: {“value”:{},“sessionId”:“4E3C73A0-DEB9-4F39-A9C4-F16928B96481”,“status”:0}

[debug] [MJSONWP] Responding to client with driver.performTouch() result: null

[HTTP] <-- POST /wd/hub/session/f45b1e89-f5fc-4856-b425-8288b3c13d40/touch/perform 200 1928 ms - 76

[XCUITest] xcodebuild exited with code ‘null’ and signal ‘SIGINT’

02-26-2018 10:57:00 AM - [PASSED] - Delayed 5 second(s)

02-26-2018 10:57:00 AM - [END] - End action : delay

02-26-2018 10:57:00 AM - [PASSED] - Test Cases/iOS/Modules/LoginApplicationSuccessful

02-26-2018 10:57:00 AM - [END] - End Test Case : Test Cases/iOS/Modules/LoginApplicationSuccessful

[HTTP] --> DELETE /wd/hub/session/f45b1e89-f5fc-4856-b425-8288b3c13d40 {}

[debug] [MJSONWP] Calling AppiumDriver.deleteSession() with args: [“f45b1e89-f5fc-4856-b425-8288b3c13d40”]

[debug] [BaseDriver] Event ‘quitSessionRequested’ logged at 1519660620407 (10:57:00 GMT-0500 (EST))

[Appium] Removing session f45b1e89-f5fc-4856-b425-8288b3c13d40 from our master session list

[debug] [JSONWP Proxy] Proxying [DELETE /session/f45b1e89-f5fc-4856-b425-8288b3c13d40] to [DELETE http://localhost:64066/session/4E3C73A0-DEB9-4F39-A9C4-F16928B96481] with no body

[debug] [XCUITest] Connection to WDA timed out

[debug] [iProxy] recv failed: Operation not permitted

[debug] [XCUITest] Unable to DELETE session on WDA: ‘Could not proxy command to remote server. Original error: Error: socket hang up’. Continuing shutdown.

[debug] [XCUITest] Not clearing log files. Use `clearSystemFiles` capability to turn on.

[debug] [iOSLog] Stopping iOS log capture

[debug] [BaseDriver] Event ‘quitSessionFinished’ logged at 1519660627212 (10:57:07 GMT-0500 (EST))

[debug] [MJSONWP] Received response: null

[debug] [MJSONWP] But deleting session, so not returning

[debug] [MJSONWP] Responding to client with driver.deleteSession() result: null

[HTTP] <-- DELETE /wd/hub/session/f45b1e89-f5fc-4856-b425-8288b3c13d40 200 6808 ms - 76

02-26-2018 10:57:08 AM - [END] - End Test Suite : Test Suites/PrepareAcceptBasicRequest_MES

Note that the last two actions of the first test suite are to click on a login button and then wait just 5 seconds (these actions did occur correctly, as can be seen from the logs). Do you know why the logs would have stopped recording subsequent sessions? Please let me know if there’s any more information you would need.