I know that this topic was brought up many times, but still I cannot get it.
I have the following docker-compose file:
version: '2'
services:
# Selenium hub
selenium_hub:
image: selenium/hub
container_name: selenium-hub
ports:
- 4444:4444
# Appium Docker Android
appium_android_device:
image: appium/appium
container_name: appium-real-device
ports:
- 4723:4723
depends_on:
- selenium_hub
privileged: true
volumes:
- /dev/bus/usb:/dev/bus/usb
- ~/.android:/root/.android
environment:
- CONNECT_TO_GRID=true
- SELENIUM_HOST=selenium_hub
My OS is Ubuntu. Works fine, my android devices are added to the Selenium Grid.
BUT I do not understand what should I do from this point.
When I launch my tests, they run only on one device. Should I apply multithreading or something in my code? I thought Selenium Grid will take care of parallel execution.
My Java setup:
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
capabilities.setCapability(MobileCapabilityType.FULL_RESET, false);
capabilities.setCapability(MobileCapabilityType.NO_RESET, true);
capabilities.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, 10000);
capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "uiAutomator2");
capabilities.setCapability("appPackage", "com.some.app.package");
capabilities.setCapability("appActivity", "com.some.MainActivity");
AndroidDriver driver = new AndroidDriver<>(new URL("http://127.0.0.1:4444/wd/hub"), capabilities);