TestNG er en testramme, der dækker forskellige typer testdesign som enhed, funktionel, ende til slut, UI og integrationstest.
Du kan køre en enkelt eller flere pakker (pakke her betyder at indkapsle en gruppe klasser i et korrekt direktørformat) ved at oprette XML og køre den gennem maven.
I denne vejledning lærer du-
- TestNG-grupper med eksempel
- Indstil maven og Java-sti i miljøvariabel (til Windows-bruger)
- Introduktion til XML og hvordan man laver en XML-fil
- En anden mekanisme i stedet for gruppering er "ekskluder" eller "inkluderer" i test XML
- Sådan køres kode ved hjælp af XML-fil (video demo)
TestNG-grupper med eksempel
Vi bruger grupper i Testng når,
- Vi ønsker ikke at definere testmetoder separat i forskellige klasser (afhængigt af funktionalitet) og
- Samtidig ønsker at ignorere (ikke at udføre) nogle testsager, som om de ikke findes i koden.
- Så for at udføre dette er vi nødt til at gruppere dem. Dette gøres ved hjælp af "include" og "exclude" mekanisme understøttet i testNG.
I nedenstående eksempel har vi vist syntaksen for, hvordan man bruger grupper i XML-filen.
@Test (grupper = {"binding", "strong_ties"})
Her bruger vi 2 gruppenavne, dvs. "binding" og "strong_ties" (disse er logiske navn, der kan ændres efter dit ønske).
Tilpas din XML for at vælge den nævnte gruppe fra testklasserne. Nedenfor er syntaksen for, hvordan man erklærer grupper i XML-filer, f.eks
Så lad os antage, at der er 10 testmetoder i en klasse.
Ud af dem,
- 6 metoder er mærket i gruppen "binding" og
- 4 er i gruppen "strong_ties"
Fremadrettet vil vi indstille maven / Java-stien og bruge Eclipse IDE til at demonstrere brugen af grupper ved hjælp af XML-filer i Java-baseret maven-projekt.
Indstil maven og Java-sti i miljøvariabel (til Windows-bruger)
Se https://www.guru99.com/maven-jenkins-with-selenium-complete-tutorial.html
https://www.guru99.com/install-java.html
Introduktion til XML og hvordan man laver en XML-fil
- XML (Extensible Markup Language) -fil i Maven framework indeholder oplysningerne om en eller flere tests og er defineret af tagget
. - Testoplysninger i XML er repræsenteret af tag
og kan indeholde en eller flere TestNG-klasser. - En Java-klasse, der indeholder @Test- kommentar ovenfor testmetoder, er defineret som TestNG-metoder.
Flere tags bruges i en sekvens til at opbygge en arbejdstestNG xml som
- Først er tagget
, som har et logisk navn, der definerer fuld information til testNG rapporteret til at generere eksekveringsrapport. - Andet er
, bemærk at det er et logisk navn, der indeholder oplysningerne om testudførelsesrapporten som bestået, mislykkes, springer testsager over og anden information som total tid til udførelse og gruppeinfo - Tredje er
, com.group.guru99 er den anvendte pakke, og testklassens navn er TC_Class1.
xml version = "1.0" kodning = "UTF-8"?>
Vi bruger denne XML til den kommende nedadrettede video.
En anden mekanisme i stedet for gruppering er "ekskluder" eller "inkluder" i test-XML
Antag at du finder brugen af gruppemekanisme kompleks, så testNG XML letter funktionaliteten til at ekskludere / inkludere en test.
Ekskluder tag : Syntaks for ekskluder tagInkluder tag : Syntaks for include-tag
Bemærk: Vi kan inkludere / ekskludere flere testsager ad gangen, og det fungerer også med grupper.
Sådan køres kode ved hjælp af XML-fil (video demo)
Forklaring af Java-koden og XML med gruppen, ekskluder og inkluder koden i XML.
- Scenarie : Start Guru99 demo Banking-websted, verificer få ting på login-siden efter det, indtast legitimationsoplysninger, og bekræft få nye ting på applikationen igen, når du er logget ind.
Bemærk : Hvert trin, som du koder, skal erklæres i separate metoder, men når det udføres, vil det udføre testmetoder afhængigt af posterne i XML-filen.
Metode 1 : Initialiser browser og start URL (tc01LaunchURL ())
Metode 2 : Bekræft overskrift til login-side (tc02VerifyLaunchPage ())
Metode 3 : Indtast brugernavn og adgangskode i loginformularen (tc03EnterCredentials ())
Metode 4 : Bekræft tilstedeværelsen af Manager-id på brugerdashboard (tc04VerifyLoggedInPage ())
Metode 5 : Bekræft nogle få flere links på User DashBoard (tc05VerifyHyperlinks ())
Kode til vores scenario:
pakke com.group.guru99;import java.util.concurrent.TimeUnit;importer org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;import org.testng.Assert;import 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 [indeholder (tekst (), 'Manger Id')]";endelig String newCustomer = "//a[@href='addcustomerpage.php ']", fundTransfer = "//a[@href='FundTransInput.php']";/ *** Denne test sag initialiserer webDriver* /@Test (grupper = {"binding", "strong_ties"})offentlig ugyldighed tc01LaunchURL () {webDriver.manage (). vindue (). maksimere ();webDriver.manage (). timeouts (). implicitlyWait (20, TimeUnit.SECONDS);webDriver.get ("http://www.demo.guru99.com/V4/");}/ *** Kontrollerer tilstedeværelsen af overskrift på login-siden* /@Test (grupper = {"bonding"})offentlig ugyldighed tc02VerifyLaunchPage () {Assert.assertTrue (webDriver.findElement (By.xpath (launchPageHeading)). Er vist (),"Startsideoverskrift vises ikke");System.out.println ("Overskrift til startside vises");}/ *** Denne test sag vil indtaste brugernavn, adgangskode og derefter klikke på* log ind-knap* /@Test (grupper = {"binding", "strong_ties"})offentlig ugyldighed 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)). klik ();}/ *** Denne test sag bekræfter krybbe's ID tilstedeværelse på DashBoard* /@Test (grupper = {"strong_ties"})offentlig ugyldighed tc04VerifyLoggedInPage () {Assert.assertTrue (webDriver.findElement (By.xpath (managerID)). Vises (),"Manager ID-etiket vises ikke");System.out.println ("Manger Id label vises");}/ *** Denne test sag kontrollerer tilstedeværelsen af tilstedeværelsen af linket Ny kunde* Og FundTransfer-link i venstre kanal* /@Test (grupper = {"bonding"})offentlig ugyldighed tc05VerifyHyperlinks () {Assert.assertTrue (webDriver.findElement (By.xpath (newCustomer)). IsEnabled (),"Nyt kundehyperlink vises ikke");System.out.println ("Nyt kundehyperlink vises");Assert.assertTrue (webDriver.findElement (By.xpath (fundTransfer)). IsEnabled (),"Fund transfer hyperlink vises ikke");System.out.println ("Fund Transfer hyperlink vises");}}
Bemærk: Legitimationsoplysningerne er kun gyldige i 20 dage, så hvis du forsøger at køre kode på din lokale maskine, kan du muligvis opleve ugyldig legitimationsoplysninger. Find nedenstående trin for at generere dine loginoplysninger:
- Start http://www.demo.guru99.com
- Indtast din e-mail-id i feltet.
- Klik på Enter og se dine loginoplysninger på skærmen.
Forklaring af kode:
Som nævnt ovenfor har vi oprettet 5 testsager til at udføre hver handling på uafhængige metoder.
Du kan se, at til hver metode har vi tilknyttet en gruppeparameter, der indeholder en værdi i den.
Dybest set er dette navnet på de differentierende grupper, dvs. "strong_ties" & "bonding".
- Første og tredje metode er mærket til "binding", "strong_ties", hvilket betyder, at hvis XML opdateres i en hvilken som helst af gruppen, vil denne test sag køre.
- Den anden metode er kun mærket til "bonding" -gruppen betyder det, at hvis XML opdateres med bonding-gruppe. Kun i dette tilfælde vil denne test sag køre.
- Fjerde testsag er mærket til strong_ties-gruppen, hvilket betyder, at denne testsag kun kører, hvis XML opdateres med strong_ties-gruppens navn.
- Sidste men ikke mindst femte testtilfælde er knyttet til bindingsgruppen, hvilket betyder, at denne testtilfælde kun kører, hvis XML opdateres med navnet på bindingsgruppen.
Så samlet set har vi 4 scenarier;
- Vi ønsker at køre alle testsager uanset gruppenavn. I dette tilfælde fjerner vi gruppetag fra at køre XML.
- Vi ønsker at køre test case få test, der kun er relateret til en af grupperne, dvs. strong_ties eller binding
- Se venligst:
- I denne video kommenteres gruppeparameter fra kørsel af XML. Derfor vil du se, at alle testsager blev udført.
- I fortsættelse af video, nu har vi inkluderet gruppenavn i XML, du kan kun se testtilfælde, der er specifikke for den gruppe, der kun kører.
- Vi bruger Exclude-mekanismen til at ekskludere testsagen:
- Se venligst
- Du ser, at vi har brugt ekskludere få testtilfælde (tc02) ved at skrive deres navn i kørsel af XML. I det endelige resultat kørte de nævnte testsager ikke.
- Til sidst bruger vi inkludere testmekanisme til at inkludere testcases (tc01LaunchURL, tc03EnterCredentials og tc05VerifyHyperlinks)
- Se venligst
- I denne video vil du se, at testsager, der er nævnt i XML, kun kører under testudførelsen.
Download venligst kode fra den nævnte URL, den indeholder alle typer testXML:
Download ovenstående kode
Konklusion
Vi har her lært relativt en ny måde til at køre testcases ved hjælp af XML i Maven-projektet.
Vi startede med at give en kort introduktion til testNG og fortsatte med den fulde tekniske specifikation af grupper, ekskluder og inkluder.