Zaloguj się Selenium: Jak pobrać i używać pliku właściwości Log4j
W czym jest Log4j Selenium?
Log4j to napisany szybki, elastyczny i niezawodny framework rejestrowania (APIS). Java opracowany na początku 1996 roku. Jest rozpowszechniany na licencji Apache Licencja na oprogramowanie. Log4J został przeniesiony do C, C++, C#, Perl, Python, Języki Rubinowe i Eiffla. Jest to narzędzie stosowane w małych i dużych skalach Selenium Projekty automatyki.
Dlaczego warto używać Log4j?
- Jest to oprogramowanie typu open source
- Dzięki Log4j możliwe jest przechowywanie szczegółów przepływu naszych Selenium Automatyzacja w pliku lub bazach danych
- Log4j jest używany zarówno w dużych, jak i małych projektach
- W Log4j używamy instrukcji log zamiast instrukcji SOPL w kodzie, aby poznać status projektu podczas jego wykonywania
Komponenty Log4j
Rejestratory
Jest odpowiedzialny za rejestrowanie informacji. Aby zaimplementować rejestratory w projekcie, należy wykonać następujące kroki
Utwórz instancję dla klasy rejestratora
Klasa rejestratora to a Java-bazowe narzędzie, które ma już zaimplementowane wszystkie ogólne metody umożliwiające korzystanie z log4j
Zdefiniuj poziom Log4j
Zasadniczo istnieje pięć rodzajów poziomów logowania
- Wszystko – ten poziom rejestrowania będzie rejestrował wszystko (włącza wszystkie dzienniki)
- DEBUGOWANIE – drukuje informacje o debugowaniu i jest pomocne na etapie programowania
- INFO – wydrukuj komunikat informacyjny informujący o postępie aplikacji
- WARN – drukuje informacje dotyczące nieprawidłowego i nieoczekiwanego zachowania systemu.
- BŁĄD – wydrukuj komunikat o błędzie, który może pozwolić na kontynuację działania systemu
- FATAL – wydrukuj krytyczne informacje o systemie, które powodują awarię aplikacji
- WYŁ. – Brak logowania
dołączacze
Służy do dostarczania LogEvents do ich miejsca przeznaczenia. Decyduje, co stanie się z informacjami z dziennika. Mówiąc prościej, służy do zapisywania dzienników w pliku. Poniżej przedstawiono kilka typów Appenderów
- ConsoleAppender loguje się na standardowe wyjście
- Program dołączający plik drukuje logi do jakiegoś pliku
- Rolling dołączający plik do pliku o maksymalnym rozmiarze
Uwaga: We właściwościach log4j możemy wywołać appender o dowolnej nazwie. Istnieją również inne dodatki, ale ograniczymy się do tych kilku.
układy
Odpowiada za formatowanie informacji rejestrowanych 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 rejestratora.
Public static Logger getRootLogger() Public static Logger getLogger(String name)
Jak skonfigurowany jest log4j?
Aby skonfigurować log4j, musimy zdecydować, który program dołączający zaimplementować. Odpowiednio zostaną ustawione parametry modułu dołączającego.
- Będziemy używać poziomu DEBUG i RollingFileAppender
- Zrobimy dwie konfiguracje lub logi,
- Po pierwsze: root logger, który będzie zapisywał wszystkie logi wygenerowane przez system w nazwie pliku, tj Selenium.logi
- Po drugie: zapisze informacje wygenerowane przez polecenia ręczne w kodzie do nazwy pliku - Manual.logs
#Rootowy rejestrator
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
#Dzienniki aplikacji
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
W powyższym przykładzie skonfigurowaliśmy log4j do logowania dwóch różnych plików o nazwach Selenium.log i Manual.log.
- file 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 konfiguracji maksymalnego rozmiaru pliku dziennika. Kiedy 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 skonfigurowania 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 do logowania będzie tworzony nowy plik, zamiast starego, będzie on używany
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 referencyjnej „log” i metody debugowania, aby zarejestrować żądane informacje.
log.debug("--information--");
Co to jest narzędzie LogExpert?
- Narzędzie LogExpert to narzędzie do Windows opracowane tak, aby ogonować kłody
- Jest to bezpłatna przeglądarka logów o otwartym kodzie źródłowym.
- Jest to narzędzie do analizy logów z wieloma funkcjami, takimi jak wyszukiwanie, filtrowanie, dodawanie zakładek i wyróżnianie logów
- W dziennikach tego narzędzia pliki są automatycznie aktualizowane po otwarciu
- W tym narzędziu możemy otworzyć wiele plików dziennika w różnych zakładkach
- Możemy także umieszczać komentarze na zakładkach, a pomiędzy różnymi zakładkami znajduje się klawisz skrótu. Możemy także zobaczyć pełną listę zakładek i nawigować po niej
- Skróty narzędzia podane są w pliku pomocy, dzięki czemu można je odnieść do narzędzia.
Jak korzystać z Log4j w Selenium
Krok 1) In Eclipse utwórz nowy projekt o nazwie log4j_demo
Krok 2) Kliknij prawym przyciskiem myszy src -> Ścieżka budowania -> Konfiguruj ścieżkę budowania
Krok 3) Kliknij Biblioteki i Dodaj bibliotekę Log4J. Można go pobrać z https://logging.apache.org/log4j/1.2/download.html
Krok 4) Utwórz nowy plik. Ten plik będzie zawierał całą konfigurację log4j
- Kliknij prawym przyciskiem myszy src -> Nowy -> Inne -> Ogólne -> Plik
- Podaj nazwę pliku jako „log4j.properties”
- Kliknij Zakończ
Utwórz jeszcze dwa pliki i nadaj im nazwy, np Selenium.logs i Manual.logs. Pliki te będą zawierać wszystkie logi utworzone przez system oraz wyciągi zarejestrowane ręcznie
Krok 5) W log4j.properties skopiuj całą konfigurację.
Krok 6) Utwórz klasę główną:
- Kliknij prawym przyciskiem myszy pakiet domyślny -> Nowy -> Klasa
- Podaj nazwę klasy i kliknij Zakończ
Krok 7) Skopiuj poniższy kod do klasy głównej
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();
}
}
W powyższym kodzie odwiedzamy https://healthunify.com/bmicalculator/ i zweryfikuj 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.
Za pomocą Logger.getLogger(“devpinoyLogger”) tworzymy logi na poziomie systemu
Używając metody log.debug przechowujemy dane w Manual.log
Krok 8) Uruchom skrypt. Otwórz lokalizację Podręcznika i Selenium logs, aby sprawdzić dane logowania.
Jak można wykorzystać narzędzie LogExpert do analizy logów
- Pobierz narzędzie z https://github.com/zarunbal/LogExpert . Przejdź do folderu pobierania LogExpert
- Otwórz plik LogExpert.exe
- Kliknij Plik -> Otwórz i przejdź do ścieżki, w której znajduje się Manual.log i Seleniumprzechowywane są pliki .log. Wybierz plik
- Wybierz opcję „Podążaj za ogonem”.
Wybranie opcji śledzenia ogona umożliwia śledzenie dzienników, co oznacza, że LogExpert automatycznie aktualizuje plik dziennika, gdy skrypt jest w fazie wykonywania. Jeśli korzystamy z innego edytora, np. Notatnika, musimy wielokrotnie zamykać i otwierać plik, aby zaktualizować logi. Jednak w przypadku ExpertTool w trybie Follow Tail nie jest to wymagane.
Poniższe obrazy pokazują układ kłód
Za pomocą narzędzia LogExpert można debugować logi utworzone przez selenowy sterownik webowy, ponieważ w tym narzędziu można
- wyszukać dowolny tekst i wyrażenie regularne,
- twórz zakładki i komentuj je, a także poruszaj się pomiędzy zakładkami, co nie jest możliwe w żadnym innym narzędziu,
- Filtruj logi i wyszukuj zakresy tekstowe, a także możesz zastosować inny filtr do wcześniej przefiltrowanych logów,
- Podświetl inną linię w oparciu o pewne słowa.
To narzędzie pomaga również podzielić dane na różne kolumny.











