ЦЕЛЬ: Поскольку я новичок в Appium. Я пытаюсь автоматизировать параллельное тестирование Appium на нескольких устройствах Android, используя сетку Appium в Ubuntu.
Я успешно запустил сервер-концентратор Grid и 2 узла с разными портами.
ПРОБЛЕМА: Невозможно запустить тестовые примеры на обоих устройствах одновременно (я уверен, что проблема связана с тем, как я разрабатываю свою платформу). Я не знаю, как передать возможности обоих устройств и запустить их одновременно (ГЛАВНАЯ ПРОБЛЕМА). Нужно ли мне использовать для этого многопоточность, если да, то как?
АКТУАЛЬНО: Когда я запускаю несколько тестовых классов на одном устройстве, это работает, но, поскольку в моем классе BaseTest есть только один экземпляр Android Driver, я не могу работать параллельно.
ЧТО Я ПРОБОВАЛ: Я просмотрел множество тем в Google, но не смог найти точного решения.
Это мой код testng.xml
Это мой код TestBase.java
публичный класс TestBase { статический AppiumDriver androidDriver; @BeforeSuite публичная недействительная установка() { пытаться { androidDriver = DeviceUtility.getAndroidDriver(); } catch (опыт исключения) { System.out.println("Сообщение: " + exp.getMessage()); androidDriver.quit(); } } Это мой код DeviceUtility.java
public static AppiumDriver getAndroidDriver() выдает исключение { Возможность DesiredCapabilities = новая DesiredCapabilities(); AppiumDriver androidDriver; пытаться { возможность.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android"); возможность.setCapability(MobileCapabilityType.PLATFORM_VERSION, "11.0"); возможность.setCapability(MobileCapabilityType.DEVICE_NAME, «Пиксель 4a»); возможность.setCapability(MobileCapabilityType.UDID, «09091JEC214196»); ability.setCapability(MobileCapabilityType.APP, System.getProperty("user.dir") + getApkRelativePATH()); androidDriver = новый AndroidDriver(новый URL("http://192.168.88.60:4444/wd/hub"), возможность); androidDriver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); вернуть андроиддрайвер; } catch (исключение ex) { выбросить новое исключение («Ошибка:» + ex.getMessage()); } } И это тестовый образец.
публичный класс PersonalRegistrationTests расширяет TestBase{ @Тест (приоритет = 1) public voidverifyRegistrationWithSupportedCountry() выдает исключение { RegistrationScreens RegistrationScreens = новые RegistrationScreens (androidDriver); пытаться { RegistrationScreens.allowLocationPermission(); RegistrationScreens.allowContactsPermission(); RegistrationScreens.visitOnboardingScreens(); RegistrationScreens.selectCountry("США"); RegistrationScreens.enterPhoneNumber("5678911111"); RegistrationScreens.sendCode(); Assert.assertTrue(registrationScreens.checkOTPScreenVisibility()); }catch(Исключение ex){ выдать новое SkipException(ex.getMessage()); } } Где я делаю неправильно в своем фреймворке? Заранее спасибо
