debugging selenium scripts with logs selenium tutorial 26
Sada idemo prema kraju našeg najopsežnijeg Besplatni vodiči za alat za ispitivanje selena . Vodiči koje sada objavljujemo dio su prethodnog selenijskog treninga.
U prethodnom uputstvu usredotočili smo se na Alat za kontinuiranu integraciju nazvan Hudson . To je besplatan alat i ima puno više mogućnosti za izgradnju projekta testiranja, daljinsko izvođenje klasa ispitivanja i slanje e-pošte obavijesti dionicima koji ih informiraju o statusu prijave u vezi s položenim i neuspjelim testnim slučajevima.
U trenutnom uputstvu krenuli bismo prema nekim naprednim konceptima koji bi izravno ili neizravno pomogli optimizacija okvira za automatizaciju i donosi veću vidljivost korisnicima.
kako otvoriti xml datoteke u
Stoga bismo u trenutnom vodiču razgovarali o značajka zapisivanja, njezin potencijal, mogućnosti uklanjanja pogrešaka i mnogo više.
Ponekad se bilježenje bilježi kao režija za postojeći mehanizam stvaranja skripti, ali stručnjaci smatraju da je to jedna od najboljih praksi ako se koristi u točnom omjeru zbog sljedećih prednosti:
Prednosti prijavljivanja u selenske skripte:
- Omogućuje potpuno razumijevanje izvršavanja testnih kompleta
- Poruke dnevnika mogu se pohraniti u vanjske datoteke za nadzor nakon izvršenja
- Evidencije su izuzetan pomoćnik u otklanjanju pogrešaka u izvršavanju programa
- Dnevnici se također mogu pregledati kako bi se utvrdilo zdravlje aplikacije od strane dionika
Što ćete naučiti:
Log4j - API za bilježenje zasnovan na Javi
Prijelazeći na tehničke detalje o bilježenju, razgovarajmo o podrijetlu API-ja koji bismo koristili tijekom tutorijal za log4j za generiranje dnevnika. Log4j je rezultat zajedničkih napora ljudi na Europskom sigurnom elektroničkom tržištu da razviju uslužni program koji će nam pomoći u generiranju dnevnika, pa je log4j u središtu pozornosti 1996. Log4j je alat otvorenog koda i licenciran pod IBM-ovom javnom licencom.
Tri su glavne komponente koje čine provedbu log4j. Te komponente predstavljaju detalje o razini dnevnika, formatima poruke dnevnika u kojima bi se prikazale i njihovim mehanizmima spremanja.
Sastavni dijelovi Log4j
- Sjekači
- Dodaci
- Izgledi
# 1) Sjekači
Sljedeće korake je potrebno poduzeti kako bi se u projekt implementirali bilježnici.
Korak 1 : Stvaranje instance klase Logger
Korak 2 : Definiranje razine dnevnika
Klasa drvosječa - To je uslužni program zasnovan na javi koji je već implementirao sve generičke metode tako da nam je omogućeno korištenje log4j.
Razine dnevnika - Razine dnevnika u narodu su poznate kao metode ispisa. Oni se koriste za ispis poruka dnevnika. Primarno postoji pet vrsta razina dnevnika.
- pogreška ()
- upozoriti()
- informacije ()
- otklanjanje pogrešaka ()
- zapisnik ()
Dakle, da bismo mogli generirati zapisnike, sve što trebamo učiniti je pozvati bilo koji od načina ispisa preko instance zapisnika. Tijekom faze provedbe imat ćemo širi uvid u to.
# 2) Dodaci
Sad kad znamo kako generirati te zapisnike, sljedeća stvar koja bi nam se trebala pojaviti je da gdje mogu pregledati zapisnike? Odgovor na ovo pitanje leži u definiciji 'dodataka'.
Dodaci se dosljedno koriste za određivanje izvora podataka / medija na kojem treba generirati zapisnike. Opseg izvora podataka proteže se od različitih vanjskih medija kao što su konzola, GUI, tekstualne datoteke itd.
# 3) Izgledi
Ponekad korisnik želi da se određene informacije dodaju ili dodaju uz svaki izraz dnevnika. Na primjer, želim ispisati vremensku oznaku zajedno s mojim zapisnikom. Dakle, takvi se zahtjevi mogu postići pomoću 'Layouts'.
Izgledi su uslužni program koji omogućava korisniku da odabere željeni format u kojem će se zapisnici prikazivati. Dodaci i izgled imaju usku spojnicu. Stoga smo dužni mapirati svakog od priloga s određenim izgledom.
Zabilježite da se korisniku omogućuje definiranje više dodataka, a svaka karta s različitim izgledom.
Sad kad smo svjesni osnova log4j i njegovih komponenata, usredotočit ćemo se na fenomen implementacije.
Razumijejmo cjelokupni postupak implementacije korak po korak.
Instalacija / postavljanje
Za instalaciju i postavljanje razmotrili bismo projekt „Learning_Selenium“ koji smo već kreirali u ranijim sesijama ove serije.
Korak 1 : Prvi i najvažniji korak je preuzimanje najnovijeg jar za API log4j. Staklenku možete lako pronaći na službenoj web stranici distribucije - “ http://logging.apache.org/log4j/1.2/download.html '.
Korak 2 : Sljedeći je korak konfiguriranje puta gradnje i pružanje log4j.jar kao vanjske knjižnice.
Provedba
Zapisivanje pomoću log4j može se implementirati i konfigurirati na dva načina:
- Programski putem skripte
- Ručno putem konfiguracijskih datoteka
Obje gore spomenute metode konfiguracije imaju i prednosti i nedostatke. U ovom uputstvu razmotrićemo ručno konfiguriranje log4j putem konfiguracijskih datoteka na temelju njegove jednostavnosti i jednostavnosti. Konfiguracijska datoteka je još jedna XML datoteka za konfiguriranje artefakata povezanih s log4j.
Stvaranje datoteke log4j.xml
Korak 1 . Stvorite datoteku log4j.xml. Kopirajte i zalijepite donji kod u konfiguracijsku datoteku.
Prolazak kroz konfiguracijsku datoteku
consoleAppender
Dodatak konzole koristi se za ispis izjava dnevnika na konzoli.
datotečni dodavač
Dodatak datoteke koristi se za ispis izjava dnevnika unutar vanjske datoteke. Korisnik se koristi da postavi vrijednost uključivanja i isključivanja za dodanu oznaku koja će reći sustavu da doda i evidentira izjave na prethodno stvorenu ili da prepiše prethodno stvorene zapisnike i uopće generira nove zapisnike.
'append' value= 'false' />
Vrijednost parametra datoteke postavljena je na određeno mjesto kako bi se sustav obavijestio da kreira predviđenu datoteku dnevnika na spomenutom mjestu. Također specificiramo naziv datoteke dnevnika unutar parametra vrijednosti.
Izgled
Kao što je raspravljeno u ranim odjeljcima ovog vodiča, rasporedi se koriste za specificiranje mehanizma prikazivanja za naredbe dnevnika. Log4j pruža razne obrasce izgleda. Korisnik se koristi da navede željeni uzorak u vrijednosti parametra ConversionPattern.
Rezultat gornjeg izgleda trebao bi biti otprilike:
01-07-2014 12:56:32 INFO (GmailLogin): Primjer poruke dnevnika
U gornjem izlazu:
- Prvo polje - Datum izvršenja
- Drugo polje - Točno vrijeme u hh: mm: ss u kojem je izveden testni korak
- Treće polje - jedna od razina dnevnika
- Četvrto polje - Naziv klase testa
- Peto polje - Poruka dnevnika
Korak 2 . Čim završimo sa stvaranjem datoteke log4j.XML, sljedeći je korak staviti datoteku log4j.XML u osnovnu mapu / osnovni direktorij projekta.
Provedba na razini programa
3. korak : Sljedeći je korak upotreba bilo kojeg konfiguratora za konfiguriranje i raščlanjivanje datoteke log4j.xml.
Sintaksa:
koji je najbolji operativni sustav za pc
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); } } }
Bilješka : Dnevnici se mogu implementirati na razini predavanja, umjesto na razini programskog paketa. Sve što trebate učiniti je unijeti potrebne promjene u testnu klasu, a ne u testnu skupinu.
4. korak : Sljedeći korak je stvaranje testne klase 'GmailLogin.java' u okviru projekta. Implementirajte funkcionalnost prijave za Gmail u razredu.
Korak 5 : Sljedeći je korak uvoz klase dnevnika kako biste mogli implementirati izraze dnevnika.
Sintaksa:
import org.apache.log4j.Logger;
Korak 6 : Sljedeći korak u procesu je instanciranje objekta klase Logger.
Sintaksa:
// Inicijalizacija objekta za zapisnik
statički Trupci zapisnik Logger.getLogger (Demo. razred .getName ());
7. korak : Gore stvorena varijabla dnevnika tipa Logger koristila bi se u cijeloj testnoj klasi za generiranje naredbi dnevnika. Pogledajte sljedeći kod za isti.
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 u datoteci dnevnika
01-07-2014 12:56:11 INFO (GmailLogin): Datoteku smo prenijeli u sustav: FileExample.txt
01-07-2014 12:56:11 INFO (GmailLogin): Slanje promjena
01-07-2014 12:56:15 POGREŠKA (GmailLogin): Neuspješna prijava.
AŽURIRANJE ožujka 2020
Trupci
Zapisnik je poruka koju bilježimo ili generiramo za svaku transakciju koju obavimo. Možemo analizirati zapisnike kako bismo provjerili što je pošlo ispravno ili pogrešno. Pretpostavimo ako se bilo koji sustav naglo zatvori, analizirajući zapisnike, možemo ući u osnovni uzrok kvara.
Tako se zapisnici generiraju u svakom razvojnom ciklusu. Na isti način, također možemo generirati zapisnike u našem selenijskom kodu za testiranje prije i nakon svakog uvjeta ispitivanja ili izjave o ispitivanju, kako bismo provjerili rade li svi kako se očekuje.
log4j Okvir
Da bismo generirali ove datoteke dnevnika u selenijskom kodu, koristimo log4j okvir koji pruža Apache. Pomoću ovog okvira možemo generirati naše prilagođene zapisnike.
Klik ovdje za preuzimanje log4j jar iz spremišta Maven.
Dnevnike možemo generirati na 2 načina:
- Korištenje datoteke log4j.properties
- Korištenje datoteke log4j.xml
Te će datoteke sadržavati konfiguraciju o tome kakvu vrstu dnevnika želite generirati. Možete koristiti bilo koji od njih. Ako želite koristiti oboje, tada će log4j.xml imati veći prioritet. Poželjni način generiranja dnevnika je upotreba datoteke svojstava, pa ćemo ovdje istražiti više o generiranju samo kroz datoteku svojstava.
Provedba log4j
Preuzmite datoteku jar4 log4j s gornje staze i dodajte je u stazu gradnje projekta. Stvorite datoteku log4j.properties i dodajte datoteku svojstava paralelno s vašom izvornom mapom kada koristite samostalnu java aplikaciju.
Datoteka Log4j.properties je konfiguracijska datoteka koja pohranjuje vrijednosti u par ključ / vrijednost.
Sadrži 3 glavne komponente:
- Sjekači: Snima podatke o evidentiranju.
- Dodaci : Objavi podatke zapisivanja na drugo preferirano odredište poput konzola, datoteka, utičnica, dnevnika događaja NT itd.
- Izgledi : Oblikujte podatke o evidentiranju u različite stilove kao što su HTML, XML Layout itd.
Sintaksa datoteke log4j.properties
# 1) Definirajte matični zapisnik s razinom zapisivanja INFO i dodatkom X (dodatak mogu biti bilo koje konzole, datoteke, utičnice, zapisnici događaja NT).
log4j.rootLogger = INFO, X
#dva) Postavite dodatak pod nazivom X da bude dodavač datoteke.
log4j.appender.X = org.apache.log4j.FileAppender
# 3) Definirajte izgled za X dodavač.
log4j.appender.X.layout = org.apache.log4j.PatternLayout log4j.appender.X.layout.conversionPattern = %m%n
log4j.properties Primjer
Stvorite datoteku log4j.properties, pozivajući se na gornju sintaksu:
# inicijalizirajte root logger s razinom INFO i ispišite ga na konzoli pomoću stdout i fout.
log4j.rootLogger=INFO,stdout,fout
# dodajte ConsoleAppender u zapisnik stdout za pisanje na konzolu.
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
# koristite definirani jednostavan obrazac izgleda formata poruke% m% n, koji ispisuje zapisničke poruke u novom retku.
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%m%n
# dodajte FileAppender u program za prijavu.
log4j.appender.fout=org.apache.log4j.FileAppender
# DODATAK DODATNIKA definiran je kao org.apache.log4j.FileAppender. Zapisuje u datoteku nazvanu SoftwareTestingHelp.
log4j.appender.fout.File=SoftwareTestingHelp.log
# upotrijebite detaljniji obrazac poruke.
log4j.appender.fout.layout=org.apache.log4j.PatternLayout log4j.appender.fout.layout.ConversionPattern=%p %d{ISO8601} %r %c (%t) %m%n
Različiti nivoi sječe
- DEBUG
- INFO
- UPOZORITI
- POGREŠKA
- FATALNO
Svaka razina ima svoj prioritet. Pretpostavimo da ako koristimo razinu 'DEBUG', tada će zabilježiti sve poruke kao što su INFO >> UPOZORENJE >> POGREŠKA >> FATAL.
Pretpostavimo da ako koristimo razinu 'ERROR', tada će zanemariti DEBUG >> INFO >> WARN i prijavit će samo ERROR >> FATAL.
Na svim tim razinama trebamo definirati u našoj datoteci svojstava. Dnevnici će se generirati, ovisno o našoj konfiguraciji.
Implementacija dnevnika za isti gore navedeni primjer:
Korak 1: Stvorite objekt za klasu Logger.
final static Logger logger = Logger.getLogger(Frame.class);
Gornja metoda pomaže dobiti objekt zapisnika. Ova metoda će kao argument uzeti ili klasu ili naziv klase. Koristeći ovaj objekt zapisnika, možete generirati prilagođene zapisnike.
U ovom primjeru pozvali smo se na okvir apache log4j, ako koristite TestNG framework, tada morate koristiti klasu TestNG log.
Ovdje smo pokušali generirati zapisnik, bez implementacije datoteke svojstava.
kako mogu otvoriti bin datoteku u sustavu Windows 10
Nijedna se evidencija ne generira niti u konzoli niti u bilo kojoj kreiranoj datoteci dnevnika. U konzoli je primljena pogreška jer datoteka dnevnika nije pravilno implementirana. Da bismo je implementirali, trebamo koristiti klasu PropertyConfigurator. Slijedite korak 2.
Korak 2: Inicijalizirajte datoteku konfiguratora svojstava i proslijedite argument kao ime datoteke svojstava log4j.
PropertyConfigurator.configure (“log4j.properties”);
Kompletan kod za generiranje datoteka dnevnika:
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 svojstava:
Zaključak
U trenutnom uputstvu usredotočili smo se na tehničke implikacije tijekom provedbe bilježenja u okviru. Iskoristili smo uslužni program log4j za provedbu bilježenja. Razgovarali smo o osnovnim komponentama koje čine log4j iz perspektive upotrebljivosti. Pomoću Dodataka i rasporeda korisnik može odabrati željeni format / obrazac zapisivanja i izvor podataka / mjesto.
U ovom uputstvu istražujemo zašto se zapisnici koriste u našem testu i pokrivaju log4j framework te implementaciju log4j okvira u Seleniju za generiranje dnevnika.
Sljedeći vodič # 27 : U predstojećem uputstvu razgovarali bismo o nekim naprednijim temama vezanim uz učinkovito skriptiranje i rješavanje problema gdje je korisnik dužan rukovati događajima miša i tipkovnice. Štoviše, razgovarali bismo i o tome kako pohraniti više od jednog web elementa na popis.
Preporučena literatura
- Dubinski vodiči za pomračenje za početnike
- Uvod u Selenium WebDriver - Vodič za selen br. 8
- Učinkoviti scenariji za skriptiranje i rješavanje problema sa selenijem - Vodič za selenij br. 27
- Vodič za krastavac selenij: Integracija Java Selenium WebDriver krastavaca
- 30+ najboljih vodiča za selen: naučite selen na stvarnim primjerima
- Kako locirati elemente u preglednicima Chrome i IE za izgradnju skripti za selen - Vodič za selen br. 7
- Implementacija naše prve skripte WebDriver - Vodič br. 10 za Selenium WebDriver
- Cjelokupno postavljanje i instaliranje WebDriver-a s Eclipseom - Vodič za selen br. 9