Log4j dans Selenium : Comment télécharger et utiliser le fichier de propriétés Log4j

Qu’est-ce que Log4j dans le sélénium ?

Log4j est un framework de journalisation (APIS) rapide, flexible et fiable écrit en Java développé au début de 1996. Il est distribué sous le nom de Apache Licence de logiciel. Log4J a été porté vers les langages C, C++, C#, Perl, Python, Langues Ruby et Eiffel. Il s'agit d'un outil utilisé pour les projets Selenium Automation à petite et grande échelle.

Pourquoi utiliser Log4j ?

  • C'est une open source
  • Avec Log4j, il est possible de stocker le flux details de notre Selenium Automation dans un fichier ou des bases de données
  • Log4j est utilisé aussi bien pour les grands que les petits projets
  • Dans Log4j, nous utilisons des instructions de journal plutôt que des instructions SOPL dans le code pour connaître l'état d'un projet pendant son exécution.

Composants Log4j

Composants Log4j

Enregistreurs

Il est responsable de la journalisation des informations. Pour implémenter des enregistreurs dans un projet, suivezwing des étapes doivent être effectuées

Créer une instance pour la classe Logger

La classe Logger est un utilitaire basé sur Java qui possède toutes les méthodes génériques déjà implémentées pour utiliser log4j.

Définir le niveau Log4j

Il existe principalement cinq types de niveaux de journalisation

  1. Tout – Ce niveau de journalisation enregistrera tout (il active tous les journaux)
  2. DEBUG – imprime les informations de débogage et est utile en phase de développement
  3. INFO – imprimer un message d’information qui met en évidence l’avancement de la demande
  4. WARN – imprime des informations concernant un comportement défectueux et inattendu du système.
  5. ERREUR – imprimer un message d'erreur qui pourrait permettre au système de continuer
  6. FATAL - imprimer les informations critiques du système qui provoquent le crash de l'application
  7. OFF – Pas de journalisation

Appendices

Il est utilisé pour livrer les LogEvents à leur destination. Il décide de ce qui se passera avec les informations du journal. En termes simples, il est utilisé pour écrire les journaux dans un fichier. Suivrewing il existe quelques types d'appenders

  1. ConsoleAppender se connecte à la sortie standard
  2. L'appender de fichiers imprime les journaux dans un fichier
  3. Ajout d'un fichier à un fichier de taille maximale

Remarque: Dans les propriétés log4j, nous pouvons appeler appender avec n'importe quel nom. Il existe également d'autres annexes, mais nous nous limiterons à ces quelques-uns.

layouts

Il est responsable du formatage des informations de journalisation dans différents styles.

La classe Logger fournit différentes méthodes pour gérer les activités de journalisation. Il fournit deux méthodes statiques pour obtenir un objet Logger.

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

Comment log4j est configuré ?

Pour configurer log4j, nous devons décider quel appender implémenter. En conséquence, les paramètres de l'appender seront définis.

  • Nous utiliserons le niveau DEBUG et RollingFileAppender
  • Nous ferons deux configurations ou logs,
  • Premièrement : l'enregistreur racine, qui écrira tous les journaux générés par le système dans le nom de fichier, c'est-à-dire Selenium.logs.
  • Deuxièmement : écrira les informations générées par les commandes manuelles dans le code dans le nom de fichier - Manual.logs
  • La mise en page sera PatternLayout
  • #Enregistreur de racine

    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
    

    #Journaux d'application

    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
    

    Dans l'exemple ci-dessus, nous avons configuré log4j pour connecter deux fichiers différents nommés Selenium.log et Manual.log.

    • file et dest1 sont les deux identifiants.
    • « Fichier » est utilisé pour donner le nom du fichier dans lequel les journaux seront enregistrés
    • « maxFileSize » est utilisé pour configurer la taille maximale du fichier journal. Lorsque le fichier atteint cette taille, un nouveau fichier sera créé avec le même nom et l'ancien nom de fichier y sera ajouté sous forme d'index.
    • « maxBackupIndex » est utilisé pour configurer le nombre maximum de fichiers à sauvegarder.
    • « layout » est utilisé pour définir le format du fichier journal.
    • « Append » est utilisé pour définir la fonction d'ajout. S'il est défini sur false, chaque fois qu'un nouveau fichier sera créé plutôt que l'ancien fichier sera utilisé pour la journalisation

    Comment log4j est-il utilisé dans le script ?

    Dans le code, nous avons utilisé « log » comme variable de référence faisant référence à la méthode getLogger de la classe Logger.

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

    Utilisez la variable de référencement « log » et la méthode de débogage pour enregistrer les informations souhaitées.

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

    Qu'est-ce qu'un outil LogExpert ?

    1. L'outil LogExpert est un outil pour Windows développé pour suivre les journaux
    2. Il s'agit d'une visionneuse de journaux gratuite et open source.
    3. Il s'agit d'un outil d'analyse de journaux doté de plusieurs fonctionnalités telles que la recherche, le filtrage, la mise en signet et la mise en évidence des journaux.
    4. Dans les journaux de cet outil, les fichiers sont automatiquement mis à jour lorsqu'ils sont ouverts
    5. Dans cet outil, nous pouvons ouvrir plusieurs fichiers journaux dans différents onglets
    6. Nous pouvons également mettre des commentaires sur les signets, et il existe une touche de raccourci pour naviguer entre les différents signets. Nous pouvons également voir la liste complète des favoris et naviguer à partir de là
    7. Des raccourcis de l'outil sont donnés dans le fichier d'aide afin qu'ils puissent être référencés vers l'outil.

    Comment utiliser Log4j dans Selenium

    Étape 1) In Eclipse créer un nouveau projet avec le nom log4j_demo

    Utiliser Log4j dans le sélénium

    Étape 2) Faites un clic droit sur src -> Build Path -> Configure Build Path

    Utiliser Log4j dans le sélénium

    Étape 3) Cliquez sur Bibliothèques et Ajouter une bibliothèque Log4J. Vous pouvez le télécharger depuis https://logging.apache.org/log4j/1.2/download.html

    Utiliser Log4j dans le sélénium

    Étape 4) Créez un nouveau fichier. Ce fichier inclura toute la configuration de log4j

    1. Faites un clic droit sur src -> Nouveau -> Autre -> Général -> Fichier
    2. Donnez le nom du fichier comme "log4j.properties"
    3. Cliquez sur Terminer

    Créez deux autres fichiers et donnez-leur des noms tels que Selenium.logs et Manual.logs. Ces fichiers contiendront tous les journaux créés par le système et les instructions enregistrées manuellement

    Utiliser Log4j dans le sélénium

    Étape 5) Dans log4j.properties, copiez l'intégralité de la configuration.

    Utiliser Log4j dans le sélénium

    Étape 6) Créez la classe principale :

    1. Faites un clic droit sur le package par défaut -> Nouveau -> Classe
    2. Donnez le nom de la classe et cliquez sur terminer

    Utiliser Log4j dans le sélénium

    Étape 7) Copiez le suiviwing coder dans la classe principale

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

    Dans le code ci-dessus, nous visitons https://healthunify.com/bmicalculator/et vérifiez le calculateur d'IMC. Le poids saisi est de 87 kg et la hauteur est de 5 pieds 10 pouces. Le script vérifie la sortie dans les unités SE, US et UK.

    En utilisant Logger.getLogger("devpinoyLogger"), nous créons des journaux au niveau du système

    En utilisant la méthode log.debug, nous stockons les données dans Manual.log

    Étape 8) Exécutez le script. Ouvrez l'emplacement des journaux manuels et Selenium pour vérifier les données de journalisation.

    Comment l'outil LogExpert peut être utilisé pour analyser les journaux

    1. Téléchargez l'outil sur https://github.com/zarunbal/LogExpert . Accédez au dossier de téléchargement de LogExpert

      L'outil LogExpert peut être utilisé pour analyser les journaux

    2. Ouvrez LogExpert.exe
    3. Cliquez sur Fichier -> Ouvrir et parcourez jusqu'au chemin où les fichiers Manual.log et Selenium.log sont stockés. Sélectionnez le fichier
    4. Sélectionnez l’option « Suivre la queue »

      L'outil LogExpert peut être utilisé pour analyser le journal

      La sélection de l'option Follow Tail permet de suivre les journaux, ce qui signifie que LogExpert met automatiquement à jour le fichier journal lorsque le script est en phase d'exécution. Si nous utilisons un autre éditeur comme le Bloc-notes, nous devons fermer et rouvrir le fichier encore et encore pour mettre à jour les journaux. Mais avec ExpertTool en mode Follow Tail, cela n'est pas obligatoire.

      Following les images montrent la disposition des journaux

      L'outil LogExpert peut être utilisé pour analyser le journal

      L'outil LogExpert peut être utilisé pour analyser le journal

    À l'aide de l'outil LogExpert, on peut déboguer les journaux créés par le pilote Web Selenium comme dans cet outil.

    • rechercher n'importe quel texte et expression régulière,
    • créer des signets et les commenter et peut également naviguer entre les signets, ce qui n'est possible dans aucun autre outil,
    • Filtrez les journaux et recherchez des plages de texte et pouvez également appliquer un autre filtre aux journaux filtrés précédents,
    • Mettez en surbrillance différentes lignes en fonction de certains mots.

    Cet outil permet également de partitionner les données en différentes colonnes.