Log4j ind Selenium: Sådan downloader og bruger du Log4j Properties File
Hvad er Log4j i Selenium?
Log4j er en hurtig, fleksibel og pålidelig logningsramme (APIS) skrevet i Java udviklet i begyndelsen af 1996. Det er distribueret under Apache Softwarelicens. Log4J er blevet overført til C, C++, C#, Perl, Python, Ruby og Eiffel sprog. Det er et værktøj, der bruges til små til store skalaer Selenium Automationsprojekter.
Hvorfor bruge Log4j?
- Det er en open source
- Med Log4j er det muligt at gemme flowdetaljerne for vores Selenium Automatisering i en fil eller databaser
- Log4j bruges til store såvel som små projekter
- I Log4j bruger vi log-sætninger i stedet for SOPL-sætninger i koden for at kende status for et projekt, mens det udføres
Log4j komponenter
Loggere
Det er ansvarlig for at logge oplysninger. For at implementere loggere i et projekt skal følgende trin udføres
Opret en instans til logger-klassen
Logger klasse er en Java-baseret værktøj, der har fået alle de generiske metoder allerede implementeret til at bruge log4j
Definer Log4j-niveauet
Primært er der fem slags log-niveauer
- Alle – Dette logføringsniveau vil logge alt (det slår alle logfilerne til)
- DEBUG – udskriv fejlfindingsinformationen og er nyttig i udviklingsstadiet
- INFO – udskriv informationsmeddelelse, der fremhæver applikationens fremskridt
- ADVARSEL – udskriv information vedrørende fejlbehæftet og uventet systemadfærd.
- FEJL – udskriv fejlmeddelelse, der kan tillade systemet at fortsætte
- FATAL – udskriv systemkritiske oplysninger, som får applikationen til at gå ned
- FRA – Ingen logning
Vedhæng
Det bruges til at levere LogEvents til deres destination. Det bestemmer, hvad der skal ske med logoplysninger. I enkle ord bruges det til at skrive logfilerne i filen. Følgende er nogle få typer vedhæftede filer
- ConsoleAppender logger til standardoutput
- Filtilføjelse udskriver logfiler til en eller anden fil
- Rulning af filtillæg til en fil med maksimal størrelse
Bemærk: I log4j-egenskaber kan vi kalde appender med et hvilket som helst navn. Der er også andre bilag, men vi vil begrænse os til disse få.
layouts
Det er ansvarligt for at formatere logoplysninger i forskellige stilarter.
Logger-klassen giver forskellige metoder til at håndtere logningsaktiviteter. Det giver to statiske metoder til at opnå et loggerobjekt.
Public static Logger getRootLogger() Public static Logger getLogger(String name)
Hvordan er log4j konfigureret?
For at konfigurere log4j skal vi beslutte, hvilken appender der skal implementeres. I overensstemmelse hermed vil parametrene for appender blive indstillet.
- Vi vil bruge DEBUG-niveau og RollingFileAppender
- Vi vil lave to konfigurationer eller logfiler,
- Først: root logger, der vil skrive alle systemgenererede logfiler i filnavnet, dvs Selenium.logs
- For det andet: Skriver informationen genereret af manuelle kommandoer i kode i filnavnet 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
#Applikationslogfiler
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
I ovenstående eksempel har vi konfigureret log4j til at logge på to forskellige filer med navnet som Selenium.log og Manual.log.
- file og dest1 er de to identifikatorer.
- "Fil" bruges til at give et filnavn, hvori logfiler vil blive gemt
- "maxFileSize" bruges til at konfigurere den maksimale størrelse af logfilen. Når filen når denne størrelse, oprettes en ny fil med samme navn, og det gamle filnavn vil blive tilføjet som et indeks til den.
- "maxBackupIndex" bruges til at konfigurere det maksimale antal filer, der skal sikkerhedskopieres.
- "layout" bruges til at indstille formatet på logfilen.
- "Tilføj" bruges til at indstille tilføj funktionen. Hvis den er indstillet til falsk, vil der hver gang blive oprettet en ny fil i stedet for en gammel fil, der vil blive brugt til logning
Hvordan bruges log4j i script?
I kode har vi brugt "log" som en referencevariabel, der refererer til getLogger-metoden for Logger Class
Logger log = Logger.getLogger("devpinoyLogger");
Brug "log" referencevariabel og fejlretningsmetode til at logge de oplysninger, vi ønsker.
log.debug("--information--");
Hvad er et LogExpert-værktøj?
- LogExpert værktøj er et værktøj til Windows udviklet til at hale stammerne
- Det er gratis og open source log viewer.
- Det er et loganalyseværktøj med flere funktioner som søgning, filtrering, bogmærke og fremhævelse af logfilerne
- I disse værktøjslogfiler bliver filer automatisk opdateret, når de åbnes
- I dette værktøj kan vi åbne flere logfiler i forskellige faner
- Vi kan også lægge kommentarer til bogmærker, og der er genvejstasten til at navigere mellem forskellige bogmærker. Vi kan også se en komplet bogmærkeliste og navigere derfra
- Genveje til værktøjet er givet i hjælpefilen, så de kan henvises til værktøjet.
Sådan bruger du Log4j ind Selenium
Trin 1) In Eclipse opret et nyt projekt med navnet log4j_demo
Trin 2) Højreklik på src -> Build Path -> Konfigurer Build Path
Trin 3) Klik på Biblioteker og Tilføj Log4J Library . Du kan downloade den fra https://logging.apache.org/log4j/1.2/download.html
Trin 4) Opret en ny fil. Denne fil vil inkludere hele log4j-konfigurationen
- Højreklik på src -> Ny -> Andet -> Generelt -> Fil
- Angiv filnavnet som "log4j.properties"
- Klik på Afslut
Opret to filer mere og giv dem navne som f.eks Selenium.logs og Manual.logs. Disse filer vil indeholde alle de logfiler, der er oprettet af systemet og manuelt loggede udsagn
Trin 5) I log4j.properties kopieres hele konfigurationen.
Trin 6) Opret hovedklasse:
- Højreklik på standardpakke -> Ny -> Klasse
- Giv klassens navn og klik på afslut
Trin 7) Kopier følgende kode ind i hovedklassen
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(); } }
I ovenstående kode besøger vi https://healthunify.com/bmicalculator/og verificere BMI-beregneren. Den indtastede vægt er 87 kg og højden er 5 fod 10 tommer. Scriptet kontrollerer output i SE, US og UK enheder.
Ved at bruge Logger.getLogger(“devpinoyLogger”) opretter vi logfiler på systemniveau
Ved at bruge log.debug-metoden gemmer vi data i Manual.log
Trin 8) Kør scriptet. Åbn placeringen af Manual og Selenium logs for at kontrollere logningsdata.
Hvordan LogExpert-værktøjet kan bruges til at analysere logfiler
- Download værktøjet fra https://github.com/zarunbal/LogExpert . Gå til LogExpert download mappe
- Åbn LogExpert.exe
- Klik på Filer -> Åbn og gennemse til stien, hvor Manual.log og Selenium.log-filer gemmes. Vælg filen
- Vælg muligheden "Følg hale".
Valg af follow tail-indstillingen muliggør tailing af logfiler, hvilket betyder, at LogExpert automatisk opdaterer logfilen, når scriptet er i udførelsesfasen. Hvis vi bruger en anden editor som notesblok, skal vi lukke og genåbne filen igen og igen for at opdatere logfilerne. Men med ExpertTool i Follow Tail Mode er dette ikke påkrævet.
Følgende billeder viser logfilernes layout
Ved at bruge LogExpert-værktøjet kan man fejlsøge logfiler oprettet af selen-webdriveren, som i dette værktøj en gang kan
- søg efter enhver tekst og regulære udtryk,
- oprette bogmærker og kommentere dem og kan også navigere mellem bogmærker, hvilket ikke er muligt i noget andet værktøj,
- Filtrer logfilerne og søg efter tekstområder og kan også anvende et andet filter på de tidligere filtrerede logfiler,
- Fremhæv en anden linje baseret på nogle bestemte ord.
Dette værktøj hjælper også med at opdele dataene i forskellige kolonner.