TestNG: Hvordan kjøre flere testsuiter i selen

Innholdsfortegnelse:

Anonim

TestNG lar deg kjøre testmetoder, testklasser og testtilfeller parallelt inne i prosjektet. Ved å utføre parallell utførelse kan vi redusere 'utførelsestiden' når tester startes og utføres samtidig i forskjellige tråder.

Her vil vi se hvordan du kjører flere klasser (aka forskjellige suiter) ved hjelp av TestNG.

Trinn 1) Opprette en TestNG.xml-fil for å utføre testen

Følg trinnene nedenfor for å gjøre det.

  1. Lag et nytt prosjekt i formørkelse
  2. Lag to pakker i prosjektene (gi dem navnet com.suite1 og com.suite2)
  3. Lag en klasse i hver pakke (gi dem navnet Flipkart.java og Snapdeal.java) og kopier koden nedenfor i respektive klasser
  4. Opprett en ny fil i prosjektet og gi den navnet testng.xml (Forsikre deg om at du har installert testplugin for formørkelse, instruksjoner tilgjengelig her). Testng.xml inneholder alle konfigurasjoner (klassenavn, testnavn og dressnavn.

Flipkart.java

pakke com.suite1;importere java.util.concurrent.TimeUnit;importer org.openqa.selenium.Alert;importer org.openqa.selenium.By;importer org.openqa.selenium.WebDriver;importer org.openqa.selenium.WebElement;importer org.openqa.selenium.firefox.FirefoxDriver;importer org.openqa.selenium.interactions.Action;importer org.testng.annotations.AfterClass;importer org.testng.annotations.BeforeClass;importer org.testng.annotations.Test;offentlig klasse Flipkart {WebDriver-driver = ny FirefoxDriver ();String brukernavn = ""; // Bytt til brukernavn og passordStrengpassord = "";// Denne metoden er å navigere i flipkart URL@BeforeClassoffentlig ugyldig init () {driver.manage (). vindu (). maksimere ();driver.manage (). timeouts (). implicitWait (60, TimeUnit.SECONDS);driver.navigate (). til ("https://www.flipkart.com");}// For å logge på flipkart@Testoffentlig ugyldig pålogging () {driver.findElement (By.partialLinkText ("Login")). klikk ();driver.findElement (By.cssSelector (". Fk-input.login-form-input.user-email")).sendKeys (brukernavn);driver.findElement (By.cssSelector (". Fk-input.login-form-input.user-pwd")).sendKeys (passord);driver.findElement (By.cssSelector (". submit-btn.login-btn.btn")). klikk ();}// Søk etter produkt@Testpublic void searchAndSelectProduct () {driver.findElement (By.id ("fk-top-search-box")). sendKeys ("moto g3");driver.findElement (By.cssSelector ("search-bar-submit.fk-font-13.fk-font-bold")).klikk ();// velg det første elementet i søkeresultateneStreng css = ".gd-row.browser-grid-row: nth-of-type (1)> div: nth-child (1)> div> div: nth-child (2)> div> a";driver.findElement (By.cssSelector (css)). klikk ();}@Testoffentlig ugyldig buyAndRemoveFromCart () {driver.findElement (By.cssSelector (". Btn-express-checkout.btn-big.current")).klikk ();driver.findElement (By.cssSelector (". remove.fk-inline-block")). klikk ();Varsel a = driver.switchTo (). Varsel ();a.accept ();}@Testoffentlig tomrom utlogging () {Handlinger s = nye handlinger (driver);WebElement bruker = driver.findElement (By.partialLinkText (brukernavn));s.moveToElement (bruker) .build (). utføre ();driver.findElement (By.linkText ("Logout")). klikk ();}@Etter timenoffentlig ugyldig avslutte () {driver.close ();}}

SnapDeal.java

pakke com.suite2;importere java.util.concurrent.TimeUnit;importer org.openqa.selenium.Alert;importer org.openqa.selenium.By;importer org.openqa.selenium.WebDriver;importer org.openqa.selenium.WebElement;importer org.openqa.selenium.firefox.FirefoxDriver;importer org.openqa.selenium.interactions.Action;importer org.testng.annotations.AfterClass;importer org.testng.annotations.BeforeClass;importer org.testng.annotations.Test;offentlig klasse SnapDeal {WebDriver-driver = ny FirefoxDriver ();String brukernavn = ""; // Bytt til brukernavn og passordStrengpassord = "";String pinCode = "";// Denne metoden er å navigere snapdeal URL@BeforeClassoffentlig ugyldig init () {driver.manage (). vindu (). maksimere ();driver.manage (). timeouts (). implicitWait (60, TimeUnit.SECONDS);driver.navigate (). til ("https://www.snapdeal.com");}// For å logge på flipkart@Testoffentlig ugyldig pålogging () {driver.findElement (By.xpath ("// button [text () = 'Login']")). klikk ();driver.switchTo (). ramme ("loginIframe");driver.findElement (By.cssSelector ("div [onClick = 'getLoginForm ()']")).klikk ();driver.findElement (By.id ("j_username")). sendKeys (brukernavn);driver.findElement (By.id ("j_password_login")). sendKeys (passord);driver.findElement (By.id ("signin_submit")). klikk ();driver.switchTo (). defaultContent ();}// Søk etter produkt@Testpublic void searchAndSelectProduct () {driver.findElement (By.cssSelector (". col-xs-20.searchformInput.keyword")).sendKeys ("iphone 6s");driver.findElement (By.cssSelector (". sd-icon.sd-icon-search")). klikk ();// velg det første elementet i søkeresultateneStreng css = ".product_grid_row: nth-of-type (1)> div: nth-child (1)";driver.findElement (By.cssSelector (css)). klikk ();}@Testoffentlig ugyldig buyAndRemoveFromCart () {driver.findElement (By.xpath ("// li [inneholder (tekst (), 'Silver')]")). klikk ();driver.findElement (By.id ("PIN-kode-sjekk")). sendKeys (pinCode);driver.findElement (By.id ("buy-button-id")). klikk ();driver.findElement (By.cssSelector ("i [title = 'Delete Item']")). klikk ();Varsel a = driver.switchTo (). Varsel ();a.accept ();}@Testoffentlig tomrom utlogging () {driver.findElement (By.linkText ("START HANDLING NÅ")). klikk ();Handlinger s = nye handlinger (driver);WebElement-bruker = driver.findElement (By.cssSelector (". Sd-icon.sd-icon-user"));s.moveToElement (bruker) .build (). utføre ();driver.findElement (By.linkText ("Logout")). klikk ();}@Etter timenoffentlig ugyldig avslutte () {driver.close ();}}

TestNg.xml

Endelig prosjektstruktur ser ut som nedenfor,

Trinn 2) Parallell kjøring i TestNG

Etter å ha opprettet xml-fil som vist ovenfor, i neste trinn, vil vi utføre den parallelle testen. Nedenfor er koden.

1) trådtelling : Dette brukes til parallell kjøring, basert på tallskriptet. Den vil kjøres i parallell eller sekvensiell rekkefølge.

2) ordentlig : Den brukes til å logge utføringsdetaljene i konsollen. Verdien skal være 1-10. Loggdetaljene i konsollvinduet blir mer detaljerte og tydeligere når du øker verdien av det detaljerte attributtet i konfigurasjonsfilen testng.xml.

3) navn : Navnet på suiten. Her er det "Gmail Suite"

4) Parallell : For å kjøre skript parallelt, kan verdien være tester / klasser / metoder / suiter. Standardverdien er ingen

Høyreklikk på testng.xml og velg kjør som testing, når du er vellykket, ser du alle resultatene

Når du utfører koden ovenfor, får du følgende utdata.

Produksjon:

1) navnet på suiten gitt i testng.xml

2) navnet på testen gitt i testng.xml

3) navnet på klassen gitt i testng.xml

4) metodenavn kommentert med @Test i .java-fil

På samme måte vil den også utføre testpakke for snap-avtale.

Konklusjon:

Her har vi sett i eksemplet ovenfor, hvordan man bruker Testng til å utføre parallell test. TestNG gir et alternativ for å utføre flere test parallelt i en enkelt konfigurasjonsfil (XML).