Appium запуск теста на нескольких устройствах
Я использую несколько одинаковых реальных телефонов для запуска теста (Xiaomi redmi 6a) У меня два одинаковых Java класса в которых описано поведение для каждого устройства. Эти два класса в процессе работы создают новый объект InitDriver и передают в его конструктор DEVICE_NAME и PORT в свою очередь InitDriver мне возвращает сам driver и cap appium в классы в которых описано поведение
Также у меня запущено два appium сервера на разных портах 127.0.0.1:port.
Вот сам код: Вызов InitDriver в main -
InitDriver = new InitDriver("3c58963c7d2b", "4723");
driver = (AndroidDriver) InitDriver.getDriver();
cap = (DesiredCapabilities) InitDriver.getCap();
Вот сам InitDriver:
public class InitDriver {
AndroidDriver driver;
DesiredCapabilities cap;
InitDriver(String deviceName, String devicePort) {
try {
cap = new DesiredCapabilities();
cap.setCapability(MobileCapabilityType.DEVICE_NAME, deviceName);
cap.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android"); //platformName
cap.setCapability(MobileCapabilityType.PLATFORM_VERSION, "9"); //platformVersion
cap.setCapability("noReset", "true");
cap.setCapability("fullReset", "false");
cap.setCapability(AndroidMobileCapabilityType.AUTO_GRANT_PERMISSIONS,true);
driver = new AndroidDriver(new URL("http://127.0.0.1:"+devicePort+"/wd/hub"), cap);
}catch (Exception e) {
System.out.println("Ошибка при инициализации драйвера");
System.out.println(e.getMessage());
}
}
...............................
Я столкнулся с проблемой,
- Я не могу запустить сразу два устройства.
- Я всегда считал что DEVICE NAME служит для идентификации устройства но Appium берет любое устройство которое посчитает нужным, а в DEVICE NAME можно указать что угодно.
- При запуске одного сценария он работает, но не факт что запустится нужное мне устройство
- При запуске сразу двух сценариев не работает ни один из них.
Как я могу запустить appium test на двух устройствах? Спасибо большое!