Jak používat Log4j v Selenium?
⚡ Chytré shrnutí
Přihlaste se4j Selenium je rychlý, flexibilní Java Framework pro protokolování, který zaznamenává podrobnosti o toku automatizačních skriptů. Podporuje více úrovní protokolování, doplňků a rozvržení a dobře spolupracuje s LogExpert pro analýzu generovaných souborů protokolování.
Co je Log4j in Selenium?
Log4j je rychlý, flexibilní a spolehlivý framework (API) pro protokolování napsaný v... Java a vyvinutý na začátku roku 1996. Je distribuován pod licencí Apache Softwarová licence. Log4j byl portován do jazyka C. C++, C#, Perl, Python, Ruby a Eiffel. Jedná se o nástroj používaný pro malé i velké aplikace. Selenium automatizační projekty.
Proč používat Log4j?
Log4j nabízí několik praktických výhod pro Selenium projekty:
- Je to open source.
- S Log4j je možné ukládat podrobnosti o toku Selenium automatizace v souboru nebo databázi.
- Log4j funguje jak pro velké, tak pro malé projekty.
- V Log4j příkazy log nahrazují příkazy System.out.println v kódu, aby se zjistil stav projektu během jeho provádění.
Komponenty Log4j
Dřevorubci
Logger je zodpovědný za zaznamenávání informací. Pro implementaci loggerů v projektu je třeba provést následující kroky.
Vytvořte instanci třídy Logger
Třída Logger je Javautilita založená na -, která má již implementované všechny generické metody pro použití Log4j.
Definujte úroveň Log4j
Primárně existuje sedm druhů úrovní protokolování:
- VŠE – Tato úroveň protokolování zaznamenává vše (zapne všechny protokoly).
- DEBUG – vypíše ladicí informace a je užitečný ve fázi vývoje.
- INFO – vytiskne informační zprávy, které upozorňují na průběh aplikace.
- WARN – vypíše informace o chybném a neočekávaném chování systému.
- CHYBA – vypíše chybové zprávy, které by mohly umožnit systému pokračovat v činnosti.
- FATAL – vypíše kritické systémové informace, které způsobí pád aplikace.
- VYP – Žádné protokolování.
Appenders
Appender se používá k doručování událostí LogEvent na jejich místo určení. Rozhoduje, co se stane s informacemi z protokolu. Jednoduše řečeno, zapisuje protokoly do souboru. Následuje několik typů Appenderů:
- ConsoleAppender protokoluje do standardního výstupu.
- FileAppender vytiskne protokoly do konkrétního souboru.
- RollingFileAppender zapisuje do souboru s maximální velikostí.
Poznámka: V souboru log4j.properties lze appender volat s libovolným názvem. Existují i další appendery, ale zde se zaměříme na tyto několik.
Rozvržení
Rozvržení je zodpovědné za formátování informací protokolování v různých stylech.
Třída Logger poskytuje různé metody pro zpracování aktivit protokolování. Nabízí dvě statické metody pro získání objektu Logger.
public static Logger getRootLogger()
public static Logger getLogger(String name)
Jak je Log4j konfigurován?
Pro konfiguraci Log4j se rozhodněte, který appender implementovat. Parametry appenderu se nastaví odpovídajícím způsobem.
- Použijte úroveň DEBUG a RollingFileAppender.
- Vytvoří se dvě konfigurace nebo protokoly:
- Zaprvé: kořenový logger, který zapisuje všechny systémem generované logy do souboru s názvem Selenium.logy.
- Za druhé: aplikační logger, který zapisuje informace generované ručními příkazy v kódu do souboru s názvem Manual.logs.
- Použité rozvržení je PatternLayout.
#Root logger
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{1}:%L - %m%n
log4j.appender.file.Append=false
#Aplikační protokoly
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
Ve výše uvedeném příkladu je Log4j nakonfigurován pro protokolování do dvou různých souborů s názvem Selenium.log a Manual.log.
- file a dest1 jsou dva identifikátory.
- „Soubor“ se používá k zadání názvu souboru, do kterého se ukládají protokoly.
- „maxFileSize“ se používá ke konfiguraci maximální velikosti souboru protokolu. Když soubor dosáhne této velikosti, vytvoří se nový soubor se stejným názvem a starý název souboru obdrží příponu indexu.
- „maxBackupIndex“ se používá ke konfiguraci maximálního počtu zálohovaných souborů.
- „layout“ se používá k nastavení formátu souboru protokolu.
- Funkce „Append“ se používá k nastavení. Pokud je nastavena na hodnotu false, pokaždé se vytvoří nový soubor, místo aby se pro protokolování znovu použil starý soubor.
Jak se Log4j používá ve skriptu?
V kódu je „log“ použit jako referenční proměnná odkazující na metodu getLogger třídy Logger.
Logger log = Logger.getLogger("devpinoyLogger");
Pro zaznamenání potřebných informací použijte referenční proměnnou „log“ a metodu debug.
log.debug("--information--");
Co je to nástroj LogExpert?
LogExpert je nástroj s následujícími vlastnostmi:
- LogExpert je Windows nástroj vyvinutý pro ocasní řezání klád.
- Je to bezplatný prohlížeč protokolů s otevřeným zdrojovým kódem.
- Jedná se o nástroj pro analýzu protokolů s několika funkcemi, jako je vyhledávání, filtrování, ukládání do záložek a zvýrazňování protokolů.
- Soubory protokolu se automaticky aktualizují při otevření v tomto nástroji.
- Více souborů protokolu lze otevřít na různých kartách.
- K záložkám lze přidávat komentáře a mezi různými záložkami se pohybuje pomocí klávesové zkratky. Pro navigaci je k dispozici kompletní seznam záložek.
- Zkratky nástroje jsou uvedeny v souboru nápovědy, aby se na ně dalo odkázat v případě potřeby.
Jak používat Log4j Selenium
Krok 1) In Eclipse, vytvořte nový projekt s názvem log4j_demo.
Krok 2) Klikněte pravým tlačítkem myši na src -> Cesta sestavení -> Konfigurovat cestu sestavení.
Krok 3) Klikněte na Knihovny a přidejte knihovnu Log4j. Lze ji stáhnout z https://logging.apache.org/log4j/1.2/download.html.
Krok 4) Vytvořte nový soubor. Tento soubor obsahuje veškerou konfiguraci Log4j.
- Klikněte pravým tlačítkem myši na src -> Nový -> Ostatní -> Obecné -> Soubor.
- Zadejte název souboru jako „log4j.properties“.
- Klikněte na Dokončit.
Vytvořte další dva soubory a pojmenujte je Selenium.logs a Manual.logs. Tyto soubory obsahují všechny protokoly vytvořené systémem a ručně zaznamenané příkazy.
Krok 5) V souboru log4j.properties zkopírujte celou konfiguraci.
Krok 6) Vytvořte hlavní třídu:
- Klikněte pravým tlačítkem myši na výchozí balíček -> Nový -> Třída.
- Zadejte název třídy a klikněte na Dokončit.
Krok 7) Zkopírujte následující kód do hlavní třídy.
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 website");
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
log.debug("entering 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 inches");
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();
}
}
Ve výše uvedeném kódu skript navštíví https://healthunify.com/bmicalculator/ a ověřuje kalkulačku BMI. Zadaná hmotnost je 87 kg a výška je 170 cm. Skript kontroluje výstup v jednotkách SI, US a UK.
Pomocí metody Logger.getLogger(„devpinoyLogger“) skript vytváří protokoly na úrovni systému. Pomocí metody log.debug se data ukládají do souboru Manual.log.
Krok 8) Spusťte skript. Otevřete umístění Manual a Selenium protokoly pro kontrolu dat protokolování.
Jak lze nástroj LogExpert použít k analýze protokolů
- Stáhněte si nástroj z https://github.com/zarunbal/LogExpertPřejděte do složky se staženými soubory LogExpert.
- Otevřete soubor LogExpert.exe.
- Klikněte na Soubor -> Otevřít a vyhledejte cestu, kde se nacházejí soubory Manual.log a SeleniumJsou uloženy soubory .log. Vyberte soubor.
- Vyberte možnost „Sledovat ocas“.
Výběrem možnosti Sledovat konec protokolů povolíte sledování protokolů, což znamená, že LogExpert automaticky aktualizuje soubor protokolu během provádění skriptu. V jakémkoli jiném editoru, jako je Poznámkový blok, je nutné soubor opakovaně zavírat a znovu otevírat, aby se protokoly aktualizovaly. S LogExpertem v režimu Sledovat konec to není nutné.
Následující obrázky ukazují rozložení protokolů.
Pomocí LogExpertu se protokoly vytvořené Selenium WebDriver lze ladit. V tomto nástroji je možné:
- Vyhledejte libovolný text a regulární výraz.
- Vytvářejte záložky a komentujte je a také se mezi záložkami pohybujte, což v žádném jiném nástroji není možné.
- Filtrujte protokoly, vyhledejte textové rozsahy a použijte další filtr na dříve filtrované protokoly.
- Zvýrazněte různé řádky na základě určitých slov.
Tento nástroj také pomáhá rozdělit data do různých sloupců.












