debugging selenium scripts with logs selenium tutorial 26
Zdaj gremo proti koncu našega najbolj celovitega Brezplačne vaje za orodje za testiranje selena . Vadnice, ki jih objavljamo zdaj, so del predhodnega selenijskega usposabljanja.
V prejšnji vadnici smo se osredotočili na Orodje za neprekinjeno integracijo, imenovano Hudson . Je brezplačno orodje in ima veliko več zmogljivosti za izdelavo projekta testiranja, izvajanje preizkusnih razredov na daljavo in pošiljanje obvestila zainteresiranim stranem o stanju vloge glede opravljenih in neuspešnih testnih primerov.
V trenutni vadnici bi se usmerili k nekaterim naprednim konceptom, ki bi neposredno ali posredno pomagali optimizacija okvira za avtomatizacijo in uporabnikom prinaša večjo prepoznavnost.
Tako bi v trenutni vadnici razpravljali o funkcija beleženja, njen potencial, zmožnosti odpravljanja napak in veliko več.
kaj so metapodatki v podatkovnem skladišču
Včasih se zapisovanje dnevnika šteje za režijo obstoječega mehanizma za ustvarjanje skriptov, vendar strokovnjaki menijo, da je to ena izmed najboljših praks, če se uporablja v natančnem razmerju zaradi naslednjih prednosti:
Prednosti beleženja skriptov selena:
- Omogoča popolno razumevanje izvajanja testnih paketov
- Sporočila dnevnika lahko shranite v zunanje datoteke za nadzor po izvedbi
- Dnevniki so izjemen pomočnik pri odpravljanju napak pri izvajanju programov in napak
- Dnevniki lahko tudi pregledajo, da zainteresirane strani ugotovijo zdravje aplikacije
Kaj se boste naučili:
Log4j - API za beleženje, ki temelji na Javi
Ko nadaljujemo s tehničnimi podrobnostmi o beleženju, se pogovorimo o izvoru API-ja, ki bi ga uporabljali skozi log4j vadnica za ustvarjanje dnevnikov. Log4j je bil rezultat skupnih prizadevanj ljudi na Secure Electronic Marketplace for Europe, da bi razvili pripomoček, ki bi nam pomagal pri ustvarjanju dnevnikov, zato je log4j prišel v središče pozornosti leta 1996. Log4j je odprtokodno orodje in je licencirano pod IBM-ovo javno licenco.
Tri glavne komponente tvorijo izvajanje log4j. Te komponente predstavljajo podrobnosti o ravni dnevnika, oblikah sporočil dnevnika, v katerih bi bile upodobljene, in njihovih mehanizmih shranjevanja.
Sestavine Log4j
- Drvarji
- Dodatki
- Postavitve
# 1) Drvarji
Naslednji koraki morajo biti izvedeni, da se v projekt vključijo dnevniki.
Korak 1 : Ustvarjanje primerka razreda Logger
2. korak : Določanje ravni dnevnika
Razred drvarja - Gre za pripomoček, ki temelji na javi in ima že uveljavljene generične metode, tako da lahko uporabljamo log4j.
Ravni dnevnika - Ravni hlodov so v javnosti znani kot metode tiskanja. Uporabljajo se za tiskanje dnevniških sporočil. Obstaja predvsem pet vrst nivojev dnevnika.
- napaka ()
- opozori ()
- info ()
- odpravljanje napak ()
- dnevnik ()
Da bi lahko ustvarili dnevnike, moramo le poklicati kateri koli način tiskanja prek primerka zapisovalnika. V fazi izvajanja bomo to obravnavali širše.
# 2) Dodatki
Zdaj, ko vemo, kako ustvariti te dnevnike, je naslednja stvar, ki bi se morala pojaviti v naših mislih, kje lahko dobim za ogled dnevnikov? Odgovor na to vprašanje je v definiciji pojma „dodatki“.
Priloge se dosledno uporabljajo za določanje vira / medija podatkov, kjer naj se dnevniki ustvarijo. Področje uporabe virov podatkov sega od različnih zunanjih medijev, kot so konzola, GUI, besedilne datoteke itd.
# 3) Postavitve
Uporabnik včasih želi, da se določene informacije dodajo ali dodajo k vsakemu stavku dnevnika. Na primer, želim natisniti časovni žig skupaj s svojim zapisnikom dnevnika. Tako lahko takšne zahteve izpolni »Postavitev«.
Postavitve so pripomoček, ki uporabniku omogoča, da se odloči za želeno obliko zapisa, v katerem bi se dnevniki upodabljali. Dodatki in postavitev imajo med seboj tesno sklopko. Tako moramo vsakega od pripisov preslikati z določeno postavitvijo.
Upoštevajte, da ima uporabnik vzvod za določanje več dodatkov, vsak zemljevid z različno postavitvijo.
Zdaj, ko se zavedamo osnov log4j in njegovih komponent, se bomo osredotočili na pojav izvajanja.
Korak za korakom razumemo celoten postopek izvedbe.
Namestitev / namestitev
Za namestitev in namestitev bi razmislili o projektu 'Learning_Selenium', ki smo ga že ustvarili v prejšnjih sejah te serije.
Korak 1 : Prvi in najpomembnejši korak je prenos najnovejšega jar za API log4j. Kozarec lahko enostavno najdete na njegovi uradni spletni strani za distribucijo - “ http://logging.apache.org/log4j/1.2/download.html '.
2. korak : Naslednji korak je konfiguriranje poti gradnje in log4j.jar kot zunanja knjižnica.
Izvajanje
Beleženje z uporabo log4j je mogoče izvajati in konfigurirati na dva načina:
- Programsko prek skripta
- Ročno prek konfiguracijskih datotek
Obe zgoraj navedeni konfiguracijski metodi imata tako prednosti kot tudi pomanjkljivosti. V tej vadnici bi razmislili o ročni konfiguraciji log4j prek konfiguracijskih datotek na podlagi njegove enostavnosti in enostavnosti. Konfiguracijska datoteka je še ena datoteka XML za konfiguriranje artefaktov, povezanih z log4j.
Ustvarjanje datoteke log4j.xml
Korak 1 . Ustvarite datoteko log4j.xml. Kopirajte in prilepite spodnjo kodo v konfiguracijsko datoteko.
Sprehod po konfiguracijski datoteki
consoleAppender
Dodatek konzole se uporablja za tiskanje stavkov dnevnika na konzoli.
datotečni dodatek
Dodatek datoteke se uporablja za tiskanje stavkov dnevnika v zunanji datoteki. Uporabnik ima vzvod za nastavitev vrednosti vklopa in izklopa za dodano oznako, ki bi sistemu sporočala, naj doda in zapisuje stavke v predhodno ustvarjenega ali naj prepiše predhodno ustvarjene dnevnike in v celoti ustvari nove dnevnike.
'append' value= 'false' />
Vrednost parametra datoteke je nastavljena na določeno mesto, da obvesti sistem, da na omenjeni lokaciji ustvari predvideno datoteko dnevnika. V parametru vrednosti določimo tudi ime dnevniške datoteke.
Postavitev
Kot je razloženo v zgodnjih razdelkih te vadnice, se postavitve uporabljajo za določanje mehanizma upodabljanja za stavke dnevnika. Log4j ponuja različne vzorce postavitve. Uporabnik ima vzvod za določitev želenega vzorca v vrednosti parametra ConversionPattern.
Rezultat zgornje postavitve bi moral biti približno tak:
01-07-2014 12:56:32 INFO (GmailLogin): Vzorčno sporočilo dnevnika
V zgornjem izhodu:
- Prvo polje - datum izvršitve
- Drugo polje - Natančen čas v hh: mm: ss, v katerem je bil izveden preskusni korak
- Tretje polje - eno od ravni dnevnika
- Četrto polje - ime testnega razreda
- Peto polje - Sporočilo dnevnika
2. korak . Takoj ko končamo z ustvarjanjem datoteke log4j.XML, je naslednji korak, da datoteko log4j.XML vstavimo v korensko mapo / osnovni imenik projekta.
Izvajanje programa
3. korak : Naslednji korak je uporaba katerega koli konfiguratorja za konfiguriranje in razčlenitev datoteke log4j.xml.
Sintaksa:
najboljša spletna mesta za ogled brezplačnega animeja
package com.logExample; import org.apache.log4j.xml.DOMConfigurator; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.RunWith; import org.junit.runner.notification.Failure; import org.junit.runners.Suite; @RunWith(Suite.class) @Suite.SuiteClasses({ Demo.class }) public class TestSuite { /** * Setup method to set system property for log file name */ @BeforeClass public static void Setup() { // loading log4j.xml file DOMConfigurator.configure('log4j.xml'); } /** * @param args */ public static void main(String() args) { Result result = JUnitCore.runClasses(TestSuite.class); for (Failure failure : result.getFailures()) { System.out.println('
TEST NAME: ' + failure.getTestHeader()); System.out.println('
ERROR: ' + failure.getMessage() + '
'); System.out.println(failure.getTrace()); System.exit(1); } } }
Opomba : Dnevnike je mogoče izvajati na ravni razreda tudi namesto na ravni zbirke preizkusov. Vse, kar morate storiti, je, da naredite potrebne spremembe v testnem razredu in ne v testnem paketu.
4. korak : Naslednji korak je ustvariti testni razred »GmailLogin.java« v okviru projekta. V razredu implementirajte funkcijo za prijavo v Gmail.
5. korak : Naslednji korak je uvoz razreda dnevnika, da boste lahko implementirali stavke dnevnika.
Sintaksa:
import org.apache.log4j.Logger;
6. korak : Naslednji korak v postopku je instanciranje predmeta razreda Logger.
Sintaksa:
// Inicializacija predmeta za dnevnik
statično Dnevniki log Logger.getLogger (Demo. razred .getName ());
7. korak : Zgoraj ustvarjena spremenljivka dnevnika tipa Logger bi bila uporabljena v celotnem preskusnem razredu za generiranje stavkov dnevnika. Glejte naslednjo kodo za isto.
Sintaksa:
@Test public void testGmailLogin() throws Exception{ // enter a valid email address driver.findElement(By.id('Email')).sendKeys('TestSelenium1607@gmail.com'); log.info('Entered a valid Email Address.'); // enter a invalid password driver.findElement(By.id('Passwd')).sendKeys('InvalidPassword'); log.info('Entered a invalid Password.'); // click on sign in button driver.findElement(By.id('signIn')).click(); log.info('Clicked on the Sign In Button.'); try{ //Verify the home page assertTrue('Verification Failed: User successfully landed on the Home Page.', driver.getTitle().equals('Gmail')); log.info('Verified that the user landed on the Home Page.'); } catch (Exception e) { log.error('Unsuccessfull Login.'); } }
Rezultat v dnevniški datoteki
01-07-2014 12:56:11 INFO (GmailLogin): Datoteko naložil v sistem: FileExample.txt
01-07-2014 12:56:11 INFO (GmailLogin): Predložitev sprememb
01-07-2014 12:56:15 NAPAKA (GmailLogin): Neuspešna prijava.
POSODOBITEV marca 2020
Dnevniki
Dnevnik je sporočilo, ki ga beležimo ali ustvarjamo za vsako transakcijo, ki jo opravimo. Dnevnike lahko analiziramo, da preverimo, kaj je šlo pravilno ali narobe. Recimo, če se kateri koli sistem nenadoma zapre, lahko z analizo dnevnikov pridemo do temeljnega vzroka okvare.
Tako se dnevniki generirajo v vsakem razvojnem ciklu. Na enak način lahko tudi v naši kodi Selenium ustvarimo dnevnike za preskušanje pred in po vsakem preskusnem stanju ali izjavi o preizkusu, da preverimo, ali vsi delujejo po pričakovanjih.
log4j Framework
Za ustvarjanje teh dnevniških datotek v kodi Selenium uporabljamo ogrodje log4j, ki ga ponuja Apache. S tem ogrodjem lahko ustvarimo svoje dnevnike po meri.
Kliknite tukaj za prenos jar4 log4j iz repozitorija Maven.
Dnevnike lahko ustvarjamo na dva načina:
- Uporaba datoteke log4j.properties
- Uporaba datoteke log4j.xml
Te datoteke bodo vsebovale konfiguracijo o tem, kakšne dnevnike želite ustvariti. Uporabite lahko katerega koli od njih. Če želite uporabiti oboje, bo log4j.xml imel večjo prednost. Najboljši način za ustvarjanje dnevnikov je uporaba datoteke z lastnostmi, zato bomo tukaj raziskali več o ustvarjanju samo z datoteko z lastnostmi.
Izvedba log4j
Prenesite datoteko jar4 log4j z zgornje poti in jo dodajte v pot gradnje projekta. Ustvarite datoteko log4j.properties in dodajte datoteko lastnosti vzporedno z izvorno mapo, ko uporabljate samostojno aplikacijo java.
Datoteka Log4j.properties je konfiguracijska datoteka, ki hrani vrednosti v paru ključ-vrednost.
Vsebuje 3 glavne komponente:
- Drvarji: Zajema podatke o beleženju.
- Dodatki : Objavite podatke dnevnika na drugem prednostnem cilju, kot so konzole, datoteke, vtičnice, dnevniki dogodkov NT itd.
- Postavitve : Oblikujte podatke o dnevniku v različne sloge, kot so HTML, XML Layout itd.
Sintaksa datoteke log4j.properties
# 1) Določite korenski zapisovalnik z nivojem beleženja INFO in dodatkom X (dodatek so lahko katere koli konzole, datoteke, vtičnice, dnevniki dogodkov NT).
log4j.rootLogger = INFO, X
#two) Nastavite program za dodajanje datotek X kot datotečni program.
log4j.appender.X = org.apache.log4j.FileAppender
# 3) Določite postavitev dodatka X.
log4j.appender.X.layout = org.apache.log4j.PatternLayout log4j.appender.X.layout.conversionPattern = %m%n
log4j.properties Primer
Ustvarite datoteko log4j.properties s sklicevanjem na zgornjo sintakso:
# inicializirajte root logger z nivojem INFO in ga natisnite v konzoli s pomočjo stdout in fout.
log4j.rootLogger=INFO,stdout,fout
# dodajte ConsoleAppender v zapisnik stdout za zapisovanje v konzolo.
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
# uporabite definiran preprost vzorec postavitve oblike sporočila je% m% n, ki natisne dnevniška sporočila v novo vrstico.
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%m%n
# v datoteko zapisovalnika dodajte FileAppender.
log4j.appender.fout=org.apache.log4j.FileAppender
# Datoteka priloge je definirana kot org.apache.log4j.FileAppender. Zapiše v datoteko z imenom SoftwareTestingHelp.
log4j.appender.fout.File=SoftwareTestingHelp.log
# uporabite podrobnejši vzorec sporočila.
log4j.appender.fout.layout=org.apache.log4j.PatternLayout log4j.appender.fout.layout.ConversionPattern=%p %d{ISO8601} %r %c (%t) %m%n
Različne stopnje sečnje
- DEBUG
- INFO
- OPOZORILO
- NAPAKA
- FATAL
Vsaka raven ima svojo prednost. Recimo, da če uporabimo raven “DEBUG”, bo zabeležila vsa sporočila na ravni, na primer INFO >> WARN >> ERROR >> FATAL.
Recimo, da če uporabimo raven »NAPAKA«, bo prezrla DEBUG >> INFO >> WARN in zabeležila samo ERROR >> FATAL.
Na vseh teh ravneh moramo definirati v naši datoteki lastnosti. Dnevniki bodo ustvarjeni, odvisno od naše konfiguracije.
Implementacija dnevnikov za isti zgoraj navedeni primer:
Korak 1: Ustvarite objekt za razred Logger.
final static Logger logger = Logger.getLogger(Frame.class);
Zgornja metoda pomaga dobiti objekt zapisovalnika. Ta metoda bo kot argument vzela razred ali ime razreda. S tem objektom dnevnika lahko ustvarite dnevnike po meri.
V tem primeru smo se sklicevali na ogrodje apache log4j, če uporabljate ogrodje TestNG, potem morate uporabiti razred dnevnika TestNG.
Tu smo poskušali ustvariti dnevnik, ne da bi implementirali datoteko lastnosti.
V konzoli ali v kateri koli ustvarjeni dnevniški datoteki se ne ustvari noben dnevnik. V konzoli je prišlo do napake, ker datoteka dnevnika ni pravilno izvedena. Za njegovo izvajanje moramo uporabiti razred PropertyConfigurator. Sledite 2. koraku.
kaj je dober glasovni menjalnik
2. korak: Inicializirajte datoteko konfiguratorja lastnosti in posredujte argument kot ime datoteke lastnosti log4j.
PropertyConfigurator.configure (“log4j.properties”);
Popolna koda za ustvarjanje dnevniških datotek:
package com.wordpress.pages; import java.util.List; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; import org.junit.Assert; import org.junit.Test; import org.openqa.selenium.Alert; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; public class Frame { static WebDriver driver; final static Logger logger = Logger.getLogger(Frame.class); @Test public void Test(){ PropertyConfigurator.configure('log4j.properties.txt'); System.setProperty('webdriver.chrome.driver', 'D:\New folder\exe\chromedriver.exe'); logger.debug('Debug this path for chrome path issue'); driver = new ChromeDriver(); logger.info('Chrome driver is up and running'); driver.get('http://www.dwuser.com/education/content/the-magical-iframe-tag-an-introduction/'); logger.warn('Url is not loaded properly'); //identifying the frame using locator or say using webelement driver.switchTo().frame(driver.findElement(By.xpath('//div(@id='eduFooterWrap')//iframe(1)'))); logger.error('Frame is not available'); driver.findElement(By.xpath('//input(@name='name')')).sendKeys('SoftwareTestingHelp.com'); logger.fatal('Message not entered'); } }
Datoteka lastnosti:
Zaključek
V trenutni vadnici smo se osredotočili na tehnične posledice pri izvajanju sečnje v okvir. Za izvajanje sečnje smo uporabili pripomoček log4j. Razpravljali smo o osnovnih komponentah, ki tvorijo log4j z vidika uporabnosti. Z dodatki in postavitvami lahko uporabnik izbere želeno obliko / vzorec beleženja in vir / lokacijo podatkov.
V tej vadnici raziskujemo, zakaj se dnevniki uporabljajo v našem testnem in zajetem okolju log4j, ter izvajanje okvira log4j v programu Selenium za ustvarjanje dnevnikov.
Naslednja vadnica št. 27 : V prihajajoči vadnici bi razpravljali o nekaterih naprednejših temah, povezanih z učinkovito skriptiranje in odpravljanje težav kjer mora uporabnik obdelovati dogodke miške in tipkovnice. Poleg tega bi razpravljali tudi o tem, kako shraniti več kot en spletni element na seznam.
Priporočeno branje
- Vadnice za globinsko zasenčenje za začetnike
- Uvod v Selenium WebDriver - Vadnica za selenij št. 8
- Učinkoviti scenariji za skriptiranje in odpravljanje težav s selenijem - Vadnica za selenij št. 27
- Vadnica za kumare selena: Integracija kumar Java Selenium WebDriver
- 30+ najboljših vaj za selen: Naučite se selen z resničnimi primeri
- Kako poiskati elemente v brskalnikih Chrome in IE za izdelavo skriptov za selen - Vadnica za selen št. 7
- Implementacija našega prvega skripta WebDriver - Vadnica # 10 za selenium WebDriver
- Celotna namestitev in namestitev WebDriverja z Eclipse - Vadnica za selen št. 9