Log4j mit Selenium Tutorial: Herunterladen, Installieren, Verwenden & Beispiel

Inhaltsverzeichnis:

Anonim

Was ist Log4j?

Log4j ist ein schnelles, flexibles und zuverlässiges Protokollierungsframework (APIS), das Anfang 1996 in Java geschrieben wurde und unter der Apache-Softwarelizenz vertrieben wird. Log4J wurde in die Sprachen C, C ++, C #, Perl, Python, Ruby und Eiffel portiert. Es ist ein Tool für kleine bis große Selenium Automation-Projekte.

Warum Log4j verwenden?

  • Es ist eine Open Source
  • Mit Log4j ist es möglich, die Flussdetails unserer Selenium-Automatisierung in einer Datei oder in Datenbanken zu speichern
  • Log4j wird sowohl für große als auch für kleine Projekte verwendet
  • In Log4j verwenden wir Protokollanweisungen anstelle von SOPL-Anweisungen im Code, um den Status eines Projekts während der Ausführung zu ermitteln

Log4j besteht aus drei Hauptkomponenten

  1. Logger : Es ist für die Protokollierung von Informationen verantwortlich. Um Logger in ein Projekt zu implementieren, müssen folgende Schritte ausgeführt werden:
  • Erstellen Sie eine Instanz für die Logger-Klasse : Die Logger-Klasse ist ein Java-basiertes Dienstprogramm, in dem alle generischen Methoden zur Verwendung von log4j bereits implementiert sind
  • Definieren Sie die Log4j-Ebene : In erster Linie gibt es fünf Arten von Protokollstufen
    1. Alle - Diese Protokollierungsstufe protokolliert alles (alle Protokolle werden aktiviert).
    2. DEBUG - Druckt die Debugging-Informationen aus und ist in der Entwicklungsphase hilfreich
    3. INFO - Drucknachricht, die den Fortschritt der Anwendung hervorhebt
    4. WARNUNG - Druckinformationen zu fehlerhaftem und unerwartetem Systemverhalten.
    5. FEHLER - Druckfehlermeldung, mit der das System möglicherweise fortgesetzt werden kann
    6. FATAL - Systemkritische Informationen drucken, die zum Absturz der Anwendung führen
    7. AUS - Keine Protokollierung
  1. Anhänge : Es wird verwendet, um LogEvents an ihr Ziel zu liefern. Es entscheidet, was mit den Protokollinformationen geschehen soll. In einfachen Worten wird es verwendet, um die Protokolle in eine Datei zu schreiben. Im Folgenden sind einige Arten von Appendern aufgeführt
    1. ConsoleAppender protokolliert die Standardausgabe
    2. Der Datei-Appender druckt Protokolle in eine Datei
    3. Rolling File Appender zu einer Datei mit maximaler Größe

    Hinweis: In den log4j-Eigenschaften können wir Appender mit einem beliebigen Namen aufrufen. Es gibt auch andere Appender, aber wir werden uns auf diese wenigen beschränken.

  2. Layouts : Es ist für die Formatierung der Protokollinformationen in verschiedenen Stilen verantwortlich.

Die Logger-Klasse bietet verschiedene Methoden zum Behandeln von Protokollierungsaktivitäten. Es bietet zwei statische Methoden zum Abrufen eines Logger-Objekts.

Öffentlicher statischer Logger getRootLogger ()Öffentlicher statischer Logger getLogger (String name)

Wie ist log4j konfiguriert?

Um log4j zu konfigurieren, müssen wir entscheiden, welcher Appender implementiert werden soll. Dementsprechend werden die Parameter des Appenders eingestellt.

  • Wir werden DEBUG Level und RollingFileAppender verwenden
  • Wir werden zwei Konfigurationen oder Protokolle durchführen,
    • Erstens: Root-Logger, der alle vom System generierten Protokolle in den Dateinamen dh Selenium.logs schreibt
    • Zweitens: Schreibt die durch manuelle Befehle generierten Informationen im Code in den Dateinamen Manual.logs
  • Das Layout ist PatternLayout

