Selenio - Log4j Logging

Log4j è un framework di registrazione dei controlli che fornisce informazioni su ciò che è accaduto durante l'esecuzione. Offre i seguenti vantaggi:

  • Ci consente di comprendere l'esecuzione dell'applicazione.

  • È possibile salvare l'output del registro che può essere analizzato in seguito.

  • Aiuta nel debug, in caso di errori dell'automazione del test.

  • Può essere utilizzato anche a scopo di controllo per esaminare l'integrità dell'applicazione.

Componenti

1. Istanza della classe Logger.

2. Metodi a livello di registro utilizzati per registrare i messaggi come uno dei seguenti:

  • error
  • warn
  • info
  • debug
  • log

Esempio

Usiamo lo stesso calcolatore percentuale per questa demo.

Step 1 - Scarica il file JAR log4j da https://logging.apache.org/log4j/1.2/download.html e scarica il formato Zipped del file JAR.

Step 2 - Crea "Nuovo progetto Java" accedendo al menu File.

Step 3 - Immettere il nome del progetto come "log4j_demo" e fare clic su "Avanti".

Step 4 - Fai clic su Aggiungi jar esterno e aggiungi "Log4j-1.2.17.jar".

Step 5 - Fare clic su Aggiungi jar esterno e aggiungere le librerie Selenium WebDriver.

Step 6 - Fare clic su Aggiungi jar esterno e aggiungere il JAR Selenium WebDriver che si trova nella cartella Libs.

Step 7 - Aggiungi un nuovo file XML utilizzando il quale possiamo specificare le proprietà di Log4j.

Step 8 - Immettere il nome del file di registro come "Log4j.xml".

Step 9 - La struttura della cartella finale è mostrata di seguito.

Step 10 - Ora aggiungi le proprietà di Log4j che verrebbero rilevate durante l'esecuzione.

<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j = "http://jakarta.apache.org/log4j/" debug = "false">

   <appender name = "fileAppender" class = "org.apache.log4j.FileAppender">
      <param name = "Threshold" value = "INFO" />
      <param name = "File" value = "percent_calculator.log"/>
      
      <layout class = "org.apache.log4j.PatternLayout">
         <param name = "ConversionPattern"
            value = "%d{yyyy-MM-dd HH:mm:ss}  [%c] (%t:%x) %m%n" />
      </layout>
   </appender>

   <root>
      <level value = "INFO"/>
      <appender-ref ref = "fileAppender"/>
   </root>
   
</log4j:configuration>

Step 11- Ora a scopo dimostrativo, incorporeremo log4j nello stesso test che abbiamo eseguito (calcolatore percentuale). Aggiungi un file di classe nella funzione "Principale".

package log4j_demo;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.apache.log4j.xml.DOMConfigurator;

import java.util.concurrent.TimeUnit;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;

public class log4j_demo {
   static final Logger logger = LogManager.getLogger(log4j_demo.class.getName());
   
   public static void main(String[] args) {
   
      DOMConfigurator.configure("log4j.xml");
      logger.info("# # # # # # # # # # # # # # # # # # # # # # # # # # # ");
      logger.info("TEST Has Started");
      WebDriver driver = new FirefoxDriver();
      
      //Puts a Implicit wait, Will wait for 10 seconds before throwing exception
      driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
      
      //Launch website
      driver.navigate().to("http://www.calculator.net/");
      logger.info("Open Calc Application");
      
      //Maximize the browser
      driver.manage().window().maximize();
      
      //Click on Math Calculators
      driver.findElement(By.xpath(".//*[@id = 'menu']/div[3]/a")).click();
      logger.info("Clicked Math Calculator Link");
  
      //Click on Percent Calculators
      driver.findElement(By.xpath(".//*[@id = 'menu']/div[4]/div[3]/a")).click();
      logger.info("Clicked Percent Calculator Link");
      
      //Enter value 10 in the first number of the percent Calculator
      driver.findElement(By.id("cpar1")).sendKeys("10");
      logger.info("Entered Value into First Text Box");
      
      //Enter value 50 in the second number of the percent Calculator
      driver.findElement(By.id("cpar2")).sendKeys("50");
      logger.info("Entered Value into Second Text Box");
      
      //Click Calculate Button
      driver.findElement(By.xpath(".//*[@id = 'content']/table/tbody/tr/td[2]/input")).click();
      logger.info("Click Calculate Button");
      
      //Get the Result Text based on its xpath 
      String result =
         driver.findElement(By.xpath(".//*[@id = 'content']/p[2]/span/font/b")).getText();  
      logger.info("Get Text Value");
      
      //Print a Log In message to the screen
      logger.info(" The Result is " + result);
      
      if(result.equals("5")) {
         logger.info("The Result is Pass");
      } else {
         logger.error("TEST FAILED. NEEDS INVESTIGATION");
      }
      
      logger.info("# # # # # # # # # # # # # # # # # # # # # # # # # # # ");
      //Close the Browser.
      driver.close();    
   }
}

Esecuzione

Al momento dell'esecuzione, il file di registro viene creato nella cartella principale come mostrato di seguito. NON È POSSIBILE individuare il file in Eclipse. Dovresti aprire "Windows Explorer" per mostrare lo stesso.

Il contenuto del file è mostrato di seguito.