Selenium Grid не может управлять узлами в частной сети

  1. Серверная сторона

    Наш сервер Selenium Grid имеет публичный IP-адрес (104.131.xxx.xxx)

    java -jar selenium-server-standalone-3.4.0.jar -role hub
    
  2. Вершины

    В частной сети есть узловые компьютеры (192.168.43.xxx). Они могут без проблем подключиться к Selenium Server:

    java -jar selenium-server-standalone-3.4.0.jar -role webdriver -hub http://104.131.xxx.xxx:4444/grid/register -port 3456
    

Selenium Grid Console

  1. Проблемы

    3.1 На сервере повторяются сообщения:

    Registered a node http://192.168.43.248:3456
    Marking the node http://192.168.43.248:3456 as down: cannot reach the node for 2 tries
    Unregistering the node http://192.168.43.248:3456 because it's been down for 60060 milliseconds
    Cleaning up stale test sessions on the unregistered node http://192.168.43.248:3456
    
    Registered a node http://192.168.43.248:3456
    Marking the node http://192.168.43.248:3456 as down: cannot reach the node for 2 tries
    ......
    

    3.2 Мы не можем начать какой-либо тест. Когда мы пытаемся начать, мы получили:

    Got a request to create a new session: Capabilities [{marionette=true, loadImages=false, acceptInsecureCerts=true, browserName=firefox}]
    Trying to create a new session on test slot {seleniumProtocol=WebDriver, browserName=firefox, maxInstances=5, platform=WIN10}
    Marking the node http://192.168.43.248:3456 as down: cannot reach the node for 2 tries
    Unregistering the node http://192.168.43.248:3456 because it's been down for 60050 milliseconds
    Cleaning up stale test sessions on the unregistered node http://192.168.43.248:3456
    Removed a session that had not yet assigned an external key f83395be-cb27-43a3-8999-b5573f387715, indicates failure in session creation PROXY_REREGISTRATION
    Registered a node http://192.168.43.248:3456
    Marking the node http://192.168.43.248:3456 as down: cannot reach the node for 2 tries
    

    3.3 След теста:

    selenium.common.exceptions.WebDriverException: Message: Error forwarding the new session Error forwarding the request Connect to 192.168.43.248:3456 [/192.168.43.248] failed: Connection timed out (Connection timed out)
    

Должны ли мы создать VPN-сеть или Selenium Grid имеет какой-то особый способ решения этой проблемы?

PS Когда мы перемещаем Selenium Server в локальную среду, все работает.

1 ответ

Решение

Основная проблема не в том, что узел не может зарегистрироваться в концентраторе, а в том, что эхо-запрос концентратора (концентратор продолжает отправлять сигналы сердцебиения на узлы через заданные интервалы, чтобы проверить, работают ли они или нет. вниз) не достигает узлов. Я предполагаю, что это, возможно, связано с тем, что концентратор и узлы находятся в разных сетях, и поэтому двусторонняя связь не происходит.

Это очень похоже на то, как я запускаю Selenium Hub на машине Amazon Cloud и выставляю его на внешний мир, а затем пытаюсь создать Selenium Node на моем локальном компьютере (который также имеет подключение к Интернету) и пытаюсь подключить этот узел к концентратор.

Регистрация от узла к концентратору будет работать, потому что моя машина (на которой работает узел) может обнаружить концентратор, работающий в облаке (и который открыт снаружи), но когда концентратор пытается отправить сигналы пульса на мой узел попытка не удалась, потому что мой компьютер отправил бы свой внутренний IP-адрес, который виден только в локальной сети, но не снаружи, и это тот IP-адрес, который концентратор будет использовать для отправки сигналов сердцебиения.

Это скорее сетевая проблема и не имеет ничего общего с Selenium Grid.

Суть в том, что вам нужно убедиться, что ваш Selenium Hub и Selenium Node находятся в одной сети. Таким образом, вы можете сделать это через настройки VPN (я не эксперт по сети, поэтому я не могу больше комментировать, как это сделать) (или) вы переместите свой концентратор в ту же сеть, что и ваши узлы.

Надеюсь, что это добавляет ясности.

Другие вопросы по тегам