TestNG er et testrammeverk som dekker forskjellige typer testdesign som enhet, funksjonell, ende til slutt, brukergrensesnitt og integrasjonstest.
Du kan kjøre en enkelt eller flere pakker (pakke her betyr å kapsle inn en gruppe klasser i riktig direktørformat) ved å opprette XML og kjøre den gjennom maven.
I denne veiledningen vil du lære-
- TestNG Grupper med eksempel
- Angi maven og Java-bane i miljøvariabel (for Windows-bruker)
- Introduksjon til XML og hvordan du lager en XML-filer
- En annen mekanisme i stedet for gruppering er "ekskluder" eller "inkluderer" i test-XML
- Slik kjører du kode ved hjelp av XML-fil (videodemo)
TestNG Grupper med eksempel
Vi bruker grupper i Testng når,
- Vi ønsker ikke å definere testmetoder separat i forskjellige klasser (avhengig av funksjonalitet) og
- Samtidig vil du ignorere (ikke å utføre) noen testtilfeller som om de ikke finnes i koden.
- Så for å gjennomføre dette må vi gruppere dem. Dette gjøres ved å bruke "inkluderer" og "ekskluder" -mekanismen som støttes i testNG.
I eksemplet nedenfor har vi vist syntaksen for hvordan du bruker grupper i XML-filen.
@Test (grupper = {"bonding", "strong_ties"})
Her bruker vi to gruppenavn, dvs. "bonding" og "strong_ties" (dette er logiske navn som kan endres i henhold til ditt ønske).
Tilpass XML for å velge den nevnte gruppen fra testklassene. Nedenfor er syntaksen for hvordan man kan erklære grupper i XML-filer, f.eks
La oss anta at det er 10 testmetoder i en klasse.
Ut av dem,
- 6 metoder er merket i gruppen "bonding" og
- 4 er i gruppen "sterke_typer"
Fremover skal vi sette maven / Java-bane og bruke Eclipse IDE til å demonstrere bruken av grupper ved bruk av XML-filer i Java-basert maven-prosjekt.
Angi maven og Java-bane i miljøvariabel (for Windows-bruker)
Se https://www.guru99.com/maven-jenkins-with-selenium-complete-tutorial.html
https://www.guru99.com/install-java.html
Introduksjon til XML og hvordan du lager en XML-filer
- XML (Extensible Markup Language) -fil i Maven framework inneholder informasjonen til en eller flere tester og er definert av taggen
. - Testinformasjon i XML er representert med tag
og kan inneholde en eller flere TestNG-klasser. - En Java-klasse som inneholder @Test- kommentar over testmetodene er definert som TestNG-metoder.
Flere tagger brukes i en sekvens for å bygge en arbeidstestNG xml som
- Først er
-koden, som har et logisk navn som definerer full informasjon som testNG rapporterte for å generere kjøringsrapport. - For det andre er
, legg merke til at det er et logisk navn som inneholder informasjonen om testutførelsesrapporten som pass, fail, hoppe over testtilfeller og annen informasjon som total tid for utførelse og gruppeinfo - Tredje er
, com.group.guru99 er pakken som brukes, og Test Class name er TC_Class1.
xml version = "1.0" koding = "UTF-8"?>
Vi vil bruke denne XML-en for kommende video-ulemper.
En annen mekanisme i stedet for gruppering er "ekskluder" eller "inkluderer" i test-XML
Anta at du finner bruken av gruppemekanismekompleks, så testNG XML letter funksjonaliteten for å ekskludere / inkludere en test.
Ekskluder tag : Syntaks for ekskluder tagInkluder tag : Syntaks for include tag
Merk: Vi kan inkludere / ekskludere flere testtilfeller en gang om gangen, og det fungerer også med grupper.
Slik kjører du kode ved hjelp av XML-fil (videodemo)
Forklaring av Java-koden og XML med gruppen, ekskluder og inkluder koden i XML.
- Scenario : Start Guru99 demo Banking-nettstedet, bekreft få ting på påloggingssiden etter det, legg inn legitimasjon og bekreft få nye ting på applikasjonen når du er logget inn.
Merk : Hvert trinn som du koder skal deklareres i separate metoder, men når det kjøres, vil det utføre testmetoder avhengig av oppføringene i XML-filen.
Metode 1 : Initialiser nettleseren og start URL (tc01LaunchURL ())
Metode 2 : Bekreft overskrift på påloggingsside (tc02VerifyLaunchPage ())
Metode 3 : Skriv inn brukernavn og passord på påloggingsskjemaet (tc03EnterCredentials ())
Metode 4 : Bekreft tilstedeværelsen av Manager ID på User Dashboard (tc04VerifyLoggedInPage ())
Metode 5 : Bekreft noen flere lenker på User DashBoard (tc05VerifyHyperlinks ())
Kode for vårt scenario:
pakke com.group.guru99;importere java.util.concurrent.TimeUnit;importer org.openqa.selenium.By;importer org.openqa.selenium.WebDriver;importer org.openqa.selenium.firefox.FirefoxDriver;importer org.testng.Assert;importer org.testng.annotations.Test;offentlig klasse TC_Class1 {offentlig statisk endelig WebDriver webDriver = ny FirefoxDriver () ;;String launchPageHeading = "// h3 [text () = 'Guru99 Bank']";final String userName_element = "// input [@ name = 'uid']", password_element = "// input [@ name = 'password']",signIn_element = "// input [@ name = 'btnLogin']";final String userName_value = "mngr28642", password_value = "ydAnate";endelig streng managerID = "// td [inneholder (tekst (), 'Manger Id')]";endelig streng newCustomer = "//a Px@href='addcustomerpage.php ']", fundTransfer = "//a[@href='FundTransInput.php']";/ *** Denne testsaken vil initialisere webDriver* /@Test (grupper = {"bonding", "strong_ties"})offentlig tomrom tc01LaunchURL () {webDriver.manage (). vindu (). maksimere ();webDriver.manage (). timeouts (). implicitlyWait (20, TimeUnit.SECONDS);webDriver.get ("http://www.demo.guru99.com/V4/");}/ *** Kontrollerer tilstedeværelsen av overskrift på innloggingssiden* /@Test (grupper = {"bonding"})offentlig tomrom tc02VerifyLaunchPage () {Assert.assertTrue (webDriver.findElement (By.xpath (launchPageHeading)). Vises (),"Hjemmesideoverskrift vises ikke");System.out.println ("Hjemmesideoverskrift vises");}/ *** Denne testsaken vil oppgi brukernavn, passord og deretter klikke på* påloggingsknapp* /@Test (grupper = {"bonding", "strong_ties"})offentlig tomrom tc03EnterCredentials () {webDriver.findElement (By.xpath (userName_element)). sendKeys (userName_value);webDriver.findElement (By.xpath (password_element)). sendKeys (password_value);webDriver.findElement (By.xpath (signIn_element)). klikk ();}/ *** Denne testsaken vil verifisere krybbeens ID-tilstedeværelse på DashBoard* /@Test (grupper = {"strong_ties"})offentlig tomrom tc04VerifyLoggedInPage () {Assert.assertTrue (webDriver.findElement (By.xpath (managerID)). Vises (),"Manager ID-etiketten vises ikke");System.out.println ("Manger Id-etiketten vises");}/ *** Denne testsaken vil kontrollere tilstedeværelsen av tilstedeværelsen av en ny kundelink* Og FundTransfer-kobling i venstre rute* /@Test (grupper = {"bonding"})offentlig tomrom tc05VerifyHyperlinks () {Assert.assertTrue (webDriver.findElement (By.xpath (newCustomer)). IsEnabled (),"Ny kundehyperkobling vises ikke");System.out.println ("Ny kundehyperkobling vises");Assert.assertTrue (webDriver.findElement (By.xpath (fundTransfer)). IsEnabled (),"Fondoverføringshyperkobling vises ikke");System.out.println ("Fondoverføringshyperkobling vises");}}
Merk: Påloggingsinformasjonen er bare gyldig i 20 dager, så hvis du prøver å kjøre kode på din lokale maskin, kan du oppleve ugyldig legitimasjonsfeil. Vennligst finn trinnene nedenfor for å generere påloggingsinformasjonen din:
- Start http://www.demo.guru99.com
- Skriv inn e-post-ID-en din i boksen.
- Klikk på Enter og se påloggingsinformasjonen på skjermen.
Forklaring av kode:
Som nevnt ovenfor har vi laget 5 testsaker for å utføre hver handling på uavhengige metoder.
Du kan observere at til hver metode har vi tilknyttet en gruppeparameter som inneholder noe verdi i den.
I utgangspunktet er dette navnet på de differensierende gruppene, dvs. "strong_ties" og "bonding".
- Første og tredje metode er merket med "bonding", "strong_ties", som betyr at hvis XML er oppdatert i noen av gruppene, vil denne testsaken kjøre.
- Den andre metoden er bare merket til "bonding" -gruppen, det betyr at hvis XML oppdateres med bonding-gruppen. Bare i så fall vil denne testsaken kjøre.
- Fjerde testtilfelle er merket til strong_ties-gruppen, noe som betyr at denne testsaken kun kjører hvis XML er oppdatert med strong_ties-gruppenavn.
- Sist men ikke minst, femte testtilfelle er knyttet til bindingsgruppen, noe som betyr at denne testtilfellet bare vil kjøre hvis XML er oppdatert med navnet på bindingsgruppen.
Så samlet sett har vi fire scenarier;
- Vi ønsker å kjøre alle testsaker uavhengig av gruppenavn. I dette tilfellet vil vi fjerne gruppetaggen fra å kjøre XML.
- Vi ønsker å kjøre test case få test som bare er relatert til en av gruppene, dvs. strong_ties eller binding
- Vennligst referer:
- I denne videoen kommenteres gruppeparameter fra å kjøre XML. Derfor vil du se at alle testsaker ble henrettet.
- I forlengelse av video, nå som vi har tatt med gruppenavn i XML, kan du bare se testtilfeller som er spesifikke for at gruppen bare kjører.
- Vi bruker ekskluderingsmekanisme for å ekskludere testsaken:
- Vennligst referer
- Du ser at vi har brukt ekskludere noen få testtilfeller (tc02) ved å skrive navnet deres når de kjører XML. I det endelige resultatet kjørte ikke testtilfellene.
- Til slutt bruker vi inkludere testmekanisme for å inkludere testtilfellene (tc01LaunchURL, tc03EnterCredentials og tc05VerifyHyperlinks)
- Vennligst referer
- I denne videoen vil du se at testtilfeller som er nevnt i XML bare kjører under testutførelsen.
Last ned koden fra nevnte URL, den inneholder alle typer testXML:
Last ned koden ovenfor
Konklusjon
Vi har lært her relativt en ny måte å kjøre testsaker på ved hjelp av XML i Maven-prosjektet.
Vi startet med å gi en kort introduksjon om testNG og fortsatte med den fulle tekniske spesifikasjonen for grupper, ekskludere og inkludere.