Log4j z samouczkiem Selenium: Pobierz, zainstaluj, używaj & Przykład

Spisie treści:

Anonim

Co to jest Log4j?

Log4j to szybki, elastyczny i niezawodny framework do logowania (APIS) napisany w Javie, opracowany na początku 1996 roku. Jest rozprowadzany na licencji Apache Software License. Log4J został przeniesiony na języki C, C ++, C #, Perl, Python, Ruby i Eiffel. Jest to narzędzie wykorzystywane w małych i dużych projektach Selenium Automation.

Dlaczego warto korzystać z Log4j?

  • Jest to oprogramowanie typu open source
  • Dzięki Log4j możliwe jest przechowywanie szczegółów przepływu naszego Selenium Automation w pliku lub bazach danych
  • Log4j jest używany zarówno do dużych, jak i małych projektów
  • W Log4j używamy w kodzie instrukcji dziennika zamiast instrukcji SOPL, aby poznać stan projektu podczas jego wykonywania

Log4j ma trzy główne składniki

  1. Loggers : jest odpowiedzialny za rejestrowanie informacji. Aby zaimplementować rejestratory do projektu, należy wykonać następujące kroki -
  • Utwórz instancję dla klasy logger : Klasa Logger to narzędzie oparte na języku Java, które ma wszystkie metody ogólne już zaimplementowane w celu korzystania z log4j
  • Zdefiniuj poziom Log4j : przede wszystkim istnieje pięć rodzajów poziomów dziennika
    1. Wszystkie - na tym poziomie rejestrowania wszystko jest rejestrowane (włącza wszystkie dzienniki)
    2. DEBUG - drukuj informacje debugowania i jest pomocny na etapie rozwoju
    3. INFO - wyświetla komunikat informacyjny, który podkreśla postęp aplikacji
    4. WARN - drukuj informacje dotyczące wadliwego i nieoczekiwanego zachowania systemu.
    5. BŁĄD - wydrukuj komunikat o błędzie, który może pozwolić na kontynuację systemu
    6. FATAL - drukuj krytyczne informacje systemowe, które powodują awarię aplikacji
    7. WYŁ. - brak logowania
  1. Appenders : Służy do dostarczania LogEvents do miejsca docelowego. Decyduje o tym, co się stanie z informacjami dziennika. W prostych słowach służy do zapisywania logów w pliku. Poniżej znajduje się kilka typów Appenderów
    1. ConsoleAppender rejestruje standardowe dane wyjściowe
    2. Program dołączający plik drukuje dzienniki do jakiegoś pliku
    3. Rolling file appender do pliku o maksymalnym rozmiarze

    Uwaga: We właściwościach log4j możemy wywołać appender o dowolnej nazwie. Są też inni aplikatorzy, ale ograniczymy się do tych kilku.

  2. Układy : Odpowiada za formatowanie informacji logowania w różnych stylach.

Klasa Logger udostępnia różne metody obsługi działań związanych z rejestrowaniem. Zapewnia dwie statyczne metody uzyskiwania obiektu Logger.

Publiczny rejestrator statyczny getRootLogger ()Publiczny rejestrator statyczny getLogger (nazwa ciągu)

Jak jest skonfigurowany log4j?

Aby skonfigurować log4j, musimy zdecydować, który appender zaimplementować. W związku z tym zostaną ustawione parametry dopełniacza.

  • Użyjemy poziomu DEBUG i RollingFileAppender
  • Zrobimy dwie konfiguracje lub logi,
    • Po pierwsze: root logger, który zapisze wszystkie logi wygenerowane przez system w pliku o nazwie np. Selenium.logs
    • Po drugie: zapisze informacje wygenerowane przez ręczne polecenia w kodzie do nazwy pliku - Manual.logs
  • Layout będzie PatternLayout

#Root logger

log4j.rootLogger = DEBUG, pliklog4j.appender.file = org.apache.log4j.RollingFileAppenderlog4j.appender.file.File = D: \\ Guru99 \\ src \\ Selenium.logslog4j.appender.file.maxFileSize = 900 KBlog4j.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

# Dzienniki aplikacji

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

W powyższym przykładzie skonfigurowaliśmy log4j tak, aby logował się do dwóch różnych plików o nazwach Selenium.log i Manual.log.

  • plik i dest1 to dwa identyfikatory.
  • „Plik” służy do podania nazwy pliku, w którym będą zapisywane logi
  • „maxFileSize” służy do konfigurowania maksymalnego rozmiaru pliku dziennika. Gdy plik osiągnie ten rozmiar, zostanie utworzony nowy plik o tej samej nazwie, a stara nazwa pliku zostanie dodana jako indeks.
  • „maxBackupIndex” służy do konfigurowania maksymalnej liczby plików do utworzenia kopii zapasowej.
  • „układ” służy do ustawiania formatu pliku dziennika.
  • „Dołącz” służy do ustawiania funkcji dołączania. Jeśli jest ustawiona na false, to za każdym razem, gdy zostanie utworzony nowy plik, zamiast starego pliku będzie używany do logowania

Jak log4j jest używany w skrypcie?

W kodzie użyliśmy "log" jako zmiennej referencyjnej odnoszącej się do metody getLogger klasy Logger

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

Użyj zmiennej odnoszącej się do „log” i metody debugowania, aby zarejestrować żądane informacje.

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

