TestNG är ett testramverk som täcker olika typer av testdesigner som enhet, funktionell, änd till slut, UI och integrationstest.
Du kan köra ett eller flera paket (paket här betyder att inkapsla en grupp klasser i rätt regissörsformat) genom att skapa XML och köra det genom maven.
I den här handledningen lär du dig-
- TestNG-grupper med exempel
- Ställ in maven och Java-sökväg i miljövariabel (för Windows-användare)
- Introduktion till XML och hur man skapar XML-filer
- En annan mekanism istället för gruppering är "exkludera" eller "inkludera" i test XML
- Hur man kör kod med XML-fil (videodemo)
TestNG-grupper med exempel
Vi använder grupper i Testng när,
- Vi vill inte definiera testmetoder separat i olika klasser (beroende på funktionalitet) och
- Samtidigt vill ignorera (inte att utföra) några testfall som om de inte finns i koden.
- Så för att genomföra detta måste vi gruppera dem. Detta görs med hjälp av "include" och "exclude" -mekanismen som stöds i testNG.
I exemplet nedan har vi visat syntaxen för hur man använder grupper i XML-filen.
@Test (grupper = {"bonding", "strong_ties"})
Här använder vi två gruppnamn, dvs "bonding" och "strong_ties" (dessa är logiska namn som kan ändras enligt din önskan).
Anpassa din XML för att välja den nämnda gruppen från testklasserna. Nedan nämns syntaxen för hur man deklarerar grupper i XML-filer t.ex.
Så låt oss anta att det finns tio testmetoder i en klass.
Av dem,
- 6 metoder är märkta i gruppen "bindning" och
- 4 är i gruppen "strong_ties"
Framåt kommer vi att ställa in maven / Java-sökväg och använda Eclipse IDE för att visa användningen av grupper med XML-filer i Java-baserat maven-projekt.
Ställ in maven och Java-sökväg i miljövariabel (för Windows-användare)
Se https://www.guru99.com/maven-jenkins-with-selenium-complete-tutorial.html
https://www.guru99.com/install-java.html
Introduktion till XML och hur man skapar XML-filer
- XML (Extensible Markup Language) -fil i Maven-ramverk innehåller informationen för en eller flera tester och definieras av taggen
. - Testinformation i XML representeras av taggen
och kan innehålla en eller flera TestNG-klasser. - En Java-klass som innehåller @Test- kommentar ovanför testmetoder definieras som TestNG-metoder.
Flera taggar används i en sekvens för att bygga ett fungerande testNG xml som
- Först är taggen
, som har ett logiskt namn som definierar fullständig information för att testNG rapporteras för att generera exekveringsrapport. - För det andra är
, notera att det är logiskt namn som innehåller informationen om testkörningsrapporten som pass, fail, hoppa över testfall och annan information som total tid för exekvering och gruppinformation - Tredje är
, com.group.guru99 är det paket som används och testklassnamn är TC_Class1.
xml version = "1.0" kodning = "UTF-8"?>Svit ">
Vi kommer att använda den här XML för kommande nackdelar för video.
En annan mekanism istället för gruppering är "exkludera" eller "inkludera" i test-XML
Antag att du hittar användningen av komplexa gruppmekanismer, så testNG XML underlättar funktionaliteten för att utesluta / inkludera ett test.
Exclude Tag : Syntax for exclude tagInkludera tagg : Syntax för include-tagg
Obs! Vi kan inkludera / utesluta flera testfall en gång i taget, och det fungerar också med grupper.
Hur man kör kod med XML-fil (videodemo)
Förklaring av Java-koden och XML med gruppen, uteslut och inkludera taggen i XML.
- Scenario : Starta Guru99 demo-bankwebbplats, verifiera få saker på inloggningssidan efter det, ange autentiseringsuppgifter och verifiera några nya saker på programmet när du är inloggad.
Obs! Varje steg som du kodar ska deklareras i separata metoder, men när det körs kommer det att utföras testmetoder beroende på posterna i XML-filen.
Metod 1 : Initiera webbläsaren och starta URL (tc01LaunchURL ())
Metod 2 : Verifiera inloggningssidans rubrik (tc02VerifyLaunchPage ())
Metod 3 : Ange användarnamn och lösenord i inloggningsformuläret (tc03EnterCredentials ())
Metod 4 : Verifiera närvaron av Manager-ID på användardashboard (tc04VerifyLoggedInPage ())
Metod 5 : Verifiera några fler länkar på User DashBoard (tc05VerifyHyperlinks ())
Kod för vårt scenario:
paketet com.group.guru99;importera java.util.concurrent.TimeUnit;importera org.openqa.selenium.By;importera org.openqa.selenium.WebDriver;importera org.openqa.selenium.firefox.FirefoxDriver;importera org.testng.Assert;importera org.testng.annotations.Test;offentlig klass TC_Class1 {offentlig statisk slutlig WebDriver webDriver = ny FirefoxDriver () ;;Sträng 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";final String managerID = "// td [innehåller (text (), 'Manger Id')]";final String newCustomer = "//a [@href='addcustomerpage.php ']", fundTransfer = "//a [@href='FundTransInput.php']";/ *** Detta testfall initialiserar webDriver* /@Test (grupper = {"bonding", "strong_ties"})offentligt ogiltigt tc01LaunchURL () {webDriver.manage (). fönster (). maximera ();webDriver.manage (). timeouts (). implicitlyWait (20, TimeUnit.SECONDS);webDriver.get ("http://www.demo.guru99.com/V4/");}/ *** Kontrollerar närvaron av rubrik på inloggningssidan* /@Test (grupper = {"bonding"})offentligt ogiltigt tc02VerifyLaunchPage () {Assert.assertTrue (webDriver.findElement (By.xpath (launchPageHeading)). Visas (),"Startsida rubrik visas inte");System.out.println ("Rubrik på hemsidan visas");}/ *** Detta testfall kommer att ange användarnamn, lösenord och klicka sedan på* inloggningsknapp* /@Test (grupper = {"bonding", "strong_ties"})offentligt ogiltigt 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)). klicka ();}/ *** Detta testfall kommer att verifiera kryddarens ID-närvaro på DashBoard* /@Test (grupper = {"strong_ties"})offentligt ogiltigt tc04VerifyLoggedInPage () {Assert.assertTrue (webDriver.findElement (By.xpath (managerID)). Visas (),"Manager ID-etikett visas inte");System.out.println ("Manger Id-etikett visas");}/ *** Detta testfall kontrollerar närvaron av länken Ny kund* Och FundTransfer-länk i vänster kanal* /@Test (grupper = {"bonding"})offentligt ogiltigt tc05VerifyHyperlinks () {Assert.assertTrue (webDriver.findElement (By.xpath (newCustomer)). IsEnabled (),"Ny kundhyperlänk visas inte");System.out.println ("Ny kundhyperlänk visas");Assert.assertTrue (webDriver.findElement (By.xpath (fundTransfer)). IsEnabled (),"Fondöverföringslänk visas inte");System.out.println ("Hyperlänk till fondöverföring visas");}}
Observera: Autentiseringsuppgifterna är endast giltiga i 20 dagar, så om du försöker köra kod på din lokala maskin kan du få ett ogiltigt autentiseringsfel. Nedan hittar du stegen för att skapa dina inloggningsuppgifter:
- Starta http://www.demo.guru99.com
- Ange ditt e-post-ID i rutan.
- Klicka på Enter och se dina inloggningsuppgifter på skärmen.
Förklaring av kod:
Som nämnts ovan har vi skapat 5 testfall för att utföra varje åtgärd i oberoende metoder.
Du kan observera att till varje metod har vi associerat en gruppparameter som innehåller något värde i den.
I grund och botten är detta namnet på de differentierande grupperna, dvs. "strong_ties" & "bonding".
- Första och tredje metoden är taggade till "bonding", "strong_ties" vilket innebär att om XML uppdateras i någon av gruppen kommer detta testfall att köras.
- Den andra metoden är bara märkt till "bonding" -gruppen betyder det att om XML uppdateras med bonding group. Endast i så fall kommer detta testfall att köras.
- Fjärde testfallet är taggat till strong_ties-gruppen, vilket innebär att detta testfall bara körs om XML uppdateras med strong_ties-gruppnamnet.
- Sist men inte minst femte testfallet är kopplat till bindningsgruppen, vilket innebär att detta testfall endast körs om XML uppdateras med bindningsgruppens namn.
Så totalt sett har vi fyra scenarier;
- Vi vill köra alla testfall oavsett gruppnamn. I det här fallet tar vi bort grupptaggen från att köra XML.
- Vi vill köra testfall få test som bara är relaterade till någon av grupperna, dvs strong_ties eller bonding
- Var god hänvisa:
- I den här videon kommenteras gruppparametern från att köra XML. Därför ser du att alla testfall utfördes.
- I fortsättning till video, nu har vi inkluderat gruppnamn i XML, du kan bara se testfall som är specifika för den gruppen bara körs.
- Vi använder Exclude-mekanismen för att utesluta testfallet:
- Var god hänvisa
- Du ser att vi har använt utesluta få testfall (tc02) genom att skriva deras namn när de kör XML. I slutresultatet körde de nämnda testfallet inte.
- Slutligen använder vi inkludera testmekanism för att inkludera testfall (tc01LaunchURL, tc03EnterCredentials och tc05VerifyHyperlinks)
- Var god hänvisa
- I den här videon ser du att testfall som nämns i XML endast körs under testkörningen.
Ladda ner kod från den nämnda URL: en, den innehåller alla typer av testXML:
Ladda ner koden ovan
Slutsats
Vi har lärt oss här relativt nytt sätt att köra testfall med XML i Maven-projektet.
Vi började med att ge en kort introduktion om testNG och fortsatte med den fullständiga tekniska specifikationen för grupper, exkludera och inkludera.