how use testng framework
I de siste veiledningene belyser vi de grunnleggende og ofte brukte WebDriver-kommandoene. Vi lærte også om lokaliseringsstrategiene for UI-elementer og deres inkludering i testskriptene. Og derfor utviklet vi vårt veldig første WebDriver Automation Test Script .
Fortsett med denne veiledningen, vil vi diskutere alt om TestNG, dets funksjoner og applikasjoner.
TestNG er en forhåndsramme designet på en måte å utnytte fordelene fra både utviklere og testere. For folk som allerede bruker JUnit, virker TestNG ikke annerledes med noen forhåndsfunksjoner. Med begynnelsen av rammene fikk JUnit enorme popularitet på tvers av Java-applikasjonene, Java-utviklere og Java-testere, med bemerkelsesverdig økt kodekvalitet.
Se også=> JUnit Tutorial og dets bruk i Selenium-skript
Til tross for at det er et brukervennlig og greit rammeverk, har JUnit sine egne begrensninger som gir behov for å bringe TestNG inn i bildet. TestNG ble opprettet av en anerkjent programmerer kalt “Cedric Beust”. TestNG er et open source-rammeverk som distribueres under Apache Software License og er lett tilgjengelig for nedlasting.
Å snakke om vårt krav om å introdusere TestNG med WebDriver er at det gir et effektivt og effektivt testresultatformat som igjen kan deles med interessentene for å få et glimt av produktets / applikasjonens helse og dermed eliminere ulempen med WebDrivers manglende evne til å generere testrapporter. TestNG har en innebygd mekanisme for unntakshåndtering som lar programmet kjøre uten å uventet avsluttes.
Både TestNG og JUnit tilhører samme familie av Unit Frameworks der TestNG er en utvidet versjon til JUnit og blir mer brukt i den nåværende testtiden.
Hva du vil lære:
- Funksjoner av TestNG
- TestNG-installasjon i formørkelse
- Opprettelse av prøve TestNG-prosjekt
- Opprette TestNG-klasse
- Utføre TestNG-skriptet
- HTML-rapporter
- Sette prioritet i TestNG
- Code Walkthrough
- TestNG-merknader
- Konklusjon
- Anbefalt lesing
Funksjoner av TestNG
- Støtte for merknader
- Støtte for parameterisering
- Avansert utførelsesmetodikk som ikke krever at testserier skal opprettes
- Støtte for datadrevet testing ved hjelp av dataleverandører
- Gjør det mulig for brukeren å angi kjøringsprioriteter for testmetodene
- Støtter trussikkert miljø når du kjører flere tråder
- Støtter lett integrering med forskjellige verktøy og plugin-moduler som bygningsverktøy (Ant, Maven etc.), Integrated Development Environment (Eclipse).
- Forenkler brukeren med effektive metoder for rapportgenerering ved bruk av ReportNG
Det er forskjellige fordeler som gjør TestNG overlegen JUnit. Noen av dem er:
- Avanserte og enkle kommentarer
- Utførelsesmønstre kan settes
- Samtidig utføring av testskript
- Testavhengighet kan stilles inn
Kommentarer innledes med et “@” symbol i både TestNG og JUnit.
Så la oss komme i gang med installasjons- og implementeringsdelen.
Online Grid For Selenium Test Automation
#1) LambdaTest
TestNG-rammeverket brukes best med et Selenium Grid-sky som LambdaTest, som hjelper deg med å utføre paralleltesting på 2000+ ekte nettleser- og operativsystemer, uten å måtte opprettholde et eget Selen Grid.
Du kan få en rekke logger, for eksempel kommandologger, nettverkslogger, rå Selen-logger, metadata, etc. sammen med et fullstendig videoopptak av Selenium-testskriptet ditt for feilsøking.
LambdaTest tilbyr også integrasjoner med flere CI / CD-verktøy som Jenkins, Travis CI, CircleCI, etc. for kontinuerlig testing. LambdaTest lar deg også integrere med en rekke prosjektadministrasjonsverktøy for enkel feillogging.
=> Besøk LambdaTest-nettstedetTestNG-installasjon i formørkelse
Følg trinnene nedenfor for å laste ned og installere TestNG på formørkelse:
Trinn 1: Start formørkelse IDE -> Klikk på Hjelp-alternativet i menyen -> Velg alternativet 'Eclipse Marketplace ..' i rullegardinmenyen.
Steg 2: Skriv inn nøkkelordet 'TestNG' i søketekstboksen og klikk på 'Gå' -knappen som vist nedenfor.
Trinn 3: Så snart brukeren klikker på 'Gå' -knappen, vil resultatene som samsvarer med søkestrengen vises. Nå kan brukeren klikke på Installer-knappen for å installere TestNG.
Trinn 4: Så snart brukeren klikker på Installer-knappen, blir brukeren bedt om et vindu for å bekrefte installasjonen. Klikk på “Bekreft” -knappen.
Trinn 5: I neste trinn vil applikasjonen be deg om å godta lisensen og deretter klikke på “Fullfør” -knappen.
Trinn 6: Installasjonen er startet nå, og fremdriften kan sees som følger:
Vi anbefales å starte formørkelsen på nytt for å gjenspeile endringene som er gjort.
Ved omstart kan en bruker verifisere TestNG-installasjonen ved å navigere til 'Innstillinger' fra 'Vindu' i menylinjen. Se følgende figur for det samme.
(Klikk på bildet for å se forstørret)
Opprettelse av prøve TestNG-prosjekt
La oss begynne med opprettelsen av TestNG-prosjektet i formørkelse IDE.
Trinn 1: Klikk på Fil-alternativet i menyen -> Klikk på Ny -> Velg Java-prosjekt.
Steg 2: Skriv inn prosjektnavnet som “DemoTestNG” og klikk på “Neste” -knappen. Som et avsluttende trinn, klikk på 'Fullfør' -knappen, og Java-prosjektet ditt er klart.
Trinn 3: Neste trinn er å konfigurere TestNG-biblioteket i det nyopprettede Java-prosjektet. For det samme, klikk på 'Biblioteker' -fanen under Konfigurer byggesti. Klikk på “Legg til bibliotek” som vist nedenfor.
Trinn 4: Brukeren vil bli utsatt for en dialogboks som fremmer ham / henne til å velge biblioteket som skal konfigureres. Velg TestNG og klikk på 'Neste' -knappen som vist nedenfor i bildet. Til slutt klikker du på 'Fullfør' -knappen.
TestNG er nå lagt til Java-prosjektet, og de nødvendige bibliotekene kan sees i pakkeutforskeren når de utvider prosjektet.
Legg til alle nedlastede Selen-biblioteker og krukker i prosjektets byggesti som illustrert i forrige opplæring.
Opprette TestNG-klasse
Nå som vi har gjort alt det grunnleggende oppsettet for å komme i gang med å lage testskriptet ved hjelp av TestNG. La oss lage et eksempelskript ved hjelp av TestNG.
Trinn 1: Utvid “DemoTestNG” -prosjektet og kryss til “src” -mappen. Høyreklikk på “src” -pakken og naviger til Ny -> Annet.
Steg 2: Utvid TestNG-alternativet og velg alternativet 'TestNG' -klasse og klikk på 'Neste' -knappen.
Trinn 3: Gi de nødvendige detaljene som følger. Spesifiser kildemappen, pakkenavnet og TestNG-klassenavnet, og klikk på Fullfør-knappen. Som det fremgår av bildet nedenfor, kan brukeren også sjekke forskjellige TestNG-notasjoner som vil gjenspeiles i skjemaet for testklassen. TestNG-merknader vil bli diskutert senere i denne økten.
Ovennevnte TestNG-klasse vil bli opprettet med standardskjemaet.
Nå som vi har laget det grunnleggende grunnlaget for TestNG-testskriptet, la oss nå injisere den faktiske testkoden. Vi bruker den samme koden som vi brukte i forrige økt.
Scenario:
- Start nettleseren og åpne “gmail.com”.
- Bekreft tittelen på siden og skriv ut bekreftelsesresultatet.
- Skriv inn brukernavn og passord.
- Klikk på Logg på-knappen.
- Lukk nettleseren.
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 av TestNG-merknader . Denne kommentaren lar programutførelsen vite at metoden som er kommentert som @Test er en testmetode. For å kunne bruke forskjellige TestNG-merknader, må vi importere pakken “ import org.testng.annotations. * ”.
to) Det er ikke behov for main () -metoden når du oppretter testskripter ved hjelp av TestNG. Programmets gjennomføring gjøres på grunnlag av merknader.
3) I en uttalelse brukte vi Assert-klassen mens vi sammenlignet forventet og faktisk verdi. Assert-klasse brukes til å utføre forskjellige verifikasjoner. For å kunne bruke forskjellige påstander, må vi importere “ import org.testng.Assert ”.
Utføre TestNG-skriptet
TestNG-testskriptet kan utføres på følgende måte:
=> Høyreklikk hvor som helst i klassen i redigeringsprogrammet eller java-klassen i pakkeutforskeren, velg alternativet 'Kjør som' og klikk på 'TestNG-testen'.
TestNG-resultatet vises i to vinduer:
- Konsollvindu
- TestNG-resultatvindu
Se skjermkastingene nedenfor for resultatvinduene:
sql grunnleggende intervju spørsmål og svar pdf
(Klikk på bildet for å se forstørret)
HTML-rapporter
TestNG har en god evne til å generere brukerlesbare og forståelige HTML-rapporter for testutførelser. Disse rapportene kan vises i hvilken som helst av nettleserne, og de kan også vises ved hjelp av Eclipses innebygde nettleserstøtte.
Følg trinnene nedenfor for å generere HTML-rapporten:
Trinn 1: Utfør den nyopprettede TestNG-klassen. Oppdater prosjektet som inneholder TestNG-klassen ved å høyreklikke på det og velge alternativet 'Oppdater'.
Steg 2: En mappe kalt “test-output” skal genereres i prosjektet på “src” -mappenivå. Utvid 'test-output' -mappen og åpne filen 'emailable-report.html' med Eclipse-nettleseren. HTML-filen viser resultatet av den siste kjøringen.
Trinn 3: HTML-rapporten skal åpnes i formørkelsesmiljøet. Se bildet nedenfor for det samme.
Oppdater siden for å se resultatene for nye henrettelser hvis noen.
Sette prioritet i TestNG
Kodebit
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() { } }
Code Walkthrough
Hvis et testskript består av mer enn en testmetode, kan utførelsesprioriteten og sekvensen settes ved hjelp av TestNG-merknaden '@Test' og ved å sette en verdi for parameteren 'prioritet'.
I kodebiten ovenfor blir alle metodene kommentert med hjelpen @ Test, og prioriteringene er satt til 0, 1 og 2. Dermed er rekkefølgen for utførelse som testmetodene ble utført i:
- Metode 1
- Metode 2
- Metode3
Støtte for merknader
Det er en rekke merknader gitt i TestNG og JUnit. Den subtile forskjellen er at TestNG gir noen flere forhåndsnoteringer til JUnit.
TestNG-merknader
Følgende er listen over de mest nyttige og gunstige kommentarene i TestNG:
Kommentar | Beskrivelse |
---|---|
@Etter timen | Kommentaren varsler systemet om at metoden som er merket som @AfterClass må utføres etter at den siste testmetoden er utført i samme testklasse |
@Test | Merknaden varsler systemet om at metoden som er kommentert som @ Test er en testmetode |
@BeforeSuite | Kommentaren varsler systemet om at metoden som er kommentert som @BeforeSuite må utføres før testene utføres i hele suiten |
@AfterSuite | Kommentaren varsler systemet om at metoden som er kommentert som @AfterSuite, må utføres etter at testene er utført i hele suiten |
@BeforeTest | Kommentaren varsler systemet om at metoden som er kommentert som @BeforeTest må utføres før en testmetode kjøres innenfor samme testklasse |
@AfterTest | Kommentaren varsler systemet om at metoden som er kommentert som @AfterTest må utføres etter at en testmetode er utført i samme testklasse |
@BeforeClass | Kommentaren varsler systemet om at metoden som er kommentert som @BeforeClass må utføres før den første testmetoden kjøres innenfor samme testklasse |
@BeforeMethod | Kommentaren varsler systemet om at metoden som er kommentert som @BeforeMethod, må utføres før en testmetode innen samme testklasse kjøres |
@AfterMethod | Kommentaren varsler systemet om at metoden som er kommentert som @AfterMethod, må utføres etter at alle testmetoder er utført i samme testklasse |
@BeforeGroups | Kommentaren varsler systemet om at metoden som er kommentert som @BeforeGroups, er en konfigurasjonsmetode som verver en gruppe, og som må utføres før den første testmetoden i gruppen utføres |
@AfterGroups | Kommentaren varsler systemet om at metoden som er kommentert som @AfterGroups, er en konfigurasjonsmetode som verver en gruppe, og som må utføres etter at den siste testmetoden i gruppen er utført |
Merk : Mange av de nevnte kommentarene kan også utøves i JUnit 3 og JUnit 4.
Konklusjon
Gjennom denne opplæringen prøvde vi å gjøre deg kjent med et java-basert testrammeverk kalt TestNG. Vi startet økten med installasjonen av rammeverket og flyttet med manusoppretting og forhåndsemner. Vi diskuterte alle kommentarene som ble gitt av TestNG. Vi implementerte og utførte vårt første TestNG-testskript ved hjelp av merknader og påstander.
Artikkelsammendrag:
- TestNG er et forhåndsrammeverk designet på en måte å utnytte fordelene fra både utviklere og testere.
- TestNG er et open source-rammeverk som distribueres under Apache Software License og er lett tilgjengelig for nedlasting.
- TestNG anses å være overlegen JUnit på grunn av forhåndsfunksjonene.
- Funksjoner av TestNG
- Støtte for merknader
- Avansert utførelsesmetodikk som ikke krever at testserier skal opprettes
- Støtte for parameterisering
- Støtte for datadrevet testing ved hjelp av dataleverandører
- Sette kjøringsprioriteter for testmetodene
- Støtter trussikkert miljø når du kjører flere tråder
- Støtter lett integrering med forskjellige verktøy og plugin-moduler som bygningsverktøy (Ant, Maven etc.), Integrated Development Environment (Eclipse).
- Forenkler brukeren med effektive metoder for rapportgenerering ved bruk av ReportNG
- Fordeler med TestNG over JUnit
- Lagt til forhånd og enkle kommentarer
- Utførelsesmønstre kan settes
- Samtidig utføring av testskript
- Testavhengighet kan stilles inn
- TestNG er fritt tilgjengelig og kan enkelt installeres i Eclipse IDE ved hjelp av Eclipse Market.
- Etter installasjon ville TestNG være tilgjengelig som et bibliotek i Eclipse-miljøet.
- Opprett et nytt Java-prosjekt og konfigurer byggestien ved hjelp av et TestNG-bibliotek.
- Opprett en ny TestNG-klasse ved å utvide det opprettede TestNG-prosjektet og krysse til 'src' -mappen. Høyreklikk på “src” -pakken og naviger til Ny -> Annet. Velg TestNG-klassealternativ.
- @Test er en av kommentarene fra TestNG. Denne kommentaren lar programutførelsen vite at metoden som er kommentert som @Test er en testmetode. For å kunne bruke forskjellige TestNG-merknader, må vi importere pakken “ import org.testng.annotations. * ”.
- Det er ikke behov for main () -metoden når du oppretter testskripter ved hjelp av TestNG.
- Vi bruker Assert-klassen mens vi sammenligner forventet og faktisk verdi. Assert-klasse brukes til å utføre forskjellige verifikasjoner. For å kunne bruke forskjellige påstander, må vi importere “ import org.testng.Assert ”.
- Hvis et testskript er sammensatt av mer enn én testmetode, kan utførelsesprioriteten og sekvensen settes ved hjelp av TestNG-merknaden '@Test' og ved å sette en verdi for 'prioritet' -parameteren.
- TestNG har muligheten til å generere menneskelig lesbare testutførelsesrapporter automatisk. Disse rapportene kan vises i hvilken som helst av nettleserne, og de kan også vises ved hjelp av Eclipses innebygde nettleserstøtte.
Neste opplæring # 13 : Fortsatt med de kommende opplæringene i Selenium-serien, vil vi konsentrere oss om å håndtere de forskjellige typer webelementer som er tilgjengelige på websidene. Derfor, i neste opplæring vil vi konsentrere oss om “dropdowns” og vil utøve håndteringsstrategiene deres. Vi vil også diskutere om WebDriver's Select-klasse og dens metoder for å velge verdier i rullegardinmenyene.
En kommentar til leserne : Mens vår neste veiledning av Selenium-serien er i behandlingsmodus, kan leserne begynne å lage sine egne grunnleggende WebDriver-skript ved hjelp av TestNG-rammeverket.
For flere forhåndsskript og konsepter, inkluder så mange kommentarer og påstander i TestNG-klassene dine og utfør dem ved hjelp av TestNG-miljøet. Analyser også HTML-rapportene generert av TestNG.
Anbefalt lesing
- Hvordan bruke Firebug for å lage selen-skript - Selen-veiledning nr. 4
- Introduksjon til JUnit Framework and Its Usage in Selenium Script - Selenium Tutorial # 11
- Lær hvordan du bruker TestNG-merknader i selen (med eksempler)
- Agurk Selen Tutorial: Agurk Java Selen WebDriver Integration
- Hvordan finne elementer i Chrome- og IE-nettlesere for å bygge selen-skript - Selen-veiledning nr. 7
- Selen Framework Creation and Accessing Test Data from Excel - Selenium Tutorial # 21
- Lage generikk og testdrakter - Selen-opplæring # 22
- In-Depth Eclipse Tutorials For Beginners