#Root Logger

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

#Anwendungsprotokolle

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

Im obigen Beispiel haben wir log4j so konfiguriert, dass zwei verschiedene Dateien mit den Namen Selenium.log und Manual.log angemeldet werden.

  • file und dest1 sind die beiden Bezeichner.
  • "Datei" wird verwendet, um den Dateinamen anzugeben, in dem die Protokolle gespeichert werden
  • "maxFileSize" wird verwendet, um die maximale Größe der Protokolldatei zu konfigurieren. Wenn die Datei diese Größe erreicht, wird eine neue Datei mit demselben Namen erstellt und der alte Dateiname als Index hinzugefügt.
  • "maxBackupIndex" wird verwendet, um die maximale Anzahl der zu sichernden Dateien zu konfigurieren.
  • Mit "layout" wird das Format der Protokolldatei festgelegt.
  • Mit "Anhängen" wird die Append-Funktion eingestellt. Wenn der Wert auf false gesetzt ist, wird jedes Mal, wenn eine neue Datei anstelle einer alten Datei erstellt wird, eine Protokollierung verwendet

Wie wird log4j im Skript verwendet?

Im Code haben wir "log" als Referenzvariable verwendet, die auf die getLogger-Methode der Logger-Klasse verweist

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

Verwenden Sie die Referenzvariable "log" und die Debug-Methode, um die gewünschten Informationen zu protokollieren.

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

Was ist ein LogExpert-Tool?

  1. Das LogExpert-Tool ist ein Tool für Windows, das zum Beenden der Protokolle entwickelt wurde
  2. Es ist kostenlos und Open Source Log Viewer.
  3. Es ist ein Protokollanalysetool mit mehreren Funktionen wie Suchen, Filtern, Lesezeichen setzen und Hervorheben der Protokolle
  4. In diesen Tool-Protokollen werden Dateien beim Öffnen automatisch aktualisiert
  5. In diesem Tool können wir mehrere Protokolldateien auf verschiedenen Registerkarten öffnen
  6. Wir können auch Kommentare zu Lesezeichen hinzufügen, und es gibt die Tastenkombination, um zwischen verschiedenen Lesezeichen zu navigieren. Wir können auch die vollständige Lesezeichenliste anzeigen und von dort aus navigieren
  7. Verknüpfungen des Tools werden in der Hilfedatei angegeben, damit auf das Tool verwiesen werden kann.

Schritte zur Verwendung von Log4j mit Selen

Schritt 1) Erstellen Sie in Eclipse ein neues Projekt mit dem Namen log4j_demo

Schritt 2) Klicken Sie mit der rechten Maustaste auf src -> Build Path -> Configure Build Path

Schritt 2) Klicken Sie auf Bibliotheken und Log4J-Bibliothek hinzufügen. Sie können es von https://logging.apache.org/log4j/1.2/download.html herunterladen

Schritt 3) Erstellen Sie eine neue Datei. Diese Datei enthält die gesamte log4j-Konfiguration

  1. Klicken Sie mit der rechten Maustaste auf src -> Neu -> Andere -> Allgemein -> Datei
  2. Geben Sie den Dateinamen als "log4j.properties" an.
  3. Klicken Sie auf Fertig stellen

Erstellen Sie zwei weitere Dateien und geben Sie ihnen Namen wie Selenium.logs und Manual.logs. Diese Dateien enthalten alle vom System erstellten Protokolle und manuell protokollierte Anweisungen

Schritt 4) Kopieren Sie in log4j.properties die gesamte Konfiguration.

Schritt 5) Hauptklasse erstellen:

  1. Klicken Sie mit der rechten Maustaste auf Standardpaket -> Neu -> Klasse
  2. Geben Sie den Klassennamen ein und klicken Sie auf Fertig stellen

Schritt 6) Kopieren Sie den folgenden Code in die Hauptklasse

