Какое максимальное количество браузеров может запускать узел Selenium Grid

Какое максимальное количество браузеров может запускать узел Selenium Grid, и если я хочу запустить около 200 браузеров, как вы думаете, Selenium Grid — это то, что мне нужно.


person Awad    schedule 26.03.2019    source источник


Ответы (2)


Не существует фиксированного ограничения сетки селена, но вы должны иметь в виду:

  1. Только один InternetExplorer может работать на одном узле. Это ограничение браузера, а не Selenium. Я не уверен, сможете ли вы запустить более одного InternetExplorer на одном компьютере, но даже если сможете, при выполнении тестов в Intrenet Explorer окно должно быть в фокусе, иначе тесты будут перепутаны. И вы не можете иметь в фокусе более одного окна, поэтому, если вы хотите запускать свои тесты в IE, вы не можете иметь более одного браузера на машине, на которой запущен браузер Internet Explorer.

  2. Если вы можете запустить 200 экземпляров браузера на компьютере без селена, вы, вероятно, сможете запустить такое же количество экземпляров, используя сетку селена. Конечно, сама Selenium grid требует некоторых ресурсов, но сам браузер гораздо более требователен, особенно когда вы начинаете загружать страницы и выполнять тесты. Сомневаюсь, что вы смогли бы это сделать на практике.

Вероятно, также стоит проверить безголовые браузеры, так как они могут быть быстрее и/или легче, чем настоящие браузеры.

Обновление: относительно узла SeleniumGrid и машинного узла.

  • Вы можете иметь более одного узла SeleniumGrid (на разных портах) на одном компьютере.
  • На каждом узле SeleniumGrid может работать только один тип браузера, но может одновременно работать несколько экземпляров этого браузера.

Снова обратите внимание на рассмотрение IE сверху

person Jeni    schedule 26.03.2019
comment
Когда вы говорите IE, вы имеете в виду браузер в целом, а не Internet Explorer, верно? - person Awad; 26.03.2019
comment
Нет, я имею в виду InternetExplorer. При запуске тестов в Intrenet Explorer окно должно быть в фокусе, иначе тесты перепутаются. И вы не можете иметь в фокусе более одного окна, поэтому, если вы хотите запускать свои тесты в IE, вы не можете иметь более одного браузера на узле, на котором работает браузер Internet Explorer. Для других браузеров (например, GoogleChrome и FireFox) такого ограничения нет. - person Jeni; 26.03.2019
comment
Это имеет смысл. Однако у меня нет никаких требований к браузеру, поэтому он может быть любым, а также может быть безголовым, что тоже нормально. В этом случае я могу запустить несколько экземпляров браузера на узле, если это другой IE? - person Awad; 26.03.2019
comment
Да, вы можете это сделать. - person Jeni; 26.03.2019
comment
Благодарю вас! Это было действительно полезно. - person Awad; 26.03.2019
comment
@Jeni Мне любопытно, как можно запустить несколько экземпляров браузера на одном узле? Разве смысл узла не в том, чтобы быть одним драйвером Selenium и одним браузером, управляемым этим драйвером? Каждый узел имеет свой собственный порт в Grid. Если бы вы могли запускать несколько браузеров на одном и том же узле, это означало бы, что вы можете запускать несколько тестовых прогонов на одном и том же порту, что, в первую очередь, отменило бы необходимость существования Selenium Grid. Если я вас неправильно понимаю? - person Asyranok; 26.03.2019
comment
@Asyranok, строго говоря, ты прав. Я должен согласиться на это. Но я считаю, что значение узла в вопросе - сетевой узел. Например. отдельная машина, а не узел в сетке Selenium. Если это не так, мой ответ неверен - person Jeni; 26.03.2019
comment
Спасибо, Джени. @AwadOdeh. Убедитесь, что вы, я и Джени знакомы с терминологией узлов. Selenium Grid называет каждый зарегистрированный порт (и связанные с ним ресурсы) узлом, что я и имею в виду. - person Asyranok; 26.03.2019
comment
То же самое с Safari на macOS, относящееся к пункту 1 ответа. - person Ratmir Asanov; 26.03.2019
comment
Сделал перепроверку. В настройке узла есть параметр maxInstances. Таким образом, даже на одном и том же порту у вас может быть несколько экземпляров, но все они должны относиться к одному и тому же типу браузера. На одном компьютере, но на разных узлах SeleniumGrid (например, на разных портах) у вас также могут быть разные браузеры. Снова применяется правило IE - person Jeni; 26.03.2019
comment
@ Asyranok & Jeni, я думаю, что мой вопрос был не совсем ясен, потому что мне не был ясен термин node в селене. Однако моя цель — иметь возможность запускать как можно больше экземпляров браузера. - person Awad; 26.03.2019

Я не верю, что существует конкретное число, определяемое как предел. В любом случае любое ограничение количества будет произвольным. Ограничение никогда не будет на Selenium Grid, обрабатывающем X слишком много узлов. Ограничение будет по ресурсам.

Если вы хотите запустить любое количество одновременных тестов Selenium на нескольких устройствах, агентах или рабочих пространствах внутри машин, Selenium Grid — это то, что вам нужно.

person Asyranok    schedule 26.03.2019
comment
Итак, я могу иметь любое количество браузеров, работающих на узле, пока ресурсы этого узла могут его обрабатывать? - person Awad; 26.03.2019
comment
Нет, на узле может быть один драйвер, и, следовательно, этот драйвер запускает один браузер. Но Selenium Grid может иметь любое количество узлов. Таким образом, у вас может быть 200 узлов, а это значит, что у вас одновременно запущено 200 драйверов.exe и 200 окон браузера. Теоретически. Но для этого нужно много ресурсов. Если вы планируете разделить это на одной машине, эта машина должна быть достаточно мощной. Тем более, если эта автоматика не работает без головы. - person Asyranok; 26.03.2019