Selenio - Registro Log4j

Log4j es un marco de registro de auditoría que brinda información sobre lo que sucedió durante la ejecución. Ofrece las siguientes ventajas:

  • Nos permite comprender la ejecución de la aplicación.

  • La salida del registro se puede guardar y analizar más tarde.

  • Ayuda en la depuración, en caso de fallas en la automatización de pruebas.

  • También se puede utilizar con fines de auditoría para ver el estado de la aplicación.

Componentes

1. Instancia de la clase Logger.

2. Métodos de nivel de registro utilizados para registrar los mensajes como uno de los siguientes:

  • error
  • warn
  • info
  • debug
  • log

Ejemplo

Usemos la misma calculadora de porcentaje para esta demostración.

Step 1 - Descargar el archivo JAR log4j de https://logging.apache.org/log4j/1.2/download.html y descargue el formato comprimido del archivo JAR.

Step 2 - Cree un 'Nuevo proyecto Java' navegando hasta el menú Archivo.

Step 3 - Ingrese el nombre del proyecto como 'log4j_demo' y haga clic en 'Siguiente'.

Step 4 - Haga clic en Agregar jar externo y agregue 'Log4j-1.2.17.jar'.

Step 5 - Haga clic en Agregar jar externo y agregue bibliotecas de Selenium WebDriver.

Step 6 - Haga clic en Add External Jar y agregue Selenium WebDriver JAR's ubicado en la carpeta Libs.

Step 7 - Agregar un nuevo archivo XML mediante el cual podemos especificar las propiedades de Log4j.

Step 8 - Introduzca el nombre del archivo de registro como 'Log4j.xml'.

Step 9 - La estructura de carpetas final se muestra a continuación.

Step 10 - Ahora agregue las propiedades de Log4j que se recogerían durante la ejecución.

<?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- Ahora, para fines de demostración, incorporaremos log4j en la misma prueba que hemos estado realizando (calculadora de porcentaje). Agregue un archivo de clase en la función 'Principal'.

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();    
   }
}

Ejecución

Tras la ejecución, el archivo de registro se crea en la carpeta raíz como se muestra a continuación. NO PUEDE localizar el archivo en Eclipse. Debe abrir el 'Explorador de Windows' para mostrar lo mismo.

El contenido del archivo se muestra a continuación.