TestNG võimaldab teil oma projektis paralleelselt käivitada testimeetodeid, testiklasse ja testijuhte. Paralleelse täitmise abil saame lühendada 'täitmisaega', kuna teste alustatakse ja täidetakse samaaegselt erinevates lõimedes.
Siin näeme, kuidas käivitada TestNG abil mitu klassi (teise nimega sviiti).
Samm 1) TestNG.xml faili loomine testi täitmiseks
Selleks toimige järgmiselt.
- Looge varjutuses uus projekt
- Looge projektides kaks paketti (nimetage need kui com.suite1 ja com.suite2)
- Looge igasse paketti klass (nimetage neid kui Flipkart.java ja Snapdeal.java) ja kopeerige allolev kood vastavatesse klassidesse
- Looge oma projektis uus fail ja andke sellele nimi testng.xml (Veenduge, et olete installinud varjutuse testimise pistikprogrammi, juhised leiate siit). Testng.xml sisaldab kõiki seadistusi (klassi-, test- ja kohanimed.
Flipkart.java
pakett com.suite1;import java.util.concurrent.TimeUnit;import org.openqa.selenium.Alert;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.firefox.FirefoxDriver;importida org.openqa.selenium.interactions.Actions;import org.testng.annotations.AfterClass;import org.testng.annotations.BeforeClass;import org.testng.annotations.Test;avalik klass Flipkart {WebDriveri draiver = uus FirefoxDriver ();Stringi kasutajanimi = ""; // Muutke oma kasutajanimi ja paroolString parool = "";// Selle meetodi eesmärk on navigeerida URL-is flipkart@BeforeClassavalik tühine init () {draiver.halda (). aken (). maksimeeri ();driver.manage (). timeout (). implicitlyWait (60, TimeUnit.SECONDS);driver.navigate (). to ("https://www.flipkart.com");}// Sisselogimiseks flipkart@Testpublic void login () {driver.findElement (By.partialLinkText ("Logi sisse")). klõpsake ();driver.findElement (By.cssSelector (". Fk-input.login-form-input.user-email")).sendKeys (kasutajanimi);driver.findElement (By.cssSelector (". Fk-input.login-form-input.user-pwd")).SendKeys (parool);driver.findElement (By.cssSelector (". submit-btn.login-btn.btn")). klõpsake ();}// Otsi toodet@Testpublic void searchAndSelectProduct () {driver.findElement (By.id ("fk-top-search-box")). sendKeys ("moto g3");driver.findElement (By.cssSelector ("otsinguriba-esitamine.fk-font-13.fk-font-paks")).klõps ();// vali otsingutulemites esimene üksusString css = ".gd-row.browse-grid-row: n-tüüpi tüüp (1)> div: n-nda laps (1)> div> div: n-nda laps (2)> div> a";driver.findElement (By.cssSelector (css)). klõpsake ();}@Testpublic void buyAndRemoveFromCart () {driver.findElement (By.cssSelector (". Btn-express-checkout.btn-big.current")).klõps ();driver.findElement (By.cssSelector (". remove.fk-inline-block")). klõpsake ();Hoiatus a = driver.switchTo (). Alert ();a. aktsepteeri ();}@Testpublic void logout () {Toimingud s = new Toimingud (draiver);WebElementi kasutaja = driver.findElement (By.partialLinkText (kasutajanimi));s.moveToElement (kasutaja) .build (). perform ();driver.findElement (By.linkText ("Logi välja")). klõpsake ();}@AfterClasspublic void quit () {juht.sule ();}}
SnapDeal.java
pakett com.suite2;import java.util.concurrent.TimeUnit;import org.openqa.selenium.Alert;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.firefox.FirefoxDriver;importida org.openqa.selenium.interactions.Actions;import org.testng.annotations.AfterClass;import org.testng.annotations.BeforeClass;import org.testng.annotations.Test;avalik klass SnapDeal {WebDriveri draiver = uus FirefoxDriver ();Stringi kasutajanimi = ""; // Muutke oma kasutajanimi ja paroolString parool = "";Stringi pinCode = "";// Selle meetodi abil saate navigeerida snapdeal URL-is@BeforeClassavalik tühine init () {draiver.halda (). aken (). maksimeeri ();driver.manage (). timeout (). implicitlyWait (60, TimeUnit.SECONDS);draiver.navigeerige (). saidile ("https://www.snapdeal.com");}// Sisselogimiseks flipkart@Testpublic void login () {driver.findElement (By.xpath ("// nupp [text () = 'Logi sisse']")). klõpsake ();driver.switchTo (). frame ("loginIframe");draiver.findElement (By.cssSelector ("div [onClick = 'getLoginForm ()']")).klõps ();draiver.findElement (By.id ("j_kasutajanimi")). sendKeys (kasutajanimi);driver.findElement (By.id ("j_password_login")). sendKeys (parool);driver.findElement (By.id ("loginin_submit")). klõpsake ();driver.switchTo (). defaultContent ();}// Otsi toodet@Testpublic void searchAndSelectProduct () {driver.findElement (By.cssSelector (". col-xs-20.searchformInput.keyword")).SendKeys ("iphone 6s");driver.findElement (By.cssSelector (". sd-icon.sd-icon-search")). klõpsake ();// vali otsingutulemites esimene üksusString css = ".product_grid_row: n-tüüpi tüüp (1)> div: n-nda laps (1)";driver.findElement (By.cssSelector (css)). klõpsake ();}@Testpublic void buyAndRemoveFromCart () {driver.findElement (By.xpath ("// li [sisaldab (tekst (), 'hõbe')]")). klõpsake ();draiver.findElement (By.id ("PIN-koodi kontroll")). sendKeys (pinCode);driver.findElement (By.id ("buy-button-id")). klõpsake ();draiver.findElement (By.cssSelector ("i [pealkiri = 'Kustuta üksus']")). klõpsake ();Hoiatus a = driver.switchTo (). Alert ();a. aktsepteeri ();}@Testpublic void logout () {draiver.findElement (By.linkText ("HAKKE OSTA KOHE")). klõpsake ();Toimingud s = new Toimingud (draiver);WebElementi kasutaja = driver.findElement (By.cssSelector (". Sd-icon.sd-icon-user"));s.moveToElement (kasutaja) .build (). perform ();driver.findElement (By.linkText ("Logi välja")). klõpsake ();}@AfterClasspublic void quit () {juht.sule ();}}
TestNg.xml
Lõplik projekti struktuur näeb välja nagu allpool,
Samm 2) Paralleelne täitmine TestNG-s
Pärast ülaltoodud xml-faili loomist täidame järgmises etapis paralleeltesti. Allpool on kood.
1) niitide arv : seda kasutatakse paralleelseks täitmiseks, lähtudes numbriskriptist. See käivitatakse paralleelses või järjestikuses järjestuses.
2) paljusõnaline : seda kasutatakse konsooli täitmise üksikasjade logimiseks. Väärtus peaks olema 1–10. Konsooli akna logi üksikasjad muutuvad üksikasjalikumaks ja selgemaks, kui suurendate testng.xml konfiguratsioonifailis oleva atribuudi väärtust.
3) nimi : sviidi nimi. Siin on see "Gmail Suite"
4) Paralleelne : skriptide paralleelseks käitamiseks võib väärtuseks olla testid / klassid / meetodid / komplektid. Vaikeväärtus pole ükski
Paremklõpsake testng.xml ja valige käsk testimiseks, kui olete edukas, näete kõiki tulemusi
Ülaltoodud koodi käivitamisel saate järgmise väljundi.
Väljund:
1) komplekti testng.xml antud komplekti nimi
2) testng.xml toodud testi nimi
3) klassis testng.xml antud klassi nimi
4) meetodi nimed, millele on lisatud .java failis märkused @Test
Samamoodi käivitab see testpaketi ka kiirlepinguteks.
Järeldus:
Siin näeme ülaltoodud näites, kuidas Testng-i kasutada paralleeltesti läbiviimiseks. TestNG annab võimaluse käivitada mitu testi paralleelselt ühes konfiguratsioonifailis (XML).