Log4j em Selenium: Como baixar e usar o arquivo de propriedades Log4j

O que é o Log4j Selenium?

Log4j é uma estrutura de registro (APIS) rápida, flexível e confiável escrita em Java desenvolvido no início de 1996. É distribuído sob o apache Licença de software. Log4J foi portado para C, C++, C#, Perl, Python, linguagens Ruby e Eiffel. É uma ferramenta usada para pequenas e grandes escalas Selenium Projetos de automação.

Por que usar Log4j?

  • É um código aberto
  • Com o Log4j, é possível armazenar os detalhes do fluxo do nosso Selenium Automação em um arquivo ou bancos de dados
  • Log4j é usado para projetos grandes e pequenos
  • No Log4j, usamos instruções de log em vez de instruções SOPL no código para saber o status de um projeto enquanto ele está em execução

Componentes Log4j

Componentes Log4j

Madeireiros

É responsável por registrar informações. Para implementar registradores em um projeto, as seguintes etapas precisam ser executadas

Crie uma instância para a classe logger

A classe Logger é uma Javautilitário baseado em que possui todos os métodos genéricos já implementados para usar log4j

Defina o nível Log4j

Principalmente, existem cinco tipos de níveis de log

  1. Todos – Este nível de registro registrará tudo (ativa todos os registros)
  2. DEBUG – imprime as informações de depuração e é útil na fase de desenvolvimento
  3. INFO – imprimir mensagem informativa que destaca o andamento da inscrição
  4. AVISO – imprime informações sobre comportamento defeituoso e inesperado do sistema.
  5. ERRO – imprime mensagem de erro que pode permitir que o sistema continue
  6. FATAL – imprime informações críticas do sistema que estão causando falha no aplicativo
  7. DESLIGADO – Sem registro

Anexos

É usado para entregar LogEvents ao seu destino. Ele decide o que acontecerá com as informações de log. Em palavras simples, é usado para gravar os logs em arquivo. A seguir estão alguns tipos de Appenders

  1. ConsoleAppender registra na saída padrão
  2. O anexador de arquivo imprime logs em algum arquivo
  3. Rolando o anexador de arquivo para um arquivo com tamanho máximo

Nota: Nas propriedades log4j podemos chamar o appender com qualquer nome. Existem outros anexadores também, mas nos restringiremos a estes poucos.

Layouts

É responsável por formatar as informações de log em diferentes estilos.

A classe Logger fornece métodos diferentes para lidar com atividades de registro em log. Ele fornece dois métodos estáticos para obter um objeto Logger.

Public static Logger getRootLogger()
Public static Logger getLogger(String name)

Como o log4j está configurado?

