@Override public void afterCommand(TestSession session, HttpServletRequest request, HttpServletResponse response) { String currentName = Thread.currentThread().getName(); Thread.currentThread().setName(getProxyName()); if (request instanceof WebDriverRequest && "DELETE".equalsIgnoreCase(request.getMethod())) { WebDriverRequest seleniumRequest = (WebDriverRequest) request; if (seleniumRequest.getRequestType().equals(RequestType.STOP_SESSION)) { long executionTime = (System.currentTimeMillis() - session.getSlot().getLastSessionStart()) / 1000; getGa().testEvent(getProxyClassName(), session.getRequestedCapabilities().toString(), executionTime); addTestToDashboard(session.getExternalKey().getKey(), true); } } super.afterCommand(session, request, response); Thread.currentThread().setName(currentName); }
@Override public void afterCommand(TestSession session, HttpServletRequest request, HttpServletResponse response) { String currentName = configureThreadName(); super.afterCommand(session, request, response); LOGGER.debug("lastCommand: {} - executing...", request.getMethod(), request.getPathInfo()); if (request instanceof WebDriverRequest && "POST".equalsIgnoreCase(request.getMethod())) { WebDriverRequest seleniumRequest = (WebDriverRequest) request; if (RequestType.START_SESSION.equals(seleniumRequest.getRequestType())) { ExternalSessionKey externalKey = Optional.ofNullable(session.getExternalKey()) .orElse(new ExternalSessionKey("[No external key present]")); LOGGER.debug(String.format("Test session started with internal key %s and external key %s assigned to remote %s.", session.getInternalKey(), externalKey, getId())); LOGGER.debug("Test session started with internal key {} and external key {} assigned to remote.", session.getInternalKey(), externalKey); videoRecording(DockerSeleniumContainerAction.START_RECORDING); } } this.lastCommandTime = System.currentTimeMillis(); setThreadName(currentName); }
@Override public void afterCommand(TestSession session, HttpServletRequest request, HttpServletResponse response) { super.afterCommand(session, request, response); // its a shame we have to extract this again SeleniumBasedRequest seleniumRequest = SeleniumBasedRequest.createFromRequest(request, getRegistry()); if(RequestType.STOP_SESSION.equals(seleniumRequest.getRequestType())) { if(isCurrentlyRecording) { log.info("Selenium session closed for " + session.getExternalKey() + " on node " + getId() + " - stopping recording."); stopRecording(session); } else { log.severe("Recording not started for " + session.getExternalKey() + " on node " + getId() + " and session being deleted - this could be a bug in the code."); } } }