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

Фотография

Selenium Grid ошибка Unable to bind to locking port 7054 within 45000

grid selenium webdriver

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

#1 Raimbek

Raimbek

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

  • Members
  • Pip
  • 11 сообщений
  • ФИО:Егембердиев Раймбек Бактыбайулы
  • Город:Казахстан, Астана


Отправлено 16 мая 2014 - 11:05

Запускаю тесты в selenium grid параллельно. 4 компьютера: в одном hub, остальные 3 для браузеров (Windows, Linux, Linux). Число потоков 10, используется только браузер firefox 27.0, версия selenium у всех машинах одинаковые 2.41.0. Потоки запускаются для каждого класса, браузер открывается и закрывается для каждого класса. В основном все работает нормально.

 

Но в какой то момент один из ноды блокируется и не запускается браузер. Ошибки вот такие (полный stack trace в файле exception-stack-trace.txt) :

org.openqa.selenium.WebDriverException: Unable to bind to locking port 7054 within 45000 ms.

 

Если в одном ноде возникает такая ошибка, то он больше не доступен. Все отправленные тесты на эту машину проваливаются. Помогает только перезагрузка ноды. Если в этом машине остановить selenium node, то появляется окошка firefox, с сообщением:

"Не удалось загрузить ваш профиль "Firefox". Возможно, он отсутствует или недоступен."

 

Проблема в том, что такая ошибка возникает не стабильно, не могу воспроизвести и понять причину. Полагаю, ошибка возникает только в Linux машинах, пока не видел такую проблему в Windows.

 

В коде вроде все нормально, метод, запускающий браузера synchronized (см. файл WebDriverRun.txt). Прошу помочь разобраться проблемой или хотя бы указать на возможные причины.

 

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

{
  "host": x.x.x.x,
  "port": 4444,
  "cleanUpCycle": 500,
  "timeout": 120000,
  "maxSession": 40,
  "newSessionWaitTimeout": 120000,
  "nodePolling": 5000,
  "throwOnCapabilityNotPresent": false,
}
Конфигурации ноды:
{
  "configuration":
  {
    "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
    "maxSession": 5,
    "port": 5555,
    "host": x.x.x.x,
    "register": true,
    "registerCycle": 1000,
    "hubPort": 4444,
    "hubHost": x.x.x.x,
    "nodeTimeout": 120
  },
  "capabilities":
      [
        {
          "browserName": "firefox",
          "maxInstances": 5,
          "seleniumProtocol": "WebDriver"
        }
      ]
}

(Если много грамматических ошибок, прошу прощения.)

Прикрепленные файлы


  • 0

#2 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 16 мая 2014 - 13:07

Ошибка возникает в ситуации, когда одновременно пытаются стартовать несколько браузеров, и стартуют достаточно медленно. Функция старта синхронизирована, то есть запуски на самом деле выполняются последовательно. Поэтому браузеры фактически становятся "в очередь на старт". И если очередной браузер стоит в этой очереди больше 45 секунд (потому что предыдущие ещё запускаются) -- возникает эта самая ошибка. Так что просто запускайте их не так часто и не так много.

 

Нод после этой ошибки "отмирать" не должен, может быть надо просто увеличить периодичность чистки неактивных сессий (уменьшить время между чистками), это делается настройками разных таймаутов, с ходу не помню, какой именно надо менять, посмотрите в документации.

 

Но вот если сессии, завершившиеся с такой ошибкой, не удаляются и нод не освобождается от них даже после чистки -- тогда это баг.


  • 2
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium



Темы с аналогичным тегами grid, selenium, webdriver

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

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