TestNG: Sådan køres flere testsuiter i selen

Indholdsfortegnelse:

Anonim

TestNG giver dig mulighed for at køre testmetoder, testklasser og testcases parallelt inde i dit projekt. Ved at udføre parallel udførelse kan vi reducere 'udførelsestiden', da test startes og udføres samtidigt i forskellige tråde.

Her vil vi se, hvordan du kører flere klasser (aka forskellige suiter) ved hjælp af TestNG.

Trin 1) Oprettelse af en TestNG.xml-fil til udførelse af test

For at gøre det skal du følge nedenstående trin.

  1. Opret et nyt projekt i formørkelse
  2. Opret to pakker i projekterne (navngiv dem som com.suite1 og com.suite2)
  3. Opret en klasse i hver pakke (navngiv dem som Flipkart.java og Snapdeal.java), og kopier nedenstående kode i de respektive klasser
  4. Opret en ny fil i dit projekt, og navngiv den som testng.xml (Sørg for, at du har installeret test-plugin til formørkelse, instruktioner findes her). Testng.xml indeholder alle konfigurationer (klassenavne, testnavne og suitnames.

Flipkart.java

pakke com.suite1;import java.util.concurrent.TimeUnit;import org.openqa.selenium.Alert;importer org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.firefox.FirefoxDriver;import org.openqa.selenium.interactions.Action;import org.testng.annotations.AfterClass;import org.testng.annotations.BeforeClass;import org.testng.annotations.Test;offentlig klasse Flipkart {WebDriver-driver = ny FirefoxDriver ();String brugernavn = ""; // Skift til dit brugernavn og din passwrodStrengadgangskode = "";// Denne metode er at navigere i flipkart URL@BeforeClassoffentlig ugyldig init () {driver.manage (). vindue (). maksimere ();driver.manage (). timeouts (). implicitWait (60, TimeUnit.SECONDS);driver.navigate (). til ("https://www.flipkart.com");}// At logge på flipkart@Prøveoffentligt ugyldigt login () {driver.findElement (By.partialLinkText ("Login")). klik ();driver.findElement (By.cssSelector (". Fk-input.login-form-input.user-email")).sendKeys (brugernavn);driver.findElement (By.cssSelector (". Fk-input.login-form-input.user-pwd")).sendKeys (adgangskode);driver.findElement (By.cssSelector (". indsende-btn.login-btn.btn")). klik ();}// Søg efter produkt@Prøveoffentlig ugyldig søgningAndSelectProduct () {driver.findElement (By.id ("fk-top-search-box")). sendKeys ("moto g3");driver.findElement (By.cssSelector ("søgefelt-indsende.fk-font-13.fk-font-fed")).klik ();// vælg det første element i søgeresultaterneString 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)). klik ();}@Prøveoffentlig ugyldig buyAndRemoveFromCart () {driver.findElement (By.cssSelector (". Btn-express-checkout.btn-big.current")).klik ();driver.findElement (By.cssSelector (". fjern.fk-inline-blok")). klik ();Alert a = driver.switchTo (). Alarm ();a.accept ();}@Prøveoffentlig ugyldig logout () {Handlinger s = nye handlinger (driver);WebElement-bruger = driver.findElement (By.partialLinkText (brugernavn));s.moveToElement (bruger) .build (). perform ();driver.findElement (By.linkText ("Logout")). klik ();}@Efter skoleoffentlig ugyldig afslut () {driver.close ();}}

SnapDeal.java

pakke com.suite2;import java.util.concurrent.TimeUnit;import org.openqa.selenium.Alert;importer org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.firefox.FirefoxDriver;import org.openqa.selenium.interactions.Action;import org.testng.annotations.AfterClass;import org.testng.annotations.BeforeClass;import org.testng.annotations.Test;offentlig klasse SnapDeal {WebDriver-driver = ny FirefoxDriver ();String brugernavn = ""; // Skift til dit brugernavn og din passwrodStrengadgangskode = "";String pinCode = "";// Denne metode er at navigere snapdeal URL@BeforeClassoffentlig ugyldig init () {driver.manage (). vindue (). maksimere ();driver.manage (). timeouts (). implicitWait (60, TimeUnit.SECONDS);driver.navigate (). til ("https://www.snapdeal.com");}// At logge på flipkart@Prøveoffentligt ugyldigt login () {driver.findElement (By.xpath ("// knap [tekst () = 'Login']")). klik ();driver.switchTo (). frame ("loginIframe");driver.findElement (By.cssSelector ("div [onClick = 'getLoginForm ()']")).klik ();driver.findElement (By.id ("j_username")). sendKeys (brugernavn);driver.findElement (By.id ("j_password_login")). sendKeys (adgangskode);driver.findElement (By.id ("signin_submit")). klik ();driver.switchTo (). defaultContent ();}// Søg efter produkt@Prøveoffentlig ugyldig søgningAndSelectProduct () {driver.findElement (By.cssSelector (". col-xs-20.searchformInput.keyword")).sendKeys ("iphone 6s");driver.findElement (By.cssSelector (". sd-icon.sd-icon-search")). klik ();// vælg det første element i søgeresultaterneString css = ".product_grid_row: nth-of-type (1)> div: nth-child (1)";driver.findElement (By.cssSelector (css)). klik ();}@Prøveoffentlig ugyldig buyAndRemoveFromCart () {driver.findElement (By.xpath ("// li [indeholder (tekst (), 'Sølv')]")). klik ();driver.findElement (By.id ("pinkode-check")). sendKeys (pinCode);driver.findElement (By.id ("buy-button-id")). klik ();driver.findElement (By.cssSelector ("i [title = 'Slet element']")). klik ();Alert a = driver.switchTo (). Alarm ();a.accept ();}@Prøveoffentlig ugyldig logout () {driver.findElement (By.linkText ("START SHOPPING NU")). klik ();Handlinger s = nye handlinger (driver);WebElement-bruger = driver.findElement (By.cssSelector (". Sd-icon.sd-icon-user"));s.moveToElement (bruger) .build (). perform ();driver.findElement (By.linkText ("Logout")). klik ();}@Efter skoleoffentlig ugyldig afslut () {driver.close ();}}

TestNg.xml

Den endelige projektstruktur ser ud som nedenfor,

Trin 2) Parallel udførelse i TestNG

Efter oprettelse af xml-fil som vist ovenfor, i næste trin, udfører vi den parallelle test. Nedenfor er koden.

1) thread-count : Dette bruges til parallel udførelse baseret på nummer scriptet. Det udføres i parallel eller sekventiel rækkefølge.

2) detaljeret : Det bruges til at logge udførelsesdetaljerne i konsollen. Værdien skal være 1-10. Logdetaljerne i konsolvinduet bliver mere detaljerede og klarere, når du øger værdien af ​​den detaljerede attribut i testng.xml-konfigurationsfilen.

3) navn : Suiteens navn. Her er det "Gmail Suite"

4) Parallel : For at køre scripts parallelt kan værdien være tests / klasser / metoder / suiter. Standardværdien er ingen

Højreklik på testng.xml, og vælg kør som test, når en gang er vellykket, kan du se alle resultaterne

Når du udfører ovenstående kode, får du følgende output.

Produktion:

1) navnet på pakken, der er angivet i testng.xml

2) navnet på testen givet i testng.xml

3) navnet på den klasse, der er angivet i testng.xml

4) metodenavne kommenteret med @Test i .java-fil

Ligeledes vil den også udføre testpakke til snap deal.

Konklusion:

Her har vi set i eksemplet ovenfor, hvordan man bruger Testng til at udføre parallel test. TestNG giver mulighed for at udføre flere test parallelt i en enkelt konfigurationsfil (XML).