Selenium Grid: не удалось запустить сеанс Selenium: ошибка переадресации нового сеанса Пустой пул виртуальных машин для установки

Когда я запускаю муравьиные цели через сетку Selenium, я могу запускать все цели параллельно. Если я закрою какой-либо сеанс Firefox до завершения выполнения. Я получил:

ERROR Server Exception: sessionId fc89c194951a4790bce8418dac7d5ceb doesn't exist;
     perhaps this session was already stopped?
     [java]  at com.thoughtworks.selenium.HttpCommandProcessor.throwAssertionFailureExceptionOrError(HttpCommandProcessor.java:97)
     [java]  at com.thoughtworks.selenium.HttpCommandProcessor.doCommand(HttpCommandProcessor.java:91)
     [java]  at com.thoughtworks.selenium.HttpCommandProcessor.getString(HttpCommandProcessor.java:262)
     [java]  at com.thoughtworks.selenium.HttpCommandProcessor.getStringArray(HttpCommandProcessor.java:271)
     [java]  at com.thoughtworks.selenium.DefaultSelenium.getAllWindowTitles(DefaultSelenium.java:567)
     [java]  at com.operative.qa.automation.util.URLTestContext.seleniumStart(URLTestContext.java:232)
     [java]  at com.operative.qa.automation.util.URLTestContext.CommonLogin(URLTestContext.java:66)
     [java]  at com.operative.qa.automation.main.AutomationFileSequence.main(AutomationFileSequence.java:86)
     [java] java.lang.NullPointerException
     [java]  at com.operative.qa.automation.util.URLTestContext.CommonLogin(URLTestContext.java:78)
     [java]  at com.operative.qa.automation.main.AutomationFileSequence.main(AutomationFileSequence.java:86)
     [java] com.thoughtworks.selenium.SeleniumException:
           org%2Eopenqa%2Egrid%2Ecommon%2Eexception%2EGridException%3A+Session+
           %5Bfc89c194951a4790bce8418dac7d5ceb%5D+not+available+%2D+%5Bext%2E+
           key+1a83ce8d23284bc0ae57545c85f93edf%2C+ext%2E+key+
           9de7dcbcdc29438db917d22773cf3598%5D
     [java]  at com.thoughtworks.selenium.HttpCommandProcessor.throwAssertionFailureExceptionOrError(HttpCommandProcessor.java:97)
     [java]  at com.thoughtworks.selenium.HttpCommandProcessor.getCommandResponseAsString(HttpCommandProcessor.java:168)
     [java]  at com.thoughtworks.selenium.HttpCommandProcessor.executeCommandOnServlet(HttpCommandProcessor.java:104)
     [java]  at com.thoughtworks.selenium.HttpCommandProcessor.doCommand(HttpCommandProcessor.java:86)
     [java]  at com.thoughtworks.selenium.HttpCommandProcessor.stop(HttpCommandProcessor.java:252)
     [java]  at com.thoughtworks.selenium.DefaultSelenium.stop(DefaultSelenium.java:112)
     [java]  at com.operative.qa.automation.util.URLTestContext.stop(URLTestContext.java:268)
     [java]  at com.operative.qa.automation.main.AutomationFileSequence.main(AutomationFileSequence.java:114)

Как я могу решить эту проблему?

Есть ли способ остановить сеанс Selenium. Иногда, если я вручную закрываю браузер Firefox, чтобы остановить выполнение и выключить сервер. Тем не менее, выполнение продолжается и все тестовые случаи помечаются как неудачные. Как избавиться от этого?

Я использую: Selenium RC с сеткой 2


person farheen    schedule 29.02.2012    source источник
comment
Почему вы хотите остановить сеанс во время выполнения? И вы выполняете это, используя запланированный процесс (например, Jenkins/Hudson) или через IDE (Eclipse и т. д.)   -  person A.J    schedule 05.03.2012
comment
Мы выполняем 3 модуля параллельно. Запускаем его из eclipse. Если предположить, что я зарегистрировал неправильное имя клиента, мне нужно остановить выполнение и перезапустить. Чтобы остановить это, я перестану использовать eclipse stop (красная кнопка), который перестанет отображать журналы консоли, но сеанс будет продолжать работать. Если я закрываю браузер, сессия все еще продолжается, после этого, если я выключу концентратор, который запускает все эти 3 модуля параллельно, сессия все равно продолжается и помечает все 500 тестов этих 3 модулей как сбой. Чтобы преодолеть это то, что я делаю, машина все время перезагружается, чтобы я мог остановить выполнение.   -  person farheen    schedule 06.03.2012
comment
Где вы видите этот неудачный отчет? Используете ли вы какой-либо фреймворк, например testNG или jUnit? Отключая грид, вы убиваете только процесс, который запускает тесты. Кажется, у вас все еще есть процесс, который отправляет команды в концентратор.   -  person A.J    schedule 06.03.2012
comment
Мы не используем testNG или Junit, у нас есть наша структура, основанная на ключевых словах. Отчет будет опубликован после завершения каждого тестового случая. Существует один файл с именем URLTestContext, в котором есть команда остановки сервера, как показано в приведенном выше журнале.   -  person farheen    schedule 06.03.2012


Ответы (2)


Закрытие браузеров не останавливает выполнение. Вы должны остановить его с помощью любой программы, которую вы используете для запуска теста, или с помощью pleaseStop() из RunNotifier.

person arket    schedule 29.02.2012
comment
Даже если я остановлю наш класс java suitelauncher, сеанс не остановится, просто закончится консоль. Как использовать RunNotifier? - person farheen; 29.02.2012
comment
Что ж, чтобы остановить ваш тестовый прогон, мне нужно знать, как вы его запустили (с какой программой?), и немного кода было бы полезно. - person arket; 29.02.2012
comment
Спасибо за ответ. Но наш фреймворк вообще не использует junit. Но моя проблема иногда в том, что концентратор говорит, что не может найти сеанс в реестре. Как избавиться от этого - person farheen; 02.03.2012
comment
жаль, что мои знания заканчиваются здесь. - person arket; 02.03.2012

Я останавливаю процесс java.exe из диспетчера задач, поэтому сеанс уничтожается.

person farheen    schedule 08.05.2012