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

Observaรงรฃo: 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.

    Resuma esta postagem com: