Tutoriel Log4j avec Selenium: Téléchargez, installez, utilisez & Exemple

Table des matières:

Anonim

Qu'est-ce que Log4j?

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 la licence logicielle Apache. Log4J a été porté vers les langages C, C ++, C #, Perl, Python, Ruby et Eiffel. C'est un outil utilisé pour les projets d'automatisation Selenium de petite à grande échelle.

Pourquoi utiliser Log4j?

  • C'est une open source
  • Avec Log4j, il est possible de stocker les détails de flux de notre Selenium Automation dans un fichier ou des bases de données
  • Log4j est utilisé pour les grands et 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

Log4j a trois composants principaux

  1. Enregistreurs : il est responsable de la journalisation des informations. Pour implémenter les enregistreurs dans un projet, les étapes suivantes doivent être effectuées -
  • Créez une instance pour la classe de journalisation : la classe de journalisation est un utilitaire basé sur Java qui a déjà implémenté toutes les méthodes génériques 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 dans la phase de développement
    3. INFO - imprimer un message d'information qui met en évidence la progression de l'application
    4. AVERTISSEMENT - affiche les informations concernant le comportement défectueux et inattendu du système.
    5. ERREUR - affiche un message d'erreur qui pourrait permettre au système de continuer
    6. FATAL - affiche les informations critiques du système qui provoquent le plantage de l'application
    7. OFF - Pas de journalisation
  1. Appenders : il est utilisé pour livrer 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. Voici quelques types d'appendeurs
    1. ConsoleAppender se connecte à la sortie standard
    2. File appender imprime les journaux dans un fichier
    3. Rolling file appender vers un fichier avec une taille maximale

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

  2. 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.

Enregistreur statique public getRootLogger ()Enregistreur statique public getLogger (nom de chaîne)

Comment log4j est-il 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

#Root Logger

log4j.rootLogger = DEBUG, fichierlog4j.appender.file = org.apache.log4j.RollingFileAppenderlog4j.appender.file.File = D: \\ Guru99 \\ src \\ Selenium.logslog4j.appender.file.maxFileSize = 900 Kolog4j.appender.file.maxBackupIndex = 5log4j.appender.file.layout = org.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern =% d {ABSOLU}% 5p% c  {1} :% L -% m% nlog4j.appender.file.Append = false

# Journaux d'application

log4j.logger.devpinoyLogger = DEBUG, dest1log4j.appender.dest1 = org.apache.log4j.RollingFileAppenderlog4j.appender.dest1.maxFileSize = 900 Kolog4j.appender.dest1.maxBackupIndex = 6log4j.appender.dest1.layout = org.apache.log4j.PatternLayoutlog4j.appender.dest1.layout.ConversionPattern =% d {jj / MM / aaaa HH: mm: ss}% c% m% nlog4j.appender.dest1.File = D: \\ Guru99 \\ src \\ Manual.logslog4j.appender.dest1.Append = false

Dans l'exemple ci-dessus, nous avons configuré log4j pour se 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 sera ajouté en tant qu'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 qu'un 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 référençant la méthode getLogger de la classe Logger

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

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

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

Qu'est-ce qu'un outil LogExpert?

  1. L'outil LogExpert est un outil pour Windows développé pour suivre les journaux
  2. C'est une visionneuse de journaux gratuite et open source.
  3. C'est un outil d'analyse des journaux avec de multiples fonctionnalités telles que la recherche, le filtrage, la création de signets 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 y a la touche de raccourci pour naviguer entre les différents signets. Nous pouvons également voir la liste complète des signets et naviguer à partir de là
  7. Les raccourcis de l'outil sont donnés dans le fichier d'aide afin qu'ils puissent être référencés vers l'outil.

Étapes à suivre pour utiliser Log4j avec Selenium

Étape 1) Dans Eclipse, créez un nouveau projet avec le nom log4j_demo

Étape 2) Faites un clic droit sur src -> Chemin de construction -> Configurer le chemin de construction

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

Étape 3) Créez un nouveau fichier. Ce fichier comprendra 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 déclarations enregistrées manuellement

Étape 4) Dans log4j.properties, copiez la configuration entière.

Étape 5) 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

Étape 6) Copiez le code suivant 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 Stub de méthode généré automatiquementPilote WebDriver = nouveau FirefoxDriver ();Logger log = Logger.getLogger ("devpinoyLogger");driver.get ("http://healthunify.com/bmicalculator/");log.debug ("ouverture du site Web");driver.manage (). timeouts (). implicitlyWait (20, TimeUnit.SECONDS);log.debug ("poids d'entrée");driver.findElement (Par.nom ("wg")). sendKeys ("87");log.debug ("sélectionner des kilogrammes");driver.findElement (Par.nom ("opt1")). sendKeys ("kilogrammes");log.debug ("sélection de la hauteur en pieds");driver.findElement (Par.nom ("opt2")). sendKeys ("5");log.debug ("sélection de la hauteur en pouces");driver.findElement (Par.nom ("opt3")). sendKeys ("10");log.debug ("Cliquer sur calculer");driver.findElement (Par.nom ("cc")). click ();log.debug ("Obtenir la valeur SIUnit");String SIUnit = driver.findElement (Par.nom ("si")). GetAttribute ("valeur");log.debug ("Obtenir la valeur USUnit");Chaîne USUnit = driver.findElement (Par.nom ("nous")). GetAttribute ("valeur");log.debug ("Obtenir la valeur UKUnit");String UKUnit = driver.findElement (By.name ("uk")). GetAttribute ("value");log.debug ("Obtenir une description générale");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 http://healthunify.com/bmicalculator/ et vérifions le calculateur IMC. Le poids entré est de 87 kg et la hauteur est de 5 pieds 10 pouces. Le script vérifie la sortie en 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 7) 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 http://logexpert.codeplex.com/. Accédez au dossier de téléchargement LogExpert
  2. Ouvrez LogExpert.exe
  3. Cliquez sur Fichier -> Ouvrir et accédez 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"

    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 nécessaire.

    Les images suivantes montrent la disposition des journaux

En utilisant l'outil LogExpert, on peut déboguer les journaux créés par le webdriver sélénium comme dans cet outil une fois peut

  • 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,
  • Filtrer les journaux et rechercher des plages de texte et peut également appliquer un autre filtre aux journaux filtrés précédents,
  • Mettez en surbrillance une ligne différente en fonction de certains mots.

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