Запускайте автоматические тесты параллельно в настольном и мобильном браузере.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Запускайте автоматические тесты параллельно в настольном и мобильном браузере.

Сообщение Anonymous »

У нас есть несколько приложений для настольных компьютеров (ПК) и мобильных приложений, поэтому мы планируем создать уникальную среду автоматизации тестирования на Java.
мы создали среду для поддержки как настольных, так и мобильных устройств. платформы, использующие более низкий технологический стек
Selenium webdriver, appium, Java-клиент, testNG, allure, Java 17
но я сталкиваюсь с проблемами при запуске тестов в параллельно, только один тест запускается в настольном браузере, остальные тесты открываются на мобильном устройстве, но он находится в состоянии ожидания без запуска тестов
baseTests.java

Код: Выделить всё

    Boolean isMobile= (Boolean) deviceInfo.get("isMobile");

Boolean isHeadLess = (Boolean) deviceInfo.get("isHeadless");

if (Objects.isNull(DriverManager.getDriver())) {

if (isMobile) {
logger.info("****** Started appium server:");

serverManager.startServer();
deviceName = deviceInfo.getString("devicename");
String avd = deviceInfo.getString("avd");
String udid = deviceInfo.getString("udid");
String PlatformVersion = deviceInfo.getString("platformVersion");
Boolean isEmulator = (Boolean) deviceInfo.get("isEmulator");URL url = новый ServerManager().getServer().getUrl();

Код: Выделить всё

                        RemoteWebDriver driver=DriverFactory.initializeMobileDriver(MobilePlatformName.valueOf(platformType.toUpperCase()), deviceName, udid, isEmulator, isHeadLess,browserName, url);
} else {
RemoteWebDriver driver=DriverFactory.initializeWebDriver(WebBrowserName.valueOf(browserName.toUpperCase()), isHeadLess);

Код: Выделить всё

    }

}

here i am using 'RemoteWebDriver' to refer both selenium webdriver and appium driver

DriverManager.java
private static final ThreadLocal threadLocalDriver = new ThreadLocal();

public static synchronized RemoteWebDriver getDriver() {

return threadLocalDriver.get();

}

public static synchronized void setAppiumDriver(RemoteWebDriver driver) {

if (Objects.nonNull(driver)) {
threadLocalDriver.set(driver);

}

}

public static synchronized void unload() {

threadLocalDriver.remove();

}
Testsclass.java
публичный класс SearchTest расширяет BaseTest{
public test(){
driver= DriverManager.getDriver();
if (PlatformUtils.isMobile(driver)) {
googleSearch( )
Иначе{
googleSearch()

}

Если я использую

Код: Выделить всё

if (PlatformUtils.isMobile(driver)) {

googleSearch()

Else{

googleSearch()
}
Таким образом тесты выполняются на обеих платформах, но
Если я просто использую
googleSearch()< /p>
Тогда откроются и настольный, и мобильный браузер, но на настольном компьютере запустится только один тест, а мобильные тесты просто останутся без движения.
Правильно ли использовать Remotewedriver для ссылки как на веб-драйвер Selenium, так и на драйвер Appium?
Если я использую описанный выше способ, чтобы я мог использовать общий драйвер и общий код для тестов вместо использования разных драйверов Appium и драйвера Selenium отдельно
Может ли кто-нибудь помочь мне найти правильный подход для работы как с мобильными устройствами, так и с настольными компьютерами (ПК)?

Подробнее здесь: https://stackoverflow.com/questions/782 ... le-browser
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»