Para configurar o log4j, temos que decidir qual anexador implementar. Conseqüentemente, os parâmetros do anexador serão definidos.

  • Usaremos o nível DEBUG e RollingFileAppender
  • Faremos duas configurações ou logs,
  • Primeiro: root logger, que gravará todos os logs gerados pelo sistema no nome do arquivo, ou seja Selenium.Histórico
  • Segundo: gravará as informações geradas pelos comandos manuais no código no nome do arquivo- Manual.logs
  • O layout será PatternLayout
  • #Registrador raiz

    log4j.rootLogger=DEBUG,file
    log4j.appender.file=org.apache.log4j.RollingFileAppender
    log4j.appender.file.File=D:\\Guru99\\src\\Selenium.logs
    log4j.appender.file.maxFileSize=900KB
    log4j.appender.file.maxBackupIndex=5
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c<strong>{1}</strong>:%L - %m%n
    log4j.appender.file.Append=false
    

    #Registros de aplicativos

    log4j.logger.devpinoyLogger=DEBUG, dest1
    log4j.appender.dest1=org.apache.log4j.RollingFileAppender
    log4j.appender.dest1.maxFileSize=900KB
    log4j.appender.dest1.maxBackupIndex=6
    log4j.appender.dest1.layout=org.apache.log4j.PatternLayout
    log4j.appender.dest1.layout.ConversionPattern=%d{dd/MM/yyyy HH:mm:ss} %c %m%n
    log4j.appender.dest1.File=D:\\ Guru99\\src\\Manual.logs
    log4j.appender.dest1.Append=false
    

    No exemplo acima, configuramos o log4j para efetuar login em dois arquivos diferentes nomeados como Selenium.log e Manual.log.

    • file e dest1 são os dois identificadores.
    • “Arquivo” é usado para fornecer o nome do arquivo no qual os logs serão salvos
    • “maxFileSize” é usado para configurar o tamanho máximo do arquivo de log. Quando o arquivo atingir esse tamanho, um novo arquivo será criado com o mesmo nome e o nome do arquivo antigo será adicionado como um índice a ele.
    • “maxBackupIndex” é usado para configurar o número máximo de arquivos para backup.
    • “layout” é usado para definir o formato do arquivo de log.
    • “Append” é usado para definir a função de acréscimo. Se estiver definido como falso, sempre que um novo arquivo for criado, em vez do arquivo antigo, será usado para registro

    Como o log4j é usado no script?

    No código, usamos “log” como uma variável de referência referenciando o método getLogger da classe Logger

    Logger log = Logger.getLogger("devpinoyLogger");

    Use a variável de referência “log” e o método de depuração para registrar as informações que desejamos.

    log.debug("--information--");

    O que é uma ferramenta LogExpert?

    1. A ferramenta LogExpert é uma ferramenta para Windows desenvolvido para acompanhar os logs
    2. É um visualizador de log gratuito e de código aberto.
    3. É uma ferramenta de análise de logs com vários recursos como pesquisa, filtragem, marcação e destaque dos logs
    4. Nos logs desta ferramenta, os arquivos são atualizados automaticamente quando abertos
    5. Nesta ferramenta, podemos abrir vários arquivos de log em guias diferentes
    6. Também podemos colocar comentários nos favoritos, e existe uma tecla de atalho para navegar entre os diferentes favoritos. Também podemos ver a lista completa de favoritos e navegar a partir daí
    7. Os atalhos da ferramenta são fornecidos no arquivo de ajuda para que possam ser encaminhados para a ferramenta.

    Como usar o Log4j em Selenium

    Passo 1) In Eclipse crie um novo projeto com o nome log4j_demo

    Usar Log4j em Selenium

    Passo 2) Clique com o botão direito em src -> Caminho de construção -> Configurar caminho de construção

    Usar Log4j em Selenium

    Passo 3) Clique em Bibliotecas e Adicionar Biblioteca Log4J. Você pode baixá-lo em https://logging.apache.org/log4j/1.2/download.html

    Usar Log4j em Selenium

    Passo 4) Crie um novo arquivo. Este arquivo incluirá toda a configuração do log4j

    1. Clique com o botão direito em src -> Novo -> Outro -> Geral -> Arquivo
    2. Dê o nome do arquivo como “log4j.properties”
    3. Clique em Finish

    Crie mais dois arquivos e dê-lhes nomes como Selenium.logs e Manual.logs. Esses arquivos conterão todos os logs criados pelo sistema e instruções registradas manualmente

    Usar Log4j em Selenium

    Passo 5) Em log4j.properties copie toda a configuração.

    Usar Log4j em Selenium

    Passo 6) Crie a classe principal:

    1. Clique com o botão direito no pacote padrão -> Novo -> Classe
    2. Dê o nome da turma e clique em finalizar

    Usar Log4j em Selenium

    Passo 7) Copie o seguinte código para a classe principal

    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.firefox.FirefoxDriver;
    import org.apache.log4j.Logger;
    
    public class LoggingDemo {
        /**
    		* @param args
        */
        public static void main(String[] args) {
             // TODO Auto-generated method stub
             WebDriver driver = new FirefoxDriver();
             Logger log = Logger.getLogger("devpinoyLogger");
             
             driver.get("https://healthunify.com/bmicalculator/");
    		 log.debug("opening webiste");
             driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
    		 log.debug("entring weight");
    		 driver.findElement(By.name("wg")).sendKeys("87");
             log.debug("selecting kilograms");
             driver.findElement(By.name("opt1")).sendKeys("kilograms");
             log.debug("selecting height in feet");
             driver.findElement(By.name("opt2")).sendKeys("5");
             log.debug("selecting height in inchs");
             driver.findElement(By.name("opt3")).sendKeys("10");
             log.debug("Clicking on calculate");
             driver.findElement(By.name("cc")).click();
    
    		 log.debug("Getting SIUnit value");
             String SIUnit = driver.findElement(By.name("si")).getAttribute("value");
             log.debug("Getting USUnit value");
             String USUnit = driver.findElement(By.name("us")).getAttribute("value");
             log.debug("Getting UKUnit value");
             String UKUnit = driver.findElement(By.name("uk")).getAttribute("value");
             log.debug("Getting overall description");
             String note = driver.findElement(By.name("desc")).getAttribute("value");
          
             System.out.println("SIUnit = " + SIUnit);
             System.out.println("USUnit = " + USUnit);
             System.out.println("UKUnit = " + UKUnit);
             System.out.println("note = " + note); 
    		driver.quit();
    	}
    }
    

    No código acima, visitamos https://healthunify.com/bmicalculator/e verifique a calculadora do IMC. O peso inserido é 87KG e a altura é 5 pés e 10 polegadas. O script verifica a saída nas unidades SE, EUA e Reino Unido.

    Usando Logger.getLogger(“devpinoyLogger”) criamos logs no nível do sistema

    Usando o método log.debug, armazenamos dados em Manual.log

    Passo 8) Execute o script. Abra o local do Manual e Selenium logs para verificar os dados de registro.

    Como a ferramenta LogExpert pode ser usada para analisar logs

    1. Baixe a ferramenta em https://github.com/zarunbal/LogExpert . Vá para a pasta de download do LogExpert

      A ferramenta LogExpert pode ser usada para analisar logs

    2. Abra LogExpert.exe
    3. Clique em Arquivo -> Abrir e navegue até o caminho onde Manual.log e SeleniumArquivos .log são armazenados. Selecione o arquivo
    4. Selecione a opção “Seguir cauda”

      A ferramenta LogExpert pode ser usada para analisar log

      Selecionar a opção follow tail permite seguir os logs, o que significa que o LogExpert atualiza automaticamente o arquivo de log quando o script está em fase de execução. Se usarmos qualquer outro editor como o bloco de notas, teremos que fechar e reabrir o arquivo repetidamente para atualizar os logs. Mas com ExpertTool no modo Follow Tail isso não é necessário.

      As imagens a seguir mostram o layout dos logs

      A ferramenta LogExpert pode ser usada para analisar log

      A ferramenta LogExpert pode ser usada para analisar log

    Usando a ferramenta LogExpert, pode-se depurar logs criados pelo selenium webdriver como nesta ferramenta, uma vez que pode

    • pesquise qualquer texto e expressão regular,
    • criar favoritos e comentá-los e também navegar entre os favoritos, o que não é possível em nenhuma outra ferramenta,
    • Filtre os logs e pesquise intervalos de texto e também pode aplicar outro filtro aos logs filtrados anteriores,
    • Destaque linhas diferentes com base em algumas palavras.

    Esta ferramenta também ajuda a particionar os dados em colunas diferentes.