Добрый день.
Автотесты работают в связке Jenkins + java + testng + selenium grid.
Иногда возникают какие-то проблемы, вероятно, сетевые, но может быть и проблемы с нехваткой памяти или процессора.
Суть вопроса: как узнать, какая нода виновата?
Например, ошибка:
FAILED CONFIGURATION: @AfterMethod tearDown org.openqa.selenium.WebDriverException: Session [6dc1eaa8-c208-4d5e-8899-2c17dd2b9b88] was terminated due to FORWARDING_TO_NODE_FAILED Command duration or timeout: 4 milliseconds Build info: version: '2.35.0', revision: '8df0c6bedf70ff9f22c647788f9fe9c8d22210e2', time: '2013-08-17 12:46:41' System info: os.name: 'Linux', os.arch: 'amd64', os.version: '2.6.32-431.11.2.el6.x86_64', java.version: '1.6.0_26' Session ID: 6dc1eaa8-c208-4d5e-8899-2c17dd2b9b88 Driver info: org.openqa.selenium.remote.RemoteWebDriver Capabilities [{platform=XP, acceptSslCerts=true, javascriptEnabled=true, browserName=chrome, chrome={userDataDir=C:\DOCUME~1\user\LOCALS~1\Temp\scoped_dir2116_21832}, rotatable=false, locationContextEnabled=true, webdriver.remote.sessionid=6dc1eaa8-c208-4d5e-8899-2c17dd2b9b88, version=35.0.1916.153, takesHeapSnapshot=true, cssSelectorsEnabled=true, databaseEnabled=false, handlesAlerts=true, browserConnectionEnabled=false, webStorageEnabled=true, nativeEvents=true, applicationCacheEnabled=false, takesScreenshot=true}] at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:191) at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:554) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:569) at org.openqa.selenium.remote.RemoteWebDriver.quit(RemoteWebDriver.java:423) at ru.mamba.fw.WebDriverHelper.stop(WebDriverHelper.java:92) at ru.mamba.fw.ApplicationManager.stop(ApplicationManager.java:46) at ru.mamba.tests.TestBase.tearDown(TestBase.java:53) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: org.openqa.selenium.remote.ErrorHandler$UnknownServerException: Session [6dc1eaa8-c208-4d5e-8899-2c17dd2b9b88] was terminated due to FORWARDING_TO_NODE_FAILED Build info: version: '2.35.0', revision: '8df0c6bedf70ff9f22c647788f9fe9c8d22210e2', time: '2013-08-17 12:46:41' System info: os.name: 'Linux', os.arch: 'amd64', os.version: '2.6.32-431.11.2.el6.x86_64', java.version: '1.6.0_26' Driver info: driver.version: unknown at org.openqa.grid.internal.ActiveTestSessions.getExistingSession(ActiveTestSessions.java:105) at org.openqa.grid.internal.Registry.getExistingSession(Registry.java:423) at org.openqa.grid.web.servlet.handler.RequestHandler.getSession(RequestHandler.java:238) at org.openqa.grid.web.servlet.handler.RequestHandler.process(RequestHandler.java:119) at org.openqa.grid.web.servlet.DriverServlet.process(DriverServlet.java:83) at org.openqa.grid.web.servlet.DriverServlet.doDelete(DriverServlet.java:73) at javax.servlet.http.HttpServlet.service(HttpServlet.java:733) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.seleniumhq.jetty7.servlet.ServletHolder.handle(ServletHolder.java:565) at org.seleniumhq.jetty7.servlet.ServletHandler.doHandle(ServletHandler.java:479) at org.seleniumhq.jetty7.server.session.SessionHandler.doHandle(SessionHandler.java:225) at org.seleniumhq.jetty7.server.handler.ContextHandler.doHandle(ContextHandler.java:1031) at org.seleniumhq.jetty7.servlet.ServletHandler.doScope(ServletHandler.java:406) at org.seleniumhq.jetty7.server.session.SessionHandler.doScope(SessionHandler.java:186) at org.seleniumhq.jetty7.server.handler.ContextHandler.doScope(ContextHandler.java:965) at org.seleniumhq.jetty7.server.handler.ScopedHandler.handle(ScopedHandler.java:117) at org.seleniumhq.jetty7.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111) at org.seleniumhq.jetty7.server.Server.handle(Server.java:349) at org.seleniumhq.jetty7.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:452) at org.seleniumhq.jetty7.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:47) at org.seleniumhq.jetty7.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:884) at org.seleniumhq.jetty7.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:938) at org.seleniumhq.jetty7.http.HttpParser.parseNext(HttpParser.java:634) at org.seleniumhq.jetty7.http.HttpParser.parseAvailable(HttpParser.java:230) at org.seleniumhq.jetty7.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:66) at org.seleniumhq.jetty7.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:254) at org.seleniumhq.jetty7.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:599) at org.seleniumhq.jetty7.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:534) at java.lang.Thread.run(Thread.java:724) ... Removed 15 stack frames SKIPPED CONFIGURATION: @BeforeMethod setUp
По revision или по Session ID определить ноду невозможно, т.к. Grid Console выдает только вот такую информацию:
port:5565 servlets:[] host:192.168.2.182 cleanUpCycle:5000 browserTimeout:0 hubHost:192.168.2.174 registerCycle:5000 hub:http://192.168.2.174:4444/grid/register capabilityMatcher:org.openqa.grid.internal.utils.DefaultCapabilityMatcher newSessionWaitTimeout:-1 url:http://192.168.2.182:5565 remoteHost:http://192.168.2.182:5565 prioritizer:null register:true throwOnCapabilityNotPresent:true nodePolling:5000 proxy:org.openqa.grid.selenium.proxy.DefaultRemoteProxy browser:browserName=chrome,version=... maxSession:5 role:node jettyMaxThreads:-1 hubPort:4444 timeout:300000