Hi all,
I'm trying to run multiple tests in parallel, that is, for example, run 100 tests on 4 Android emulators to reduce the time it takes to run all the tests, not run each test on different devices (like tablet and phone).
In my setup, I have multiple emulators with appium nodes connecting to one Selenium grid hub (all on the same machine).
For the selenium grid hub, I launched via 'java -jar selenium-server-standalone-versionNumber.jar -role hub'
For each appium node, I launched via new cmd prompt windows via
Node 1: 'appium --nodeconfig nodeconfig1.json --device-port x1 --udid emulator-y1 --port z1 --selendroid-port a1 -U emulator-y1' // json files contain the hub ip and port and the android capabilities
Node 2: 'appium --nodeconfig nodeconfig2.json --device-port x2 --udid emulator-y2 --port z2 --selendroid-port a2 -U emulator-y2'
Of which I have emulators y1-y4 open.
I am running my tests in Visual Studios using C#. The tests however fail sometimes because I get the following uncaughtExceptions [images attached] of which I have to restart the appium nodes because they've lost connection to the appium grid.
Question 1: Any ideas why this happens and if there's a way to avoid the appium node from crashing?
Question 2: Although it looks as though the tests are running in parallel, I suspect that they aren't... they run the install the app in parallel on each emulator but I get the actual test commands run one test after another. I think it has something to do with the fact appium communicates with the emulator via port 4724, regardless of the device-port I send it. Is there a way to change the default port value 4724, maybe I parameter that I'm missing?
Thanks!