how use testng framework
I de sidste par tutorials kaster vi lys over de grundlæggende og almindeligt anvendte WebDriver-kommandoer. Vi lærte også om lokaliseringsstrategierne for UI-elementer og deres inkludering i testskripterne. Og derfor udviklede vi vores meget første WebDriver Automation Test Script .
Fortsat med denne vejledning vil vi diskutere alt om TestNG, dets funktioner og dets applikationer.
TestNG er en forhåndsramme designet på en måde til at udnytte fordelene fra både udviklere og testere. For folk, der allerede bruger JUnit, ser TestNG ikke anderledes ud med nogle forhåndsfunktioner. Med begyndelsen af rammerne fik JUnit en enorm popularitet på tværs af Java-applikationer, Java-udviklere og Java-testere, med bemærkelsesværdigt stigende kodekvalitet.
Se også=> JUnit Tutorial og dets anvendelse i Selenium-scripts
På trods af at det er en nem at bruge og ligetil ramme, har JUnit sine egne begrænsninger, som giver anledning til behovet for at bringe TestNG ind i billedet. TestNG blev oprettet af en anerkendt programmør ved navn “Cedric Beust”. TestNG er en open source-ramme, der distribueres under Apache-softwarelicensen og er let tilgængelig til download.
At tale om vores krav om at introducere TestNG med WebDriver er, at det giver et effektivt og effektivt testresultatformat, der igen kan deles med interessenterne for at få et glimt af produktets / applikationens sundhed og derved eliminere ulempen ved WebDrivers manglende evne til at generere testrapporter. TestNG har en indbygget undtagelseshåndteringsmekanisme, der lader programmet køre uden at afsluttes uventet.
Både TestNG og JUnit tilhører den samme familie af Unit Frameworks, hvor TestNG er en udvidet version til JUnit og er mere udbredt i den nuværende test-æra.
Hvad du lærer:
- Funktioner af TestNG
- TestNG-installation i formørkelse
- Oprettelse af prøve TestNG-projekt
- Oprettelse af TestNG-klasse
- Udførelse af TestNG-scriptet
- HTML-rapporter
- Indstilling af prioritet i TestNG
- Kodegennemgang
- TestNG-bemærkninger
- Konklusion
- Anbefalet læsning
Funktioner af TestNG
- Støtte til annoteringer
- Støtte til parametrering
- Advance-eksekveringsmetode, der ikke kræver, at testpakker oprettes
- Støtte til datadrevet test ved hjælp af dataudbydere
- Gør det muligt for brugeren at indstille udførelsesprioriteter for testmetoderne
- Understøtter trusselsikkert miljø, når der udføres flere tråde
- Understøtter let integration med forskellige værktøjer og plug-ins som buildværktøjer (Ant, Maven osv.), Integreret udviklingsmiljø (Eclipse).
- Letter brugeren med effektive metoder til generering af rapporter ved hjælp af ReportNG
Der er forskellige fordele, der gør TestNG bedre end JUnit. Nogle af dem er:
- Fremskridt og lette kommentarer
- Udførelsesmønstre kan indstilles
- Samtidig udførelse af testskripter
- Testafhængighedsafhængigheder kan indstilles
Forud for kommentarer er et “@” symbol i både TestNG og JUnit.
Så lad os komme i gang med installations- og implementeringsdelen.
Online gitter til automatisering af selen
# 1) LambdaTest
TestNG-rammen bruges bedst med en Selenium Grid-sky som LambdaTest, som hjælper dig med at udføre parallel test på 2000+ ægte browser og operativsystemer uden besvær med at opretholde et internt Selenium-net.
Du kan få en række logfiler, såsom kommandologfiler, netværkslogfiler, rå Selenium-logfiler, metadata osv. Sammen med en komplet videooptagelse af dit Selenium-test script til debugging.
LambdaTest tilbyder også integrationer med flere CI / CD-værktøjer som Jenkins, Travis CI, CircleCI osv. Til kontinuerlig test. LambdaTest giver dig også mulighed for at integrere med adskillige projektstyringsværktøjer til nem fejllogning.
=> Besøg LambdaTest-webstedetTestNG-installation i formørkelse
Følg nedenstående trin for at TestNG Download og installation på formørkelse:
Trin 1: Start eclipse IDE -> Klik på Hjælp-indstillingen i menuen -> Vælg 'Eclipse Marketplace ..' i rullemenuen.
Trin 2: Indtast nøgleordet 'TestNG' i søgetekstfeltet, og klik på 'Gå' -knappen som vist nedenfor.
Trin 3: Så snart brugeren klikker på knappen 'Gå', vises resultaterne, der matcher søgestrengen. Nu kan brugeren klikke på knappen Installer for at installere TestNG.
Trin 4: Så snart brugeren klikker på knappen Installer, bliver brugeren bedt om et vindue til at bekræfte installationen. Klik på “Bekræft” -knappen.
Trin 5: I det næste trin beder applikationen dig om at acceptere licensen og derefter klikke på knappen 'Udfør'.
Trin 6: Installationen er igangsat nu, og fremskridtene kan ses som følger:
Vi rådes til at genstarte vores formørkelse for at afspejle de foretagne ændringer.
Ved genstart kan en bruger verificere TestNG-installationen ved at navigere til 'Indstillinger' fra 'Vindue' i menulinjen. Se følgende figur for det samme.
(Klik på billedet for at se det forstørret)
Oprettelse af prøve TestNG-projekt
Lad os begynde med oprettelsen af TestNG-projekt i formørkelse IDE.
Trin 1: Klik på filindstillingen i menuen -> Klik på Ny -> Vælg Java-projekt.
Trin 2: Indtast projektnavnet som “DemoTestNG”, og klik på knappen “Næste”. Som et afsluttende trin skal du klikke på knappen “Udfør” og dit Java-projekt er klar.
Trin 3: Det næste trin er at konfigurere TestNG-biblioteket i det nyoprettede Java-projekt. For det samme skal du klikke på fanen 'Biblioteker' under Konfigurer opbygningssti. Klik på 'Tilføj bibliotek' som vist nedenfor.
Trin 4: Brugeren vil blive udsat for en dialogboks, der promoverer ham / hende til at vælge det bibliotek, der skal konfigureres. Vælg TestNG, og klik på knappen 'Næste' som vist nedenfor på billedet. Til sidst skal du klikke på knappen 'Udfør'.
TestNG føjes nu til Java-projektet, og de nødvendige biblioteker kan ses i pakkeudforskeren, når projektet udvides.
Tilføj alle downloadede Selen-biblioteker og krukker i projektets build-sti som illustreret i den foregående tutorial.
Oprettelse af TestNG-klasse
Nu hvor vi har udført alle de grundlæggende opsætninger for at komme i gang med oprettelse af testscript ved hjælp af TestNG. Lad os oprette et eksempelscript ved hjælp af TestNG.
Trin 1: Udvid “DemoTestNG” -projektet, og gå gennem mappen “src”. Højreklik på 'src' -pakken og naviger til Ny -> Andet.
Trin 2: Udvid TestNG-indstillingen, og vælg 'TestNG' -klassemulighed, og klik på knappen 'Næste'.
Trin 3: Giv de nødvendige detaljer som følger. Angiv kildemappen, pakkenavnet og TestNG-klassens navn, og klik på knappen Udfør. Som det fremgår af nedenstående billede, kan brugeren også kontrollere forskellige TestNG-notationer, der afspejles i testklasseskemaet. TestNG-kommentarer vil blive drøftet senere i denne session.
Ovennævnte TestNG-klasse oprettes med standardskemaet.
Nu hvor vi har skabt det grundlæggende fundament for TestNG test scriptet, lad os nu indsprøjte den faktiske testkode. Vi bruger den samme kode, som vi brugte i den forrige session.
Scenarie:
- Start browseren, og åbn “gmail.com”.
- Bekræft titlen på siden, og udskriv bekræftelsesresultatet.
- Indtast brugernavn og adgangskode.
- Klik på knappen Log ind.
- Luk webbrowseren.
Kode:
package TestNG; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.Test; public class DemoTestNG { public WebDriver driver = new FirefoxDriver(); String appUrl = 'https://accounts.google.com'; @Test public void gmailLogin() { // launch the firefox browser and open the application url driver.get('https://gmail.com'); // maximize the browser window driver.manage().window().maximize(); // declare and initialize the variable to store the expected title of the webpage. String expectedTitle = ' Sign in - Google Accounts '; // fetch the title of the web page and save it into a string variable String actualTitle = driver.getTitle(); Assert.assertEquals(expectedTitle,actualTitle); // enter a valid username in the email textbox WebElement username = driver.findElement(By.id('Email')); username.clear(); username.sendKeys('TestSelenium'); // enter a valid password in the password textbox WebElement password = driver.findElement(By.id('Passwd')); password.clear(); password.sendKeys('password123'); // click on the Sign in button WebElement SignInButton = driver.findElement(By.id('signIn')); SignInButton.click(); // close the web browser driver.close(); } }
Kode Forklaring med hensyn til TestNG
1) @Test - @Test er en af de TestNG-kommentarer . Denne kommentar lader programudførelsen vide, at metoden, der er kommenteret som @Test, er en testmetode. For at kunne bruge forskellige TestNG-kommentarer, skal vi importere pakken “ importere org.testng.annotations. * ”.
to) Der er ikke behov for main () -metode, når du opretter test-scripts ved hjælp af TestNG. Programmets udførelse sker på basis af annoteringer.
3) I en erklæring brugte vi Assert-klassen, mens vi sammenlignede forventet og den faktiske værdi. Assert-klasse bruges til at udføre forskellige verifikationer. For at kunne bruge forskellige påstande er vi forpligtet til at importere “ importere org.testng.Assert ”.
Udførelse af TestNG-scriptet
TestNG test scriptet kan udføres på følgende måde:
=> Højreklik et vilkårligt sted inden for klassen i editoren eller java-klassen i pakkeudforskeren, vælg 'Kør som' og klik på 'TestNG Test'.
TestNG-resultatet vises i to vinduer:
- Konsolvindue
- TestNG-resultatvindue
Se nedenstående screencasts for resultatvinduerne:
hvad er den bedste software til talegenkendelse
(Klik på billedet for at se det forstørret)
HTML-rapporter
TestNG har en stor evne til at generere brugerlæsbare og forståelige HTML-rapporter til testudførelser. Disse rapporter kan ses i alle browsere, og de kan også ses ved hjælp af Eclipses indbyggede browsersupport.
Følg nedenstående trin for at generere HTML-rapporten:
Trin 1: Udfør den nyoprettede TestNG-klasse. Opdater projektet, der indeholder TestNG-klassen, ved at højreklikke på det og vælge 'Opdater'.
Trin 2: En mappe navngivet som 'test-output' skal genereres i projektet på 'src' -niveauet. Udvid mappen 'test-output', og åbn filen 'emailable-report.html' med Eclipse-browseren. HTML-filen viser resultatet af den seneste udførelse.
Trin 3: HTML-rapporten skal åbnes i formørkelsesmiljøet. Se nedenstående billede for det samme.
Opdater siden for at se resultaterne for eventuelle nye henrettelser.
Indstilling af prioritet i TestNG
Kodestykke
package TestNG; import org.testng.annotations.*; public class SettingPriority { @Test(priority=0) public void method1() { } @Test(priority=1) public void method2() { } @Test(priority=2) public void method3() { } }
Kodegennemgang
Hvis et testscript er sammensat af mere end en testmetode, kan eksekveringsprioritet og sekvens indstilles ved hjælp af TestNG-kommentar '@Test' og ved at indstille en værdi til parameteren 'prioritet'.
I ovenstående kodestykke annoteres alle metoderne med hjælp @ Test, og prioriteterne er indstillet til 0, 1 og 2. Således er rækkefølgen af udførelsen, hvor testmetoderne vil blive udført,:
- Metode 1
- Metode 2
- Metode 3
Støtte til kommentarer
Der er en række annoteringer i TestNG og JUnit. Den subtile forskel er, at TestNG giver JUnit nogle flere forhåndsnoteringer.
TestNG-bemærkninger
Følgende er listen over de mest nyttige og gunstige kommentarer i TestNG:
Kommentar | Beskrivelse |
---|---|
@Efter skole | Annotationen giver systemet besked om, at metoden, der er kommenteret som @AfterClass, skal udføres efter udførelse af den sidste testmetode inden for den samme testklasse |
@Prøve | Annotationen giver systemet besked om, at metoden, der er kommenteret som @Test, er en testmetode |
@BeforeSuite | Annotationen giver systemet besked om, at metoden, der er kommenteret som @BeforeSuite, skal udføres, før testene udføres i hele pakken |
@AfterSuite | Annotationen underretter systemet om, at metoden, der er kommenteret som @AfterSuite, skal udføres, efter at testene er udført i hele pakken |
@BeforeTest | Annotationen underretter systemet om, at metoden, der er kommenteret som @BeforeTest, skal udføres, før en testmetode udføres inden for den samme testklasse |
@AfterTest | Annotationen giver systemet besked om, at metoden, der er kommenteret som @AfterTest, skal udføres efter udførelse af en testmetode inden for den samme testklasse |
@BeforeClass | Annotationen giver systemet besked om, at metoden, der er kommenteret som @BeforeClass, skal udføres, før den første testmetode udføres inden for den samme testklasse |
@BeforeMethod | Annotationen giver systemet besked om, at metoden, der er kommenteret som @BeforeMethod, skal udføres, før enhver testmetode udføres inden for samme testklasse |
@AfterMethod | Annotationen giver systemet besked om, at metoden, der er kommenteret som @AfterMethod, skal udføres efter udførelse af enhver testmetode inden for samme testklasse |
@BeforeGroups | Annotationen underretter systemet om, at metoden, der er kommenteret som @BeforeGroups, er en konfigurationsmetode, der tilslutter en gruppe, og som skal udføres, før den første testmetode i gruppen udføres |
@AfterGroups | Annotationen giver systemet besked om, at metoden, der er kommenteret som @AfterGroups, er en konfigurationsmetode, der lister en gruppe, og som skal udføres, efter at den sidste testmetode i gruppen er udført |
Bemærk : Mange af de ovennævnte bemærkninger kan også udøves i JUnit 3 og JUnit 4 framework.
Konklusion
Gennem denne vejledning forsøgte vi at gøre dig bekendt med en java-baseret testramme kaldet TestNG. Vi startede sessionen med installationen af rammen og flyttede med scriptoprettelsen og avancerede emner. Vi diskuterede alle kommentarerne fra TestNG. Vi implementerede og udførte vores første TestNG test script ved hjælp af kommentarer og påståede udsagn.
Artikelsammendrag:
- TestNG er en forhåndsramme designet til at udnytte fordelene ved både udviklere og testere.
- TestNG er en open source-ramme, der distribueres under Apache-softwarelicensen og er let tilgængelig til download.
- TestNG anses for at være bedre end JUnit på grund af dets avancerede funktioner.
- Funktioner i TestNG
- Støtte til kommentarer
- Advance-eksekveringsmetode, der ikke kræver, at testpakker oprettes
- Støtte til parametrering
- Støtte til datadrevet test ved hjælp af dataudbydere
- Fastsættelse af udførelsesprioriteter for testmetoderne
- Understøtter trusselsikkert miljø, når der udføres flere tråde
- Understøtter let integration med forskellige værktøjer og plug-ins som buildværktøjer (Ant, Maven osv.), Integreret udviklingsmiljø (Eclipse).
- Letter brugeren med effektive metoder til generering af rapporter ved hjælp af ReportNG
- Fordele ved TestNG i forhold til JUnit
- Tilføjet forskud og lette kommentarer
- Udførelsesmønstre kan indstilles
- Samtidig udførelse af testskripter
- Testafhængighedsafhængigheder kan indstilles
- TestNG er frit tilgængeligt og kan let installeres i Eclipse IDE ved hjælp af Eclipse Market.
- Efter installation ville TestNG være tilgængeligt som et bibliotek i Eclipse-miljøet.
- Opret et nyt Java-projekt, og konfigurer buildstien ved hjælp af et TestNG-bibliotek.
- Opret en ny TestNG-klasse ved at udvide det oprettede TestNG-projekt og krydse til dens 'src' -mappe. Højreklik på 'src' -pakken og naviger til Ny -> Andet. Vælg TestNG-klassemulighed.
- @Test er en af kommentarerne fra TestNG. Denne kommentar lader programudførelsen vide, at metoden, der er kommenteret som @Test, er en testmetode. For at kunne bruge forskellige TestNG-kommentarer, skal vi importere pakken “ importere org.testng.annotations. * ”.
- Der er ikke behov for main () -metode, når du opretter test-scripts ved hjælp af TestNG.
- Vi bruger Assert-klassen, mens vi sammenligner forventet og den faktiske værdi. Assert-klasse bruges til at udføre forskellige verifikationer. For at kunne bruge forskellige påstande er vi forpligtet til at importere “ importere org.testng.Assert ”.
- Hvis et testscript er sammensat af mere end en testmetode, kan eksekveringsprioritet og sekvens indstilles ved hjælp af TestNG-kommentar '@Test' og ved at indstille en værdi til parameteren 'prioritet'.
- TestNG har mulighed for automatisk at generere menneskelige læsbare testudførelsesrapporter. Disse rapporter kan ses i enhver browser, og de kan også ses ved hjælp af Eclipses indbyggede browsersupport.
Næste tutorial # 13 : Når vi går videre med de kommende tutorials i Selenium-serien, vil vi koncentrere os om at håndtere de forskellige typer webelementer, der er tilgængelige på websiderne. Derfor, i den næste vejledning koncentrerer vi os om 'dropdowns' og vil udøve deres håndteringsstrategier. Vi diskuterede også om WebDriver's Select-klasse og dens metoder til at vælge værdier i dropdown.
En bemærkning til læserne : Mens vores næste tutorial af Selenium-serien er i behandlingstilstand, kan læsere begynde at oprette deres egne grundlæggende WebDriver-scripts ved hjælp af TestNG-rammen.
For flere avancerede scripts og koncepter skal du medtage så mange kommentarer og påstande i dine TestNG-klasser og udføre dem ved hjælp af TestNG-miljøet. Analyser også HTML-rapporter genereret af TestNG.
Anbefalet læsning
- Sådan bruges Firebug til oprettelse af selen-scripts - Selen Tutorial # 4
- Introduktion til JUnit Framework og dens anvendelse i Selenium Script - Selen Tutorial # 11
- Lær hvordan du bruger TestNG-kommentarer i selen (med eksempler)
- Agurk Selen Tutorial: Agurk Java Selen WebDriver Integration
- Sådan finder du elementer i Chrome og IE-browsere til opbygning af selen-scripts - Selen Tutorial # 7
- Selen Framework Oprettelse og adgang til testdata fra Excel - Selenium Tutorial # 21
- Oprettelse af generik og testdragter - Selen-tutorial # 22
- Dybdegående formørkelsesvejledninger til begyndere