10

При выполнении моего теста мне нужно иметь длительные задержки (~ 40 секунд).Как увеличить тайм-аут сеанса селеновой сетки?

И я вижу, что сеанс Selenium удаляется в течение этого времени.

Пожалуйста, помогите: Как настроить тайм-аут сеанса для увеличения?

Вот что я вижу меньше, что 30 секунд, после того, как задержка начала в журнале Селен узла:

INFO org.openqa.selenium.remote.server.DriverServlet - Session 7f5fffec-4882-4c4c -b091-c780c66d379d удален из-за тайм-аута клиента

И после 40 секунд сна, я получаю это исключение в моем коде:

org.openqa.selenium.remo te.SessionNotFoundException

Я попытался увеличить все возможные таймауты. Вот как я начинаю хаб:

java -jar selenium-server-standalone.jar -role hub 
-hubConfig selenium_hub.json 
-nodeTimeout 61 
-remoteControlPollingIntervalInSeconds 180 
-sessionMaxIdleTimeInSeconds 240 
-newSessionMaxWaitTimeInSeconds 250 
-timeout 59 

А вот selenium_hub.json:

{ 
    "host": null, 
    "port": 4444, 
    "newSessionWaitTimeout": -1, 
    "servlets": [], 
    "prioritizer": null, 
    "capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher", 
    "throwOnCapabilityNotPresent": true, 
    "nodePolling": 5000, 
    "cleanUpCycle": 5000, 
    "timeout": 60000, 
    "browserTimeout": 60000, 
    "maxSession": 5, 
    "jettyMaxThreads": -1 
} 

Нет каких-либо тайм-ауты, сконфигурированные на узлах. Вот что я вижу в моей сетевой консоли:

browserTimeout : 60000 
capabilityMatcher : org.openqa.grid.internal.utils.DefaultCapabilityMatcher 
cleanUpCycle : 5000 
host : null 
hubConfig : /usr/local/selenium/config/selenium_hub.json 
jettyMaxThreads : -1 
maxSession : 5 
newSessionMaxWaitTimeInSeconds : 250 
newSessionWaitTimeout : -1 
nodePolling : 5000 
nodeTimeout : 61 
port : 4444 
prioritizer : null 
remoteControlPollingIntervalInSeconds : 180 
role : hub 
servlets : [] 
sessionMaxIdleTimeInSeconds : 240 
throwOnCapabilityNotPresent : true 
timeout : 59000 

Я использую Селен 2,45

+0

Привет, могу я спросить вас, как вы нашли все эти параметры? Я не вижу многих из них, упомянутых в документации. Благодаря! –

+0

Хороший вопрос. Я не думаю, что это хорошо документировано. Я просто использовал файлы по умолчанию из Селена: https://github.com/SeleniumHQ/selenium/tree/master/java/server/src/org/openqa/grid/common/defaults – Slavik

ответ

7

Я наконец понял это!

Решение на самом деле очень просто: необходимо перезапустить узлы после изменения конфигурации на концентраторе.

Это не совсем очевидно:

Когда я изменил конфигурацию на ступице, то я перезапустил. Узел автоматически перерегистрируется в концентраторе. Затем, глядя на консоль, я вижу, что новые параметры конфигурации вступают в силу. Более того, по мере того, как я смотрю на конфигурации узлов, я вижу, что такие же параметры изменяются на узлах. Это вводит в заблуждение! Потому что даже если узлы перерегистрировались, но их конфигурация НЕ была изменена. Он изменяется только при перезапуске узла. Я думаю, это ошибка Selenium - узел должен повторно настраиваться во время перерегистрации.

+1

Создан отчет Селена ошибки: HTTPS : //github.com/SeleniumHQ/selenium/issues/374 – Slavik

+0

@ Славик, я каждый день перезапускал свой узел, даже если никаких изменений в концентраторе нет.Даже когда я удаляю это из-за нехватки времени для клиента. Как действовать. – Madhu

+0

Я рекомендую вам задать этот вопрос в отдельной теме. Я могу думать об увеличении времени ожидания. Другое решение - отправить события KeepAlive. – Slavik

0
C# 

driver = new RemoteWebDriver(new Uri("http://host:4444/wd/hub"), capabilities); 
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(desired_time)); 

P.S. Я использую сетку селена 2.53 и firefox 46.0

+0

Ваш ответ касается одного из тайм-аутов драйвера, а не таймаута селеной сети. – Gucu112

Смежные вопросы