Перейти к содержимому

Yago

Регистрация: 27 мая 2014
Offline Активность: 19 июн 2015 11:54
-----

Мои сообщения

В теме: JUnit+Selenium Grid+Распараллеливание тестов

19 июня 2015 - 09:26

Плюс, в догонку к предыдущему сообщению ссылка на manual по настройке selenium grid: https://www.packtpub...lenium_Grid.pdf (начинающим (таким как я) читать обязательно!)


В теме: JUnit+Selenium Grid+Распараллеливание тестов

19 июня 2015 - 09:21

Давайте вернёмся к исходной точке.

Я обратил внимание, что Вы изначально ожидаете от Selenium Grid того, что он делать не умеет, не предназначен для этого:

 

Ожидаемыый результат:

- автотест должен выполняться на двух настроенных nodes одновременно

 

Selenium Grid -- это "балансировщик нагрузки". Он предназначен не для "дублирования", а для распределения браузеров по узлам. То есть, если у вас есть грид с двумя нодами, и если вы в тестах открываете два браузера (инициализируете два драйвера) -- они будут созданы на разных нодах.

 

Используется это как правило для ускорения выполнения тестов. То есть, например, если у вас есть 1000 тестов, то выполняя их при помощи грида с двумя нодами вы сможете их выполнить в два раза быстрее, чем если выполнять всё в одном браузере.

 

Да, для этого вам всё равно придётся научиться запускать тесты в параллельных потоках, этот вопрос остаётся открытым. Я просто уточнил назначение грида.

Алексей, спасибо за уточнение.

 

Решили проблему параллелизации переходом на TestNG.

 

Вот пример части кода работающей конфигурации:

 

@BeforeMethod
    public void setUp() throws MalformedURLException{
        
        DesiredCapabilities capability = new DesiredCapabilities();
        capability.setBrowserName("firefox");    
        capability.setPlatform(Platform.ANY);
        driver = new RemoteWebDriver(new URL("http://192.168.98.78:4444/wd/hub"), capability);


        
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        driver.manage().window().maximize();
        driver.get("http://somehost:8180/platform");       
        
    }

    @Test(singleThreaded = false,threadPoolSize=6 , invocationCount=6)
    public void openLoginPage(){

 

Спасибо всем откликнувшемся и сочувствующим! :-)


В теме: JUnit+Selenium Grid+Распараллеливание тестов

18 июня 2015 - 10:03

 


Дело в том, что для запуска автотестов мы не используем Maven (такая практика отсутствует).

 

 

А какая присутствует?

 

Если запускать тесты кнопкой из IDE, они запустятся в 1 поток. Для параллельного запуска нужен или независимый запуск потоков из командной строки, или средства билд инструмента, будь то Maven или что-то еще.

Для Ant тоже есть практика, например: http://blog.code-cop...llel-junit.html

 

Тесты запускаются либо из IDE (Eclipse) либо из командной строки.

 

Подскажите пожалуйста, как можно запустить паралельные тесты из командной строки?


В теме: JUnit+Selenium Grid+Распараллеливание тестов

18 июня 2015 - 09:48

Верно, надо параллелить на уровне юнита - http://yandex.ru/sea...ть JUnit&lr=213

Первая ссылка - http://internetka.in...tests-parallel/

BabyRoot, спасибо за ссылку.

В руководстве написано:

"Начиная с версии 4.7 в JUnit была добавлена возможность параллельного запуска, для этого нужно настроить Maven следующим образом:..."

 

Дело в том, что для запуска автотестов мы не используем Maven (такая практика отсутствует).