private StringBuilder formatedBrowserLogs() { StringBuilder logEntries = new StringBuilder(); SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); for (LogEntry logEntry : getBrowserLog().getAll()) { logEntries.append(logEntry.getLevel()).append(": ") .append(sdfDate.format(logEntry.getTimestamp())).append(": ") .append(logEntry.getMessage()).append(System.lineSeparator()); } return logEntries; }
LogEntry toLogEntry() { return new LogEntry(level, timestamp, message); }
/** * @Title: getOutputlog @Description: TODO @author * ahu@greendotcorp.com @param @return void return type @throws */ public void getOutputlog() { LogEntries logEntries = driver.manage().logs().get(LogType.BROWSER); for (LogEntry entry : logEntries) { log.info(Calendar.getInstance().getTime() + " " + entry.getLevel() + " " + entry.getMessage()); // do something useful with the data } }
@Test public void testSimpleSamlLoginWithAddShadowUserOnLoginFalse() throws Exception { // Deleting marissa@test.org from simplesamlphp because previous SAML authentications automatically // create a UAA user with the email address as the username. deleteUser(SAML_ORIGIN, testAccounts.getEmail()); IdentityProvider provider = IntegrationTestUtils.createIdentityProvider(SAML_ORIGIN, false, baseUrl, serverRunning); String clientId = "app-addnew-false"+ new RandomValueStringGenerator().generate(); String redirectUri = "http://nosuchhostname:0/nosuchendpoint"; BaseClientDetails client = createClientAndSpecifyProvider(clientId, provider, redirectUri); String firstUrl = "/oauth/authorize?" + "client_id=" + clientId + "&response_type=code" + "&redirect_uri=" + URLEncoder.encode(redirectUri, "UTF-8"); webDriver.get(baseUrl + firstUrl); webDriver.findElement(By.xpath("//h2[contains(text(), 'Enter your username and password')]")); webDriver.findElement(By.name("username")).clear(); webDriver.findElement(By.name("username")).sendKeys(testAccounts.getUserName()); webDriver.findElement(By.name("password")).sendKeys(testAccounts.getPassword()); webDriver.findElement(By.xpath("//input[@value='Login']")).click(); // We need to verify the last request URL through the performance log because the redirect // URI does not exist. When the webDriver follows the non-existent redirect URI it receives a // connection refused error so webDriver.getCurrentURL() will remain as the SAML IdP URL. List<LogEntry> logEntries = webDriver.manage().logs().get(LogType.PERFORMANCE).getAll(); List<String> logMessages = logEntries.stream().map(logEntry -> logEntry.getMessage()).collect(Collectors.toList()); assertThat(logMessages, hasItem(containsString(redirectUri + "?error=access_denied&error_description=SAML+user+does+not+exist.+You+can+correct+this+by+creating+a+shadow+user+for+the+SAML+user."))); }
String getError( WebDriver driver){ String retVal=""; System.err.println("getError( WebDriver driver)"); LogEntries logEntries = driver.manage().logs().get(LogType.BROWSER); for (LogEntry logEntry : logEntries) { // Get log message, timestamp and level. System.err.println("LogEntry:"+logEntry.getMessage()); // ignoro los logs ya mostrados if (logEntry.getTimestamp()<= lastTimeStamp) continue; String errorData= logEntry.getMessage(); // Me fijo si lo que dice el log es una de las causas usadas para reportar error for (String err : errorStrings){ if(errorData.toUpperCase().contains(err.subSequence(0,err.length()))){ retVal += errorData +"\n"; lastTimeStamp = logEntry.getTimestamp(); break; } } } // Si no hay errores retorna null return (retVal.compareTo("")==0)? null: retVal; }
/** * @param level {@link Level} the level to filter the log entries * @return all log entries for that level and above * @deprecated To be deleted in 4.0, use Java 8 stream abilities to filter log entries: * <code>logEntries.getAll().stream().filter(somePredicate).collect(Collectors.toList())</code> */ @Deprecated public List<LogEntry> filter(Level level) { return unmodifiableList(entries.stream() .filter(entry -> entry.getLevel().intValue() >= level.intValue()) .collect(toList())); }
/** * {@inheritDoc} */ @Override public String toString() { return toLogEntry().toString(); } }
/** * @Title: getOutputlog @Description: TODO @author * ahu@greendotcorp.com @param @return void return type @throws */ public void getOutputlog() { LogEntries logEntries = driver.manage().logs().get(LogType.BROWSER); for (LogEntry entry : logEntries) { log.info(Calendar.getInstance().getTime() + " " + entry.getLevel() + " " + entry.getMessage()); // do something useful with the data } }
public List<String> getJSErrorMessageList() { LogEntries jserrors = driver.manage().logs().get(LogType.BROWSER); List<String> jsErrorMessageList = new ArrayList<String>(); for (LogEntry error : jserrors) { LOG.keywordAppender().appendArgument("Text", error.getMessage()); System.out.println("JS Error ==============" + error.getMessage()); jsErrorMessageList.add(error.getMessage()); } return jsErrorMessageList; }
/** filter data and get requests/responses that have been sent on CHE URL */ private String prepareCheNetworkLogs() throws JsonParseException { StringBuilder networkLogsOutput = new StringBuilder("Eclipse Che network logs: \n").append("-------------------------\n"); Map<String, List<Log>> networkLogs = new HashMap<>(); for (LogEntry logEntry : readPerformanceLogs()) { Log log = JsonHelper.fromJson(logEntry.getMessage(), Log.class, null); if (log.isNetworkLog()) { log.setTimestamp(logEntry.getTimestamp()); if (networkLogs.containsKey(log.getRequestId())) { networkLogs.get(log.getRequestId()).add(log); } else { ArrayList<Log> logs = new ArrayList<>(); logs.add(log); networkLogs.put(log.getRequestId(), logs); } if (isLogFromCheTraffic(log.getRequestId(), networkLogs)) { networkLogsOutput.append(log.toString()); } else { networkLogs.remove(log.getRequestId()); } } } return networkLogsOutput.toString(); }
@FailedTest public static void storeBrowsersLogs() { List<String> lines = new ArrayList<>(); for (String browserKey : browserLogs.keySet()) { for (LogEntry logEntry : browserLogs.get(browserKey)) { lines.add(logEntry.toString()); } File file = new File(getDefaultOutputFile("-" + browserKey + "-console.log")); try { FileUtils.writeLines(file, lines); } catch (IOException e) { log.error("Error while writing browser log to a file", e); } } }
private String prepareBrowserLogs() { StringBuilder browserLogsOutput = new StringBuilder("Browser console logs:\n").append("---------------------\n"); readBrowserLogs() .forEach( logEntry -> browserLogsOutput.append( format( "%s %s %s\n\n", formatTime(logEntry.getTimestamp()), logEntry.getLevel(), logEntry.getMessage()))); return browserLogsOutput.toString(); }
/** * Checks browser's log entries, throws an error for any client-side error * and logs any client-side warnings. * * @throws AssertionError * if an error is found in the browser logs */ protected void checkLogsForErrors() { getLogEntries(Level.WARNING).forEach(logEntry -> { if (Objects.equals(logEntry.getLevel(), Level.SEVERE) || logEntry.getMessage().contains("404")) { throw new AssertionError(String.format( "Received error message in browser log console right after opening the page, message: %s", logEntry)); } else { LoggerFactory.getLogger(TestBenchHelpers.class.getName()).warn( "This message in browser log console may be a potential error: '{}'", logEntry); } }); }
void printLog(String type) throws IOException { File logFile = new File(chromePrefLogDir, type + ".json.log.gz"); PrintWriter out = null; try { for (LogEntry entry : driver.manage().logs().get(type)) { if (out == null) { out = new PrintWriter(new GZIPOutputStream(new FileOutputStream(logFile))); } out.println(entry.getMessage()); } } finally { IOUtils.closeQuietly(out); } } }
public void publish(LogRecord record) { LogEntry entry = new LogEntry(record.getLevel(), System.currentTimeMillis(), record.getMessage()); logs.addEntry(LogType.DRIVER, entry); }
@FailedTest public static void storeBrowsersLogs() { List<String> lines = new ArrayList<>(); for (String browserKey : browserLogs.keySet()) { for (LogEntry logEntry : browserLogs.get(browserKey)) { lines.add(logEntry.toString()); } File file = new File(getDefaultOutputFile("-" + browserKey + "-console.log")); try { FileUtils.writeLines(file, lines); } catch (IOException e) { log.error("Error while writing browser log to a file", e); } } }
public void printBrowserLogs() { if (logger.isTraceEnabled()){ final Logs logs = webDriver.manage().logs(); if (logs != null) { final LogEntries logEntries = logs.get(LogType.BROWSER); final StringBuilder buf = new StringBuilder(); buf.append("BROWSER LOGS:\n\n"); for (final LogEntry entry : logEntries) { buf.append(new Date(entry.getTimestamp()) + " " + entry.getLevel() + " " + entry.getMessage() + "\n"); } logger.trace(buf.toString()); } } } }
/** * Gets the log entries from the browser that have the given logging level * or higher. * * @param level * the minimum severity of logs included * @return log entries from the browser */ protected List<LogEntry> getLogEntries(Level level) { return driver.manage().logs().get(LogType.BROWSER).getAll().stream() .filter(logEntry -> logEntry.getLevel().intValue() >= level .intValue()) // we always have this error .filter(logEntry -> !logEntry.getMessage() .contains("favicon.ico")) .collect(Collectors.toList()); }
default List<String> console() { return driver().manage().logs().get("browser").getAll().stream() .map(log -> log.getMessage() .replace(" (undefined:undefined)", "") .replace(" (:)", "") .replace("\n anonymous (:1)", "")) .collect(toList()); }
@Override public synchronized void publish(LogRecord logRecord) { if (isLoggable(logRecord)) { if (records.size() > MAX_RECORDS) { records.remove(); } records.add(new LogEntry(logRecord.getLevel(), logRecord.getMillis(), logRecord.getLoggerName() + " " + logRecord.getSourceClassName() + "." + logRecord.getSourceMethodName() + " " + logRecord.getMessage())); } }