2016-01-12 3 views
1

Я автоматизирую приложение Android с помощью Appium, у меня есть один базовый класс с установкой и отключением (в сеансе инициализации инициализации инициализации и в сеансе уничтожения при разрыве).Как сохранить сессию Appium между несколькими классами testng

Этот базовый класс I унаследован во всех классах testng, теперь для каждого тестового класса создается новый сеанс Appium.

Так что мой вопрос в том, как мы поддерживаем сеанс appium через весь класс после его создания для любого класса.

Благодаря Садик

ответ

1

Я реализовал этот подход, используя Синглтон шаблона проектирования здесь подход:

public class SingltonFactory{ 

    private static SingltonFactory instance = new SingltonFactory(); 
    private static AppiumDriver<MobileElement> driver; 

    private SingltonFactory() { 
    } 

    // Get the only object available 
    public static SingltonFactory getInstance() { 
     return instance; 
    } 

    // Get the only object available 
    public void setDriver(AppiumDriver<MobileElement> driver1) { 
     driver = driver1; 
    } 

    public AppiumDriver<MobileElement> getAppiumDriver() { 
     return driver; 
    } 

}

Добавить инициализировать SingltonFactory в вашем перед тестовыми и назначить объект драйвера, как показано ниже:

AppiumFactory appiumFactory = AppiumFactory.getInstance(); 
if(appiumFactory.getAppiumDriver() == null) { 
    driver = new AndroidDriver<MobileElement>(new URL("http://127.0.0.1:4723/wd/hub"), cap);     
} 
else{ 
    driver = appiumFactory.getAppiumDriver(); 
} 
0

Вы можете достичь того же без наследования базового класса.

Шаг1 -> Инициализировать объект драйвера в вашем настроить ваш метод т.е. настройки, как driver=new AndroidDriver(url,caps);

Шаг 2-> Если у вас есть какие-либо утилиты или постоянного класса, называют его конструктор и передать драйвер в качестве параметра, например, new Constants(driver);
Примечание. Вы можете пометить драйвер как статическую переменную, если вам нужен только один экземпляр драйвера.

Шаг 3-> Всякий раз, когда вы хотите получить доступ к драйверу, откройте его как Constant.driver или инициализируйте объект-драйвер на уровне класса.

+0

Можете ли вы поделиться какой-то частью кода, я попытался, но он работает, получая исключение Nullpointer –

Смежные вопросы