Co to jest narzędzie LogExpert?

  1. Narzędzie LogExpert to narzędzie dla systemu Windows opracowane w celu dostosowania dzienników
  2. Jest to darmowa przeglądarka dzienników o otwartym kodzie źródłowym.
  3. Jest to narzędzie do analizy dzienników z wieloma funkcjami, takimi jak wyszukiwanie, filtrowanie, tworzenie zakładek i wyróżnianie dzienników
  4. W dziennikach tego narzędzia pliki są automatycznie aktualizowane po otwarciu
  5. W tym narzędziu możemy otworzyć wiele plików dziennika w różnych zakładkach
  6. Możemy również dodawać komentarze do zakładek i jest klawisz skrótu do poruszania się między różnymi zakładkami. Możemy również zobaczyć pełną listę zakładek i przejść z tego miejsca
  7. Skróty do narzędzia są podane w pliku pomocy, aby można je było odnieść do narzędzia.

Kroki, aby użyć Log4j z Selenium

Krok 1) W Eclipse utwórz nowy projekt o nazwie log4j_demo

Krok 2) Kliknij prawym przyciskiem myszy src -> Build Path -> Configure Build Path

Krok 2) Kliknij Biblioteki i dodaj bibliotekę Log4J. Możesz go pobrać z https://logging.apache.org/log4j/1.2/download.html

Krok 3) Utwórz nowy plik. Ten plik będzie zawierał całą konfigurację log4j

  1. Kliknij prawym przyciskiem myszy src -> Nowy -> Inne -> Ogólne -> Plik
  2. Podaj nazwę pliku jako „log4j.properties”
  3. Kliknij Zakończ

Utwórz jeszcze dwa pliki i nadaj im nazwy, takie jak Selenium.logs i Manual.logs. Pliki te będą zawierać wszystkie dzienniki utworzone przez system i ręcznie zarejestrowane instrukcje

Krok 4) W log4j.properties skopiuj całą konfigurację.

Krok 5) Utwórz główną klasę:

  1. Kliknij prawym przyciskiem myszy pakiet domyślny -> Nowy -> Klasa
  2. Podaj nazwę klasy i kliknij Zakończ

Krok 6) Skopiuj następujący kod do głównej klasy

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 Automatycznie wygenerowany kod pośredniczący metodySterownik WebDriver = nowy FirefoxDriver ();Logger log = Logger.getLogger ("devpinoyLogger");driver.get („http://healthunify.com/bmicalculator/”);log.debug ("otwieranie strony internetowej");driver.manage (). timeouts (). implicitlyWait (20, TimeUnit.SECONDS);log.debug ("wprowadzanie wagi");driver.findElement (By.name ("wg")). sendKeys ("87");log.debug ("wybieranie kilogramów");driver.findElement (By.name ("opt1")). sendKeys ("kilogramy");log.debug ("wybór wysokości w stopach");driver.findElement (By.name ("opt2")). sendKeys ("5");log.debug ("wybieranie wysokości w calach");driver.findElement (By.name ("opt3")). sendKeys ("10");log.debug ("Kliknięcie na obliczenie");driver.findElement (By.name ("cc")). click ();log.debug ("Pobieranie wartości SIUnit");String SIUnit = driver.findElement (By.name ("si")). GetAttribute ("wartość");log.debug ("Pobieranie wartości USUnit");String USUnit = driver.findElement (By.name ("nas")). GetAttribute ("wartość");log.debug ("Pobieranie wartości UKUnit");String UKUnit = driver.findElement (By.name ("uk")). GetAttribute ("wartość");log.debug ("Pobieranie ogólnego opisu");String note = driver.findElement (By.name ("desc")). GetAttribute ("wartość");System.out.println ("SIUnit =" + SIUnit);System.out.println ("USUnit =" + USUnit);System.out.println ("UKUnit =" + UKUnit);System.out.println ("uwaga =" + uwaga);driver.quit ();}}

W powyższym kodzie odwiedzamy http://healthunify.com/bmicalculator/ i weryfikujemy kalkulator BMI. Wprowadzona waga to 87 kg, a wysokość to 5 stóp i 10 cali. Skrypt sprawdza dane wyjściowe w jednostkach SE, US i UK.

Korzystając z Logger.getLogger ("devpinoyLogger") tworzymy logi systemowe

Korzystając z metody log.debug przechowujemy dane w Manual.log

Krok 7) Uruchom skrypt. Otwórz lokalizację dzienników ręcznych i selenium, aby sprawdzić dane logowania.

W jaki sposób można użyć narzędzia LogExpert do analizy dzienników

  1. Pobierz narzędzie ze strony http://logexpert.codeplex.com/. Przejdź do folderu pobierania LogExpert
  2. Otwórz LogExpert.exe
  3. Kliknij Plik -> Otwórz i Przeglądaj do ścieżki, w której przechowywane są pliki Manual.log i Selenium.log. Wybierz plik
  4. Wybierz opcję „Follow tail”

    Wybranie opcji śledzenia ogona umożliwia dostosowywanie dzienników, co oznacza, że ​​LogExpert automatycznie aktualizuje plik dziennika, gdy skrypt jest w fazie wykonywania. Jeśli używamy dowolnego innego edytora, takiego jak notatnik, musimy raz po raz zamykać i ponownie otwierać plik, aby zaktualizować dzienniki. Ale z ExpertTool w trybie Follow Tail nie jest to wymagane.

    Poniższe obrazy przedstawiają układ dzienników

Korzystając z narzędzia LogExpert, można debugować dzienniki utworzone przez selenium webdriver, tak jak w tym narzędziu

  • wyszukaj dowolny tekst i wyrażenie regularne,
  • tworzyć zakładki i komentować je, a także nawigować między zakładkami, co nie jest możliwe w żadnym innym narzędziu,
  • Filtruj dzienniki i wyszukuj zakresy tekstu, a także możesz zastosować inny filtr do poprzednich filtrowanych dzienników,
  • Podświetl inną linię na podstawie pewnych słów.

To narzędzie pomaga również podzielić dane na różne kolumny.