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.