Přihlaste se4j Selenium: Jak stáhnout a používat soubor vlastností Log4j
Co je Log4j in Selenium?
Log4j je rychlý, flexibilní a spolehlivý protokolovací rámec (APIS) napsaný v Java vyvinut na začátku roku 1996. Je distribuován pod Apache Softwarová licence. Log4J byl portován na C, C++, C#, Perl, Python, Ruby a Eiffelovy jazyky. Je to nástroj používaný v malém až velkém měřítku Selenium Automatizační projekty.
Proč používat Log4j?
- Jedná se o open source
- S Log4j je možné uložit podrobnosti o toku našeho Selenium Automatizace v souboru nebo databázích
- Log4j se používá pro velké i malé projekty
- V Log4j používáme v kódu spíše příkazy protokolu než příkazy SOPL, abychom zjistili stav projektu během jeho provádění.
Komponenty Log4j
Dřevorubci
Je zodpovědný za protokolování informací. Pro implementaci loggerů do projektu je třeba provést následující kroky
Vytvořte instanci pro třídu logger
Třída Logger je a Java-založený nástroj, který má již implementovány všechny obecné metody pro použití log4j
Definujte úroveň Log4j
Primárně existuje pět druhů log úrovní
- Vše – Tato úroveň protokolování zaznamená vše (zapne všechny protokoly)
- DEBUG – tisk informací o ladění a je užitečný ve fázi vývoje
- INFO – tisk informační zprávy, která upozorňuje na průběh aplikace
- WARN – tisk informací o chybném a neočekávaném chování systému.
- ERROR – tisk chybové zprávy, která může umožnit pokračování systému
- FATAL – tisk kritických systémových informací, které způsobují pád aplikace
- OFF – Žádné protokolování
Appenders
Používá se k doručení událostí LogEvents na místo určení. Rozhoduje, co se stane s informacemi protokolu. Jednoduše řečeno, používá se k zápisu logů do souboru. Následuje několik typů Appenderů
- ConsoleAppender se přihlásí na standardní výstup
- File appender vytiskne protokoly do nějakého souboru
- Rolling file appender do souboru s maximální velikostí
Poznámka: Ve vlastnostech log4j můžeme zavolat appender s libovolným jménem. Existují i další přílohy, ale omezíme se na těchto několik.
Rozvržení
Je zodpovědný za formátování protokolovaných informací v různých stylech.
Třída Logger poskytuje různé metody pro zpracování činností protokolování. Poskytuje dvě statické metody pro získání Logger Object.
Public static Logger getRootLogger() Public static Logger getLogger(String name)
Jak je konfigurován log4j?
Pro konfiguraci log4j se musíme rozhodnout, který appender implementovat. Podle toho budou nastaveny parametry appenderu.
- Použijeme úroveň DEBUG a RollingFileAppender
- Uděláme dvě konfigurace nebo protokoly,
- Za prvé: root logger, který bude zapisovat všechny systémem generované logy pod názvem souboru, tzn Selenium.logy
- Za druhé: Zapíše informace generované ručními příkazy v kódu do názvu souboru- Manual.logs
#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<strong>{1}</strong>:%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 jsme nakonfigurovali log4j k přihlášení do dvou různých souborů pojmenovaných jako 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 budou uloženy protokoly
- „maxFileSize“ se používá ke konfiguraci maximální velikosti souboru protokolu. Když soubor dosáhne této velikosti, bude vytvořen nový soubor se stejným názvem a starý název souboru bude přidán jako index.
- „maxBackupIndex“ se používá ke konfiguraci maximálního počtu souborů, které se mají zálohovat.
- „layout“ se používá k nastavení formátu souboru protokolu.
- „Append“ se používá k nastavení funkce připojení. Pokud je nastaveno na false, bude pokaždé, když se vytvoří nový soubor, namísto použití starého souboru pro protokolování
Jak se log4j používá ve skriptu?
V kódu jsme použili „log“ jako referenční proměnnou odkazující na metodu getLogger třídy Logger
Logger log = Logger.getLogger("devpinoyLogger");
Pomocí referenční proměnné „log“ a metody ladění zaprotokolujte požadované informace.
log.debug("--information--");
Co je to nástroj LogExpert?
- Nástroj LogExpert je nástroj pro Windows vyvinutý tak, aby ocasní klády
- Je to bezplatný a otevřený prohlížeč protokolů.
- Je to nástroj pro analýzu protokolů s mnoha funkcemi, jako je vyhledávání, filtrování, přidávání záložek a zvýraznění protokolů
- V protokolech tohoto nástroje se soubory při otevření automaticky aktualizují
- V tomto nástroji můžeme otevřít více souborů protokolu na různých kartách
- Můžeme také přidat komentáře k záložkám a existuje klávesová zkratka pro navigaci mezi různými záložkami. Můžeme také vidět úplný seznam záložek a navigovat odtud
- Zkratky nástroje jsou uvedeny v souboru nápovědy, aby bylo možné na nástroj odkazovat.
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 na src -> Build Path -> Configure Build Path
Krok 3) Klikněte na Knihovny a Přidat knihovnu Log4J . Můžete si jej stáhnout z https://logging.apache.org/log4j/1.2/download.html
Krok 4) Vytvořte nový soubor. Tento soubor bude obsahovat veškerou konfiguraci log4j
- Klikněte pravým tlačítkem na src -> Nový -> Jiné -> Obecné -> Soubor
- Zadejte název souboru jako „log4j.properties“
- Klikněte na Dokončit
Vytvořte další dva soubory a pojmenujte je jako např Selenium.logy a Manual.logs. Tyto soubory budou obsahovat všechny protokoly vytvořené systémem a ručně protokolované příkazy
Krok 5) Do log4j.properties zkopírujte celou konfiguraci.
Krok 6) Vytvořte hlavní třídu:
- Klikněte pravým tlačítkem 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 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(); } }
Ve výše uvedeném kódu navštívíme https://healthunify.com/bmicalculator/a ověřit BMI kalkulačku. Zadaná hmotnost je 87 kg a výška je 5 stop 10 palců. Skript kontroluje výstup v jednotkách SE, US a UK.
Pomocí Logger.getLogger(“devpinoyLogger”) vytváříme protokoly systémové úrovně
Pomocí metody log.debug ukládáme data do Manual.log
Krok 8) Spusťte skript. Otevřete umístění Manual a Selenium logs 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/LogExpert . Přejděte do složky pro stahování LogExpert
- Otevřete LogExpert.exe
- Klikněte na Soubor -> Otevřít a Procházet na cestu, kde je Manual.log a SeleniumSoubory .log jsou uloženy. Vyberte soubor
- Vyberte možnost „Follow tail“.
Výběr možnosti sledovat záznam umožňuje sledování záznamů, což znamená, že LogExpert automaticky aktualizuje soubor záznamu, když je skript ve fázi provádění. Pokud použijeme jakýkoli jiný editor, jako je poznámkový blok, musíme soubor zavřít a znovu a znovu otevřít, abychom aktualizovali protokoly. Ale s ExpertTool v režimu Follow Tail to není nutné.
Následující obrázky ukazují rozložení protokolů
Pomocí nástroje LogExpert lze ladit protokoly vytvořené webdriverem selenu, jako to kdysi dokázal tento nástroj
- hledat jakýkoli text a regulární výraz,
- vytvořit záložku a komentovat je a také může procházet mezi záložkami, což není možné v žádném jiném nástroji,
- Filtrujte protokoly a vyhledejte textové rozsahy a také můžete použít jiný filtr na předchozí filtrované protokoly,
- Zvýrazněte jiný řádek na základě některých určitých slov.
Tento nástroj také pomáhá rozdělit data do různých sloupců.