TestNG: Hur man kör flera testsviter i selen

Innehållsförteckning:

Anonim

TestNG gör att du kan köra testmetoder, testklasser och testfall parallellt i ditt projekt. Genom att utföra parallell exekvering kan vi minska 'exekveringstiden' när tester startas och utförs samtidigt i olika trådar.

Här kommer vi att se hur man kör flera klasser (aka olika sviter) med TestNG.

Steg 1) Skapa en TestNG.xml-fil för att utföra testet

Följ stegen nedan för att göra det.

  1. Skapa ett nytt projekt i förmörkelse
  2. Skapa två paket i projekten (namnge dem som com.suite1 och com.suite2)
  3. Skapa en klass i varje paket (namnge dem som Flipkart.java och Snapdeal.java) och kopiera nedanstående kod i respektive klasser
  4. Skapa en ny fil i ditt projekt och namnge den som testng.xml (Se till att du har installerat testplugin för förmörkelse, instruktioner finns här). Testng.xml innehåller alla konfigurationer (klassnamn, testnamn och kostymnamn.

Flipkart.java

paket com.suite1;importera java.util.concurrent.TimeUnit;importera org.openqa.selenium.Alert;importera org.openqa.selenium.By;importera org.openqa.selenium.WebDriver;importera org.openqa.selenium.WebElement;importera org.openqa.selenium.firefox.FirefoxDriver;importera org.openqa.selenium.interactions.Actions;importera org.testng.annotations.AfterClass;importera org.testng.annotations.BeforeClass;importera org.testng.annotations.Test;offentlig klass Flipkart {WebDriver-drivrutin = ny FirefoxDriver ();Stränganvändarnamn = ""; // Ändra till ditt användarnamn och lösenordStränglösenord = "";// Denna metod är att navigera i flipkart URL@Innan lektionenoffentligt ogiltigt init () {driver.manage (). fönster (). maximera ();driver.manage (). timeouts (). implicitly Waait (60, TimeUnit.SECONDS);driver.navigate (). till ("https://www.flipkart.com");}// Att logga in blädderblock@Testaoffentlig ogiltig inloggning () {driver.findElement (By.partialLinkText ("Login")). klicka ();driver.findElement (By.cssSelector (". Fk-input.login-form-input.user-email")).sendKeys (användarnamn);driver.findElement (By.cssSelector (". Fk-input.login-form-input.user-pwd")).sendKeys (lösenord);driver.findElement (By.cssSelector (". submit-btn.login-btn.btn")). klicka ();}// Sök efter produkt@Testapublic void searchAndSelectProduct () {driver.findElement (By.id ("fk-top-search-box")). sendKeys ("moto g3");driver.findElement (By.cssSelector ("sökfält-skicka.fk-font-13.fk-font-bold")).klick();// välj det första objektet i sökresultatenSträng 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)). klicka ();}@Testapublic void buyAndRemoveFromCart () {driver.findElement (By.cssSelector (". Btn-express-checkout.btn-big.current")).klick();driver.findElement (By.cssSelector (". remove.fk-inline-block")). klicka ();Varna a = driver.switchTo (). Alert ();a.accept ();}@Testaoffentlig ogiltig utloggning () {Åtgärder s = nya åtgärder (drivrutin);WebElement-användare = driver.findElement (By.partialLinkText (användarnamn));s.moveToElement (användare) .build (). utför ();driver.findElement (By.linkText ("Logout")). klicka ();}@Efter lektionenoffentligt ogiltigt sluta () {driver.close ();}}

SnapDeal.java

paket com.suite2;importera java.util.concurrent.TimeUnit;importera org.openqa.selenium.Alert;importera org.openqa.selenium.By;importera org.openqa.selenium.WebDriver;importera org.openqa.selenium.WebElement;importera org.openqa.selenium.firefox.FirefoxDriver;importera org.openqa.selenium.interactions.Actions;importera org.testng.annotations.AfterClass;importera org.testng.annotations.BeforeClass;importera org.testng.annotations.Test;offentlig klass SnapDeal {WebDriver-drivrutin = ny FirefoxDriver ();Stränganvändarnamn = ""; // Ändra till ditt användarnamn och lösenordStränglösenord = "";String pinCode = "";// Den här metoden är att navigera i snapdeal URL@Innan lektionenoffentligt ogiltigt init () {driver.manage (). fönster (). maximera ();driver.manage (). timeouts (). implicitly Waait (60, TimeUnit.SECONDS);driver.navigate (). till ("https://www.snapdeal.com");}// Att logga in blädderblock@Testaoffentlig ogiltig inloggning () {driver.findElement (By.xpath ("// button [text () = 'Login']")). klicka ();driver.switchTo (). frame ("loginIframe");driver.findElement (By.cssSelector ("div [onClick = 'getLoginForm ()']")).klick();driver.findElement (By.id ("j_username")). sendKeys (användarnamn);driver.findElement (By.id ("j_password_login")). sendKeys (lösenord);driver.findElement (By.id ("signin_submit")). klicka ();driver.switchTo (). defaultContent ();}// Sök efter produkt@Testapublic void searchAndSelectProduct () {driver.findElement (By.cssSelector (". col-xs-20.searchformInput.keyword")).sendKeys ("iphone 6s");driver.findElement (By.cssSelector (". sd-icon.sd-icon-search")). klicka ();// välj det första objektet i sökresultatenSträng css = ".product_grid_row: nth-of-type (1)> div: nth-child (1)";driver.findElement (By.cssSelector (css)). klicka ();}@Testapublic void buyAndRemoveFromCart () {driver.findElement (By.xpath ("// li [innehåller (text ()," Silver ")])). klicka ();driver.findElement (By.id ("pincode-check")). sendKeys (pinCode);driver.findElement (By.id ("köp-knapp-id")). klicka ();driver.findElement (By.cssSelector ("i [title = 'Radera objekt']")). klicka ();Varna a = driver.switchTo (). Alert ();a.accept ();}@Testaoffentlig ogiltig utloggning () {driver.findElement (By.linkText ("Börja handla nu")). klicka på ();Åtgärder s = nya åtgärder (drivrutin);WebElement-användare = driver.findElement (By.cssSelector (". Sd-icon.sd-icon-user"));s.moveToElement (användare) .build (). utför ();driver.findElement (By.linkText ("Logout")). klicka ();}@Efter lektionenoffentligt ogiltigt sluta () {driver.close ();}}

TestNg.xml

Den slutliga projektstrukturen ser ut nedan

Steg 2) Parallell körning i TestNG

Efter att ha skapat xml-fil som visas ovan, i nästa steg, kommer vi att utföra parallelltestet. Nedan är koden.

1) trådräkning : Detta används för parallell körning, baserat på nummerskriptet. Det körs i parallell eller sekventiell ordning.

2) uttömmande : Den används för att logga exekveringsdetaljerna i konsolen. Värdet ska vara 1-10. Loggdetaljerna i konsolfönstret blir mer detaljerade och tydligare när du ökar värdet på det detaljerade attributet i testng.xml-konfigurationsfilen.

3) namn : svitens namn. Här är det "Gmail Suite"

4) Parallell : För att köra skript parallellt kan värdet vara tester / klasser / metoder / sviter. Standardvärdet är inget

Högerklicka på testng.xml och välj kör som testning när du väl har lyckats ser du alla resultat

När du kör koden ovan får du följande utdata.

Produktion:

1) namnet på sviten som anges i testng.xml

2) namnet på testet i testng.xml

3) namnet på klassen som anges i testng.xml

4) metodnamn kommenterade med @Test i .java-fil

På samma sätt kommer det också att köras testpaket för snap deal.

Slutsats:

Här har vi sett i ovanstående exempel hur man använder Testng för att utföra parallelltest. TestNG ger möjlighet att utföra flera test parallellt i en enda konfigurationsfil (XML).