import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;import org.apache.log4j.Logger;öffentliche Klasse LoggingDemo {/ *** @param args* /public static void main (String [] args) {// TODO Automatisch generierter MethodenstubWebDriver-Treiber = neuer FirefoxDriver ();Logger log = Logger.getLogger ("devpinoyLogger");driver.get ("http://healthunify.com/bmicalculator/");log.debug ("Webiste öffnen");driver.manage (). timeouts (). implicitlyWait (20, TimeUnit.SECONDS);log.debug ("Entring Weight");driver.findElement (By.name ("wg")). sendKeys ("87");log.debug ("Kilogramm auswählen");driver.findElement (By.name ("opt1")). sendKeys ("Kilogramm");log.debug ("Höhe in Fuß auswählen");driver.findElement (By.name ("opt2")). sendKeys ("5");log.debug ("Höhe in Zoll auswählen");driver.findElement (By.name ("opt3")). sendKeys ("10");log.debug ("Klicken auf Berechnen");driver.findElement (By.name ("cc")). click ();log.debug ("Abrufen des SIUnit-Werts");String SIUnit = driver.findElement (By.name ("si")). GetAttribute ("value");log.debug ("Abrufen des USUnit-Werts");String USUnit = driver.findElement (By.name ("us")). GetAttribute ("value");log.debug ("UKUnit-Wert abrufen");String UKUnit = driver.findElement (By.name ("uk")). GetAttribute ("value");log.debug ("Gesamtbeschreibung abrufen");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 ();}}}}

Im obigen Code besuchen wir http://healthunify.com/bmicalculator/ und überprüfen den BMI-Rechner. Das eingegebene Gewicht beträgt 87 kg und die Höhe beträgt 5 Fuß 10 Zoll. Das Skript überprüft die Ausgabe in SE-, US- und UK-Einheiten.

Mit Logger.getLogger ("devpinoyLogger") erstellen wir Protokolle auf Systemebene

Mit der log.debug-Methode speichern wir Daten in Manual.log

Schritt 7) Führen Sie das Skript aus. Öffnen Sie den Speicherort der manuellen und Selenium-Protokolle, um die Protokolldaten zu überprüfen.

Wie das LogExpert-Tool zum Analysieren von Protokollen verwendet werden kann

  1. Laden Sie das Tool von http://logexpert.codeplex.com/ herunter. Wechseln Sie zum LogExpert-Downloadordner
  2. Öffnen Sie LogExpert.exe
  3. Klicken Sie auf Datei -> Öffnen und navigieren Sie zu dem Pfad, in dem die Dateien Manual.log und Selenium.log gespeichert sind. Wählen Sie die Datei aus
  4. Wählen Sie die Option "Follow tail"

    Durch Auswahl der Option "Follow Tail" können Protokolle nachverfolgt werden. Dies bedeutet, dass LogExpert die Protokolldatei automatisch aktualisiert, wenn sich das Skript in der Ausführungsphase befindet. Wenn wir einen anderen Editor wie den Editor verwenden, müssen wir die Datei immer wieder schließen und erneut öffnen, um die Protokolle zu aktualisieren. Bei ExpertTool im Follow Tail-Modus ist dies jedoch nicht erforderlich.

    Die folgenden Bilder zeigen das Layout der Protokolle

Mit dem LogExpert-Tool können vom Selen-Webdriver erstellte Protokolle wie in diesem Tool einmal debuggt werden

  • Suche nach Text und regulären Ausdrücken,
  • Lesezeichen erstellen und kommentieren und zwischen Lesezeichen navigieren, was in keinem anderen Tool möglich ist.
  • Filtern Sie die Protokolle und suchen Sie nach Textbereichen. Sie können auch einen anderen Filter auf die vorherigen gefilterten Protokolle anwenden.
  • Markieren Sie eine andere Zeile basierend auf bestimmten Wörtern.

Dieses Tool hilft auch dabei, die Daten in verschiedene Spalten zu partitionieren.