Selênio - Log4j

Log4j é uma estrutura de registro de auditoria que fornece informações sobre o que aconteceu durante a execução. Ele oferece as seguintes vantagens -

  • Permite-nos compreender a execução do aplicativo.

  • A saída de log pode ser salva e analisada posteriormente.

  • Auxilia na depuração, em caso de falhas na automação de testes.

  • Também pode ser usado para fins de auditoria para verificar a integridade do aplicativo.

Componentes

1. Instância da classe Logger.

2. Métodos de nível de registro usados ​​para registrar as mensagens como um dos seguintes -

  • error
  • warn
  • info
  • debug
  • log

Exemplo

Vamos usar a mesma calculadora de porcentagem para esta demonstração.

Step 1 - Baixe o arquivo JAR log4j de https://logging.apache.org/log4j/1.2/download.html e baixe o formato compactado do arquivo JAR.

Step 2 - Crie 'Novo Projeto Java' navegando até o menu Arquivo.

Step 3 - Digite o nome do projeto como 'log4j_demo' e clique em 'Avançar'.

Step 4 - Clique em Adicionar Jar externo e adicione 'Log4j-1.2.17.jar'.

Step 5 - Clique em Adicionar Jar externo e adicione Bibliotecas Selenium WebDriver.

Step 6 - Clique em Adicionar Jar externo e adicione JARs do Selenium WebDriver localizados na pasta Libs.

Step 7 - Adicione um novo arquivo XML usando o qual podemos especificar as propriedades Log4j.

Step 8 - Insira o nome do arquivo de log como 'Log4j.xml'.

Step 9 - A estrutura final da pasta é mostrada abaixo.

Step 10 - Agora adicione as propriedades do Log4j que seriam selecionadas durante a execução.

<?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- Agora para fins de demonstração, vamos incorporar o log4j no mesmo teste que estamos realizando (calculadora percentual). Adicione um arquivo de classe na função '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();    
   }
}

Execução

Após a execução, o arquivo de log é criado na pasta raiz conforme mostrado abaixo. Você NÃO PODE localizar o arquivo no Eclipse. Você deve abrir o 'Windows Explorer' para mostrar o mesmo.

O conteúdo do arquivo é mostrado abaixo.