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

Selenium IDE 3: стартовый уровень
онлайн, начало 19 апреля
Школа для начинающих тестировщиков
онлайн, начало 22 апреля
Тестирование REST API
онлайн, начало 22 апреля
Тестирование юзабилити (usability)
онлайн, начало 24 апреля
Фотография

Какой максимум тестов можно кинуть в Selenium GRID в параллели?

Selenium Selenium Grid Jenkins

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 12

#1 DennisM

DennisM

    Новый участник

  • Members
  • Pip
  • 55 сообщений
  • ФИО:Dennis M
  • Город:Ralegh NC, USA

Отправлено 29 Январь 2016 - 16:01

Есть Datadriven тесты и их много. Один сет на 200 второй на 500 тестов. При запуске 200 и более в параллели Grid медленно умирает. На нодах появляются браузеры и никакого движения внутри.  При запуске ~150 в параллели вроде всё работает но много тестов валятся не начавшись. Лимит на 2 нодах по 10 браузеров, т.е. 130 в ожидании сразу висят.

 

Error Message

Error forwarding the new session Error forwarding the request Read timed out
Command duration or timeout: 1110.85 seconds
Build info: version: '2.49.0', revision: '365eeb44deba2067b1761c8862ef21d55250e063', time: '2016-01-13 11:57:39'
System info: host: 'Jenkins', ip: '192.168.3.220', os.name: 'Windows 8.1', os.arch: 'x86', os.version: '6.3', java.version: '1.8.0_65'
Driver info: org.openqa.selenium.remote.RemoteWebDriver

 

Stacktrace

org.openqa.selenium.WebDriverException:
Error forwarding the new session Error forwarding the request Read timed out
Command duration or timeout: 1110.85 seconds
Build info: version: '2.49.0', revision: '365eeb44deba2067b1761c8862ef21d55250e063', time: '2016-01-13 11:57:39'
System info: host: 'Jenkins', ip: '192.168.3.220', os.name: 'Windows 8.1', os.arch: 'x86', os.version: '6.3', java.version: '1.8.0_65'
Driver info: org.openqa.selenium.remote.RemoteWebDriver
    at com.expion.test.Test.AllServers.Test1(AllServers.java:297)
Caused by: org.openqa.grid.common.exception.GridException: Error forwarding the new session Error forwarding the request Read timed out

 

 

Конфигурация:

 

Java + Selenium 2.50.0 (WebDriver) + JUnit(Parameterized) + Maven(POM Parallel) -> Jenkins :)

 

Grid Hub:

java -jar c:\Jenkins\SeleniumGrid\selenium-server-standalone-2.50.0.jar -port 4444 -role hub -nodeTimeout 1000 -browserTimeout 10000

 

Grid Node:

java -Dwebdriver.chrome.driver=c:\Jenkins\SeleniumGrid\chromedriver.exe -Dwebdriver.ie.driver=c:\Jenkins\SeleniumGrid\IEDriverServer.exe -jar c:\Jenkins\SeleniumGrid\selenium-server-standalone-2.50.0.jar -role node -hub http://192.168.3.220...4/grid/register -port 5555 -maxSession 10 -browser "browserName=firefox, version=exp_auto_1, maxInstances=10" -browser "browserName=iexplore, maxInstances=10" -browser "browserName=chrome, maxInstances=10"


  • 0

#2 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 590 сообщений


Отправлено 01 Февраль 2016 - 08:46

Машины мощщщные? где тесты запускаете?

Максимум 5-6 потоков надо ставить.


  • 0

#3 jurteg

jurteg

    Новый участник

  • Members
  • Pip
  • 61 сообщений
  • ФИО:Serhii Zharskyi

Отправлено 01 Февраль 2016 - 13:48

Есть Datadriven тесты и их много. Один сет на 200 второй на 500 тестов. При запуске 200 и более в параллели Grid медленно умирает. На нодах появляются браузеры и никакого движения внутри.  При запуске ~150 в параллели вроде всё работает но много тестов валятся не начавшись. Лимит на 2 нодах по 10 браузеров, т.е. 130 в ожидании сразу висят.

 

Добрый день,

во сколько потоков запускаете?


  • 0

#4 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 590 сообщений


Отправлено 01 Февраль 2016 - 14:06

maxInstances=10 написано же


  • 0

#5 jurteg

jurteg

    Новый участник

  • Members
  • Pip
  • 61 сообщений
  • ФИО:Serhii Zharskyi

Отправлено 01 Февраль 2016 - 14:14

maxInstances=10 написано же

Насколько я могу судить из строки конфига, то maxInstances=10 это максимаольное количество браузеров конкретного типа для нод(ы)

а я спрашивал, во сколько потоков тесты запускаются с CI или с локальной машины?

 

 Лимит на 2 нодах по 10 браузеров, т.е. 130 в ожидании сразу висят.

исходя из этого, можно сказать, что каждый тест запускается в отдельном потоке, а это сильно много


  • 0

#6 jurteg

jurteg

    Новый участник

  • Members
  • Pip
  • 61 сообщений
  • ФИО:Serhii Zharskyi

Отправлено 01 Февраль 2016 - 16:47

Запуск UI тестов в многопоточности несколько отличается от запуска бэкенд тестов, т.к. по-дефолту, скорее всего, WebDriverFactory сделает вам по одному браузеру на каждый поток. На ноде нет столько браузеров, лишние ставятся в очередь, но, похоже, что нода не выдерживает такой нагрузки.


  • 0

#7 DennisM

DennisM

    Новый участник

  • Members
  • Pip
  • 55 сообщений
  • ФИО:Dennis M
  • Город:Ralegh NC, USA

Отправлено 01 Февраль 2016 - 18:06

Интерестно  то, что если запустить всё на одну Ноду, то тесты проходят нормально. Похоже Грид не может аккуратно раскидать тесты на 2 ноды.
Для ограничения нагрузки на Грид, делал так же ограничение в   POM.XML. Не помогло...
Вижу решение только в уменьшении нагрузки (делать больше Джабс на Jenkins с меньшим количеством тестов в каждом) или раннить только на одной ноде. Но тогда теряется смысл Грида - раскидать тесты в параллели для уменьшения времени.
 
<build>
<plugins>
 
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
 
<includes>
<include>**/StackChecking.java</include>
</includes>
 
<parallel>all</parallel>
<threadCount>15</threadCount>
<argLine>-Xmx512m -XX:MaxPermSize=256m</argLine>
</configuration>
</plugin>
 
</plugins>
</build>

  • 0

#8 DennisM

DennisM

    Новый участник

  • Members
  • Pip
  • 55 сообщений
  • ФИО:Dennis M
  • Город:Ralegh NC, USA

Отправлено 01 Февраль 2016 - 18:11

Машины мощщщные? где тесты запускаете?

Максимум 5-6 потоков надо ставить.

Все виртуалки. По 8 CPU дано каждой. С 10 браузерами в параллели нагрузка 70-80%


  • 0

#9 jurteg

jurteg

    Новый участник

  • Members
  • Pip
  • 61 сообщений
  • ФИО:Serhii Zharskyi

Отправлено 02 Февраль 2016 - 13:54

<threadCount>15</threadCount>

Судя по конфигурации, у вас по 10 браузеров разного типа, т.е. 15 потоков это на 5 больше, чем может выделить хаб, при условии, если вы используете стандартный паттерн WebDriverFactory.

Т.е. вам нужно делать количество потоков не больше, чем указано здесь:

-browser "browserName=chrome, maxInstances=10


  • 0

#10 jurteg

jurteg

    Новый участник

  • Members
  • Pip
  • 61 сообщений
  • ФИО:Serhii Zharskyi

Отправлено 02 Февраль 2016 - 13:56

хотя фэктори тут ни при чём, всё зависит таки от количества потоков, плагин всё сделает сам


  • 0

#11 DennisM

DennisM

    Новый участник

  • Members
  • Pip
  • 55 сообщений
  • ФИО:Dennis M
  • Город:Ralegh NC, USA

Отправлено 02 Февраль 2016 - 14:03

 

<threadCount>15</threadCount>

Судя по конфигурации, у вас по 10 браузеров разного типа, т.е. 15 потоков это на 5 больше, чем может выделить хаб, при условии, если вы используете стандартный паттерн WebDriverFactory.

Т.е. вам нужно делать количество потоков не больше, чем указано здесь:

-browser "browserName=chrome, maxInstances=10

 

Даже если там вот так: 
 
<parallel>all</parallel>
<useUnlimitedThreads>true</useUnlimitedThreads>
<parallelOptimized>true</parallelOptimized>
 
Результат тот же. На одной ноде всё ОК, на одновременно 2 начинает падать в случайном порядке.
 
Иногда в логе просто это:
Stacktrace java.lang.NullPointerException

 

С одной нодой этот тест проходит.


  • 0

#12 DennisM

DennisM

    Новый участник

  • Members
  • Pip
  • 55 сообщений
  • ФИО:Dennis M
  • Город:Ralegh NC, USA

Отправлено 02 Февраль 2016 - 17:06

Заметил в отчете что фейлятся тесты которые уже прошли. Грид выполнил тест на одной ноде и бросил на второй? О_о
 
Test Name                   Duration         Age
........ 
.......
Test6_StackMenu[3]     2 min 2 sec    1
Test6_StackMenu[3]     0 ms               1
Test6_StackMenu[0]     7 min 19 sec   1

 

Test6_StackMenu[0]     0 ms                1

......

.....


  • 0

#13 DennisM

DennisM

    Новый участник

  • Members
  • Pip
  • 55 сообщений
  • ФИО:Dennis M
  • Город:Ralegh NC, USA

Отправлено 02 Февраль 2016 - 21:47

Да.... Похоже JUnit (Parameterized) не работает коректно с Selenium Grid...


  • 0


Selenium 2.0: стартовый уровень
онлайн
Программирование на Java для тестировщиков
онлайн
Автоматизация функционального тестирования
онлайн
Selenium WebDriver: полное руководство
онлайн




Темы с аналогичным тегами Selenium, Selenium Grid, Jenkins

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Яндекс.Метрика
Реклама на портале