Log4j:n käyttö Selenium?
⚡ Älykäs yhteenveto
Kirjaudu4j sisään Selenium on nopea, joustava Java lokitiedostojen hallintajärjestelmä, joka tallentaa automaatioskriptien työnkulkutiedot. Se tukee useita lokitasoja, liittäjiä ja asetteluja ja toimii hyvin yhdessä LogExpertin kanssa luotujen lokitiedostojen analysointia varten.

Mitä Log4j sisältää Selenium?
Log4j on nopea, joustava ja luotettava lokikirjausrajapinta (API), joka on kirjoitettu Java ja kehitettiin vuoden 1996 alussa. Se on jaettu Apache Ohjelmistolisenssi. Log4j on portattu C-kielelle. C++, C#, Perl, Python, Ruby- ja Eiffel-kielillä. Se on työkalu, jota käytetään sekä pienessä että suuressa mittakaavassa Selenium automaatioprojektit.
Miksi käyttää Log4j:tä?
Log4j tarjoaa useita käytännön etuja Selenium projektit:
- Se on avoimen lähdekoodin.
- Log4j:n avulla on mahdollista tallentaa virtaustiedot Selenium automaatio tiedostossa tai tietokannassa.
- Log4j toimii niin suurissa kuin pienissäkin projekteissa.
- Log4j:ssä lokilausekkeet korvaavat System.out.println-lausekkeet koodissa, jotta projektin tila voidaan nähdä suorituksen aikana.
Log4j-komponentit
Metsästäjät
Loggeri on vastuussa tietojen kirjaamisesta. Loggerien toteuttamiseksi projektissa on suoritettava seuraavat vaiheet.
Luo Logger-luokan instanssi
Logger-luokka on Java-pohjainen apuohjelma, jossa on jo toteutettu kaikki yleiset metodit Log4j:n käyttämiseen.
Määritä Log4j-taso
Lokitietoja on pääasiassa seitsemän eri tasoa:
- KAIKKI – Tämä lokitietojen taso tallentaa kaiken (se ottaa kaikki lokit käyttöön).
- DEBUG – tulostaa virheenkorjaustietoja ja on hyödyllinen kehitysvaiheessa.
- INFO – tulostaa tiedotteita, jotka korostavat sovelluksen edistymistä.
- VAROITUS – tulostaa tietoja järjestelmän virheellisestä ja odottamattomasta toiminnasta.
- VIRHE – tulostaa virheilmoituksia, jotka saattavat sallia järjestelmän jatkaa.
- FATAL – tulostaa järjestelmäkriittisiä tietoja, jotka aiheuttavat sovelluksen kaatumisen.
- POIS – Ei lokitietoja.
Liitteet
Liitteenä olevaa funktiota käytetään lokitapahtumien toimittamiseen määränpäähänsä. Se päättää, mitä lokitiedoille tapahtuu. Yksinkertaisesti sanottuna se kirjoittaa lokit tiedostoon. Seuraavassa on muutamia liitteen tyyppejä:
- ConsoleAppender kirjaa tiedot vakiotulosteeseen.
- FileAppender tulostaa lokit tiettyyn tiedostoon.
- RollingFileAppender kirjoittaa tiedostoon, jonka koko on sallittu enimmäismäärässä.
Huomautus: Tiedostossa log4j.properties voidaan kutsua liittäjää millä tahansa nimellä. On muitakin liittäjiä, mutta tässä keskitytään näihin muutamiin.
kaavoista
Asettelu vastaa lokitietojen muotoilusta eri tyyleihin.
Logger-luokka tarjoaa erilaisia metodeja lokitietojen käsittelyyn. Se tarjoaa kaksi staattista metodia Logger-objektin hankkimiseen.
public static Logger getRootLogger()
public static Logger getLogger(String name)
Miten Log4j on konfiguroitu?
Log4j:n konfiguroimiseksi päätä, mikä liittäjä otetaan käyttöön. Liittäjän parametrit asetetaan vastaavasti.
- Käytä DEBUG-tasoa ja RollingFileAppenderia.
- Kaksi konfiguraatiota tai lokia luodaan:
- Ensinnäkin: juurilokien tallentaja, joka kirjoittaa kaikki järjestelmän luomat lokit tiedostoon nimeltä Selenium.lokit.
- Toinen: sovellusten lokikirjaustoiminto, joka kirjoittaa manuaalisten komentojen koodissa luomat tiedot Manual.logs-nimiseen tiedostoon.
- Käytetty asettelu on PatternLayout.
#Juurinkerääjä
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
#Sovelluslokit
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
Yllä olevassa esimerkissä Log4j on määritetty kirjautumaan kahteen eri tiedostoon nimeltä Selenium.log ja Manual.log.
- tiedosto ja kohde1 ovat kaksi tunnistetta.
- ”Tiedosto”-kohtaa käytetään antamaan tiedostonimi, johon lokit tallennetaan.
- ”maxFileSize”-parametria käytetään lokitiedoston enimmäiskoon määrittämiseen. Kun tiedosto saavuttaa tämän koon, luodaan uusi tiedosto samalla nimellä ja vanha tiedostonimi saa indeksiliitteen.
- ”MaxBackupIndex”-parametria käytetään varmuuskopioitavien tiedostojen enimmäismäärän määrittämiseen.
- "Asettelua" käytetään lokitiedoston muodon asettamiseen.
- ”Liitä”-parametria käytetään liittämisfunktion asettamiseen. Kun se on asetettu arvoon false, uusi tiedosto luodaan joka kerta vanhan tiedoston käyttämisen sijaan lokikirjauksessa.
Miten Log4j:tä käytetään skriptin sisällä?
Koodissa ”log”-muuttujaa käytetään viittausmuuttujana, joka viittaa Logger-luokan getLogger-metodiin.
Logger log = Logger.getLogger("devpinoyLogger");
Käytä ”log”-viittausmuuttujaa ja debug-metodia tarvittavien tietojen lokitiedostoon.
log.debug("--information--");
Mikä on LogExpert-työkalu?
LogExpert on työkalu, jolla on seuraavat ominaisuudet:
- LogExpert on Windows tukkien pyrstöjen tekemiseen kehitetty työkalu.
- Se on ilmainen ja avoimen lähdekoodin lokitiedostojen katseluohjelma.
- Se on lokitietojen analysointityökalu, jossa on useita ominaisuuksia, kuten haku, suodatus, kirjanmerkkien lisääminen ja lokien korostaminen.
- Lokitiedostot päivittyvät automaattisesti, kun ne avataan tässä työkalussa.
- Useita lokitiedostoja voidaan avata eri välilehdillä.
- Kirjanmerkkeihin voi lisätä kommentteja, ja pikanäppäimellä voi siirtyä eri kirjanmerkkien välillä. Navigointia varten on käytettävissä täydellinen kirjanmerkkiluettelo.
- Työkalun pikakuvakkeet on annettu ohjetiedostossa, jotta niihin voi viitata tarvittaessa.
Kuinka käyttää Log4j:tä sisään Selenium
Vaihe 1) In Eclipse, luo uusi projekti nimellä log4j_demo.
Vaihe 2) Napsauta hiiren kakkospainikkeella lähdettä (src) -> Rakennuspolku (Build Path) -> Määritä rakennuspolku (Configure Build Path).
Vaihe 3) Napsauta Kirjastot ja lisää Log4j-kirjasto. Sen voi ladata osoitteesta https://logging.apache.org/log4j/1.2/download.html.
Vaihe 4) Luo uusi tiedosto. Tämä tiedosto sisältää kaikki Log4j-määritykset.
- Napsauta hiiren kakkospainikkeella lähdettä (src) -> Uusi (New) -> Muu (Other) -> Yleiset (Yleiset) -> Tiedosto (File).
- Anna tiedoston nimeksi ”log4j.properties”.
- Napsauta Valmis.
Luo kaksi tiedostoa lisää ja nimeä ne Selenium.logs ja Manual.logs. Nämä tiedostot sisältävät kaikki järjestelmän luomat lokit ja manuaalisesti kirjatut lauseet.
Vaihe 5) Kopioi koko kokoonpano tiedostosta log4j.properties.
Vaihe 6) Luo pääluokka:
- Napsauta hiiren kakkospainikkeella oletuspakettia -> Uusi -> Luokka.
- Anna luokalle nimi ja napsauta Valmis.
Vaihe 7) Kopioi seuraava koodi pääluokkaan.
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();
}
}
Yllä olevassa koodissa skripti vierailee https://healthunify.com/bmicalculator/ ja tarkistaa painoindeksilaskurin. Syötetty paino on 87 kg ja pituus 170 cm. Skripti tarkistaa tulosteen SI-, US- ja UK-yksiköissä.
Skripti luo järjestelmätason lokeja Logger.getLogger(“devpinoyLogger”) -metodin avulla. Tiedot tallennetaan Manual.log-tiedostoon log.debug-metodin avulla.
Vaihe 8) Suorita skripti. Avaa Manuaalin sijainti ja Selenium lokit lokitietojen tarkistamiseksi.
Miten LogExpert-työkalua voidaan käyttää lokien analysointiin
- Lataa työkalu osoitteesta https://github.com/zarunbal/LogExpertSiirry LogExpert-latauskansioon.
- Avaa LogExpert.exe-tiedosto.
- Valitse Tiedosto -> Avaa ja selaa polkuun, johon Manual.log ja Selenium.log-tiedostot on tallennettu. Valitse tiedosto.
- Valitse vaihtoehto ”Seuraa häntää”.
Valitsemalla "Seuraa häntää" voit tallentaa lokit jälkeesi, mikä tarkoittaa, että LogExpert päivittää lokitiedoston automaattisesti komentosarjan suorituksen aikana. Muilla editoreilla, kuten Muistiolla, tiedosto on suljettava ja avattava uudelleen toistuvasti lokien päivittämiseksi. Kun LogExpert on Seuraa häntää -tilassa, tätä ei vaadita.
Seuraavat kuvat näyttävät lokien asettelun.
LogExpertin avulla luodaan lokeja Selenium WebDriver voidaan debugata. Tällä työkalulla voi:
- Hae mitä tahansa tekstiä ja säännöllisiä lausekkeita.
- Luo kirjanmerkkejä ja kommentoi niitä sekä selaa kirjanmerkkien välillä, mikä ei ole mahdollista missään muussa työkalussa.
- Suodata lokit, hae tekstialueita ja käytä toista suodatinta aiemmin suodatettuihin lokeihin.
- Korosta eri rivejä tiettyjen sanojen perusteella.
Tämä työkalu auttaa myös jakamaan tiedot eri sarakkeisiin.











