2016-04-26 4 views
0

Я пытаюсь зарегистрировать то, что наш тест нашел, но каждый раз регистрирует время и дату. Мне нужно, чтобы массив журнал, так что он может прочитать:Форматирование Logger.info

«[Дата/время] Номер пользователя 1 Имя Test (или несоответствие)

Кнопка (Найдено Не или Found) ... .. . ... ...

номер пользователя 2 название испытания ... ... ... ... ... ...

имя номер 3

пользователя Test ...

... ... ... ... ... "

Вот мой текущий код:

package com.centurylink.rss.test; 

import static org.junit.Assert.assertTrue; 

import java.io.IOException; 
import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.HashSet; 
import java.util.List; 
import java.util.Map; 
import java.util.Set; 
import java.util.logging.FileHandler; 
import java.util.logging.Logger; 
import java.util.logging.SimpleFormatter; 

import java.awt.Desktop; 
import java.io.File; 
import java.io.IOException; 

import org.junit.Test; 
import org.openqa.selenium.By; 
import org.openqa.selenium.JavascriptExecutor; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.firefox.FirefoxDriver; 
import org.openqa.selenium.interactions.Action; 
import org.openqa.selenium.interactions.Actions; 
import org.openqa.selenium.support.ui.WebDriverWait; 

import com.google.common.base.Predicate; 

public class checkaccess { 

    private static final Logger logger = Logger.getLogger("AccessTest"); 
    private static FileHandler fh; 

    public static void main(String[] args) { 
     try { 
      // This block configure the logger with handler and 
      // formatter 
      fh = new FileHandler("C:/SeleniumLogFiles/AccessTest.log", true); 
      logger.addHandler(fh); 
      SimpleFormatter formatter = new SimpleFormatter(); 
      fh.setFormatter(formatter); 

      // The following statement is used to log any 
      // messages 
      logger.info("Button Test"); 

     } catch (SecurityException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

     // Declaration and instantiation of objects/variables 
     String actualTitle = ""; 
     List<WebElement> actualButtonlist; 
     Set<String> buttons = new HashSet<>(); 
     Map<String[], Set<String>> map = new HashMap<String[], Set<String>>(); 

     String[] u1 = { "firstname lastname", "username" }; 
     String[] u2 = { "firstname lastname", "username" }; 
     String[] u3 = { "firstname lastname", "username" }; 
     String[] u4 = { "firstname lastname", "username" }; 
     String[] u5 = { "firstname lastname", "username" }; 
     String[] u6 = { "firstname lastname", "username" }; 
     String[] u7 = { "firstname lastname", "username" }; 
     String[] u8 = { "firstname lastname", "username" }; 
     String[] u9 = { "firstname lastname", "username" }; 
     String[] u10 = { "firstname lastname", "username" }; 
     String[] u11 = { "firstname lastname", "username" }; 
     String[] u12 = { "firstname lastname", "username" }; 
     String[] u13 = { "firstname lastname", "username" }; 
     String[] u14 = { "firstname lastname", "username" }; 

     buttons.add("Home"); 
     buttons.add("Subscriptions"); 
     buttons.add("Content"); 
     buttons.add("Add Content"); 
     buttons.add("Review"); 
     buttons.add("Channels"); 
     buttons.add("Add Channel"); 
     buttons.add("Review"); 
     buttons.add("Groups"); 
     buttons.add("Add Group"); 
     buttons.add("Review"); 
     buttons.add("Users"); 
     buttons.add("Tools"); 
     buttons.add("1 Call Guide"); 
     buttons.add("2 Call Guide"); 
     buttons.add("3 Call Guide"); 
     buttons.add("Mart"); 
     buttons.add("Library"); 
     buttons.add("Place"); 
     buttons.add("Tracking Report"); 

     map.put(u1, buttons); 
     for (String[] d : map.keySet()) { 
      map.get(d); 
     } 
     String[] accessnames = new String[14]; 
     accessnames[0] = "firstname lastname"; 
     accessnames[1] = "firstname lastname"; 
     accessnames[2] = "firstname lastname"; 
     accessnames[3] = "firstname lastname"; 
     accessnames[4] = "firstname lastname"; 
     accessnames[5] = "firstname lastname"; 
     accessnames[6] = "firstname lastname"; 
     accessnames[7] = "firstname lastname"; 
     accessnames[8] = "firstname lastname"; 
     accessnames[9] = "firstname lastname"; 
     accessnames[10] = "firstname lastname"; 
     accessnames[11] = "firstname lastname"; 
     accessnames[12] = "firstname lastname"; 
     accessnames[13] = "firstname lastname"; 

     String[] values = new String[14]; 
     values[0] = "username"; 
     values[1] = "username"; 
     values[2] = "username"; 
     values[3] = "username"; 
     values[4] = "username"; 
     values[5] = "username"; 
     values[6] = "username"; 
     values[7] = "username"; 
     values[8] = "username"; 
     values[9] = "username"; 
     values[10] = "username"; 
     values[11] = "username"; 
     values[12] = "username"; 
     values[13] = "username"; 
     WebDriver driver = new FirefoxDriver(); 
     // Initializes Loop 
     int i = values.length; 
     for (int j = 0; j < i; j++) { 

      // Declaration and instantiation of objects/variables 

      String baseUrl = "http://adress_here.com"; 
      String expectedTitle = "Welcome " + accessnames[j]; 

      // Launch Firefox and direct it to the Base URL 
      driver.get(baseUrl); 

      // Get the text box element to type into & click submit 
      WebElement userid = driver.findElement(By.id("username")); 
      WebElement submit = driver.findElement(By.xpath("//*[@value='Submit']")); 

      // Input into text box 
      Actions builder = new Actions(driver); 
      Action InputId = builder.moveToElement(userid).click().sendKeys(userid, values[j]).moveToElement(submit) 
        .click().build(); 
      InputId.perform(); 

      // Waits 3 seconds for page to load 
      try { 
       Thread.sleep(3000); 
      } catch (InterruptedException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      // Get the actual buttons of the title & For Each Loop 
      // int x = Buttons.length; 
      actualButtonlist = driver.findElements(By.xpath("//div[@id='site']/input")); 
      int x = actualButtonlist.size(); 

      // Log access pass or fail 
         if (actualTitle.contentEquals(expectedTitle)) { 

          logger.info(accessnames[j] + " Access Test Pass"); 
         } else { 

          logger.info(accessnames[j] + " Access Test Failed"); 

         } 
         // Prints pass or fail to the console 
         // if (actualTitle.contentEquals(expectedTitle)) 
         // { 
         // System.out.println("Login Test Passed!"); 
         // } else { 
         // System.out.println("Login Test Failed"); 
         // } 

      // for (WebElement actualButton : actualButtonlist) { 
      Set<String> thingsFound = checkFor(actualButtonlist, buttons); 
      for (String s : buttons) { 
       if (thingsFound.contains(s)) { 
        logger.info(s + " found"); 
       } else { 
        logger.info(s + " not found"); 
       } 
      } 

      // Get the actual value of the title 
      actualTitle = driver.findElement(By.id("userInfoTitle")).getText(); 

      driver.manage().deleteAllCookies(); 
     } 
     // } 
     try { 
      fileopener(); 
     } catch (Exception e) { 
     } 
     driver.close(); 
    } 

    public static Set<String> checkFor(List<WebElement> web, Set<String> things) { 
     String temp = null; 
     HashSet<String> s = new HashSet<String>(); 
     for (WebElement w : web) { 
      temp = w.getAttribute("value"); 
      if (things.contains(temp)) { 
       s.add(temp); 
      } 
     } 
     return s; 
    } 

    public static void fileopener() throws IOException { 
     WebDriver driver = new FirefoxDriver(); 
     driver.get("file:C:\\SeleniumLogFiles\\AccessTest.log"); 
     // text file, should be opening in default text editor 
     File file = new File("C:/SeleniumLogFiles/AccessTest.log"); 

     // first check if Desktop is supported by Platform or not 
     if (!Desktop.isDesktopSupported()) { 
      System.out.println("Desktop is not supported"); 
      return; 
     } 

     Desktop desktop = Desktop.getDesktop(); 
     if (file.exists()) { 
      desktop.open(file); 
     } 
    } 
} 

ответ

0

Похоже, вы хотите установить java.util.logging.SimpleFormatter.format к: java.util.logging.SimpleFormatter.format=%5$s %6$s%n

и просто войти в current date and time в лесозаготовительной заявлении:

if (actualTitle.contentEquals(expectedTitle)) { 
    logger.log(Level.INFO, "{0} Access Test Pass {1,date} {1,time}", 
       new Object[]{accessnames[j] , System.currentTimeMillis()}); 
} else { 
    logger.log(Level.INFO, "{0} Access Test Failed {1,date, EEE, MMM dd HH:mm:ss:S ZZZ yyyy}", 
       new Object[]{accessnames[j] , System.currentTimeMillis()}); 
} 
Смежные вопросы