TestNG ļauj paralēli darbināt testa metodes, testa klases un testa gadījumus projekta ietvaros. Veicot paralēlu izpildi, mēs varam samazināt izpildes laiku, jo testi tiek sākti un izpildīti vienlaikus dažādās pavedienos.
Šeit mēs redzēsim, kā palaist vairākas klases (jeb dažādus komplektus), izmantojot TestNG.
1. solis) TestNG.xml faila izveide testa izpildei
Lai to izdarītu, rīkojieties šādi.
- Izveidojiet jaunu projektu aptumsumā
- Projektos izveidojiet divas paketes (nosauciet tās kā com.suite1 un com.suite2)
- Katrā paketē izveidojiet klasi (nosauciet tās kā Flipkart.java un Snapdeal.java) un kopējiet zemāk esošo kodu attiecīgajās klasēs
- Projektā izveidojiet jaunu failu un nosauciet to kā testng.xml (Pārliecinieties, vai esat instalējis aptumsuma testēšanas spraudni, instrukcijas ir pieejamas šeit). Testng.xml satur visu konfigurāciju (klases, testa un uzvārda nosaukumus.
Flipkart.java
pakete com.suite1;importēt java.util.concurrent.TimeUnit;importēt org.openqa.selenium.Alert;importēt org.openqa.selenium.By;importēt org.openqa.selenium.WebDriver;importēt org.openqa.selenium.WebElement;importēt org.openqa.selenium.firefox.FirefoxDriver;importēt org.openqa.selenium.interactions.Actions;importēt org.testng.annotations.AfterClass;importēt org.testng.annotations.BeforeClass;importēt org.testng.annotations.Test;sabiedrības klase Flipkart {WebDriver draiveris = jauns FirefoxDriver ();Virknes lietotājvārds = ""; // Mainiet savu lietotājvārdu un paroliVirknes parole = "";// Šī metode ir orientēties flipkart URL@BeforeClasspublic void init () {draiveris.pārvaldīt (). logs (). maksimizēt ();driver.manage (). taimauti (). implicitlyWait (60, TimeUnit.SECONDS);draiveris.navigate (). uz ("https://www.flipkart.com");}// Lai pieteiktos flipkart@Pārbaudepublic void login () {driver.findElement (By.partialLinkText ("Pieteikšanās")). noklikšķiniet ();driver.findElement (By.cssSelector (". Fk-input.login-form-input.user-email")).sendKeys (lietotājvārds);driver.findElement (By.cssSelector (". Fk-input.login-form-input.user-pwd")).sendKeys (parole);driver.findElement (By.cssSelector (". Iesniegt-btn.login-btn.btn")). noklikšķiniet ();}// Meklēt produktu@Pārbaudepublic 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")).klikšķis();// atlasiet pirmo vienumu meklēšanas rezultātosVirkne css = ".gd-row.browse-grid-row: n-of-type (1)> div: nth-child (1)> div> div: nth-child (2)> div> a";driver.findElement (By.cssSelector (css)). noklikšķiniet ();}@Pārbaudepublic void buyAndRemoveFromCart () {driver.findElement (By.cssSelector (". Btn-express-checkout.btn-big.current")).klikšķis();driver.findElement (By.cssSelector (". remove.fk-inline-block")). Noklikšķiniet ();Brīdinājums a = driver.switchTo (). Alert ();a. pieņemt ();}@Pārbaudepublic void logout () {Darbības s = jaunas darbības (draiveris);WebElement lietotājs = driver.findElement (By.partialLinkText (lietotājvārds));s.moveToElement (lietotājs) .build (). perform ();driver.findElement (By.linkText ("Iziet")). noklikšķiniet ();}@Pēcstundaspublic void quit () {vadītājs.slēgt ();}}
SnapDeal.java
pakete com.suite2;importēt java.util.concurrent.TimeUnit;importēt org.openqa.selenium.Alert;importēt org.openqa.selenium.By;importēt org.openqa.selenium.WebDriver;importēt org.openqa.selenium.WebElement;importēt org.openqa.selenium.firefox.FirefoxDriver;importēt org.openqa.selenium.interactions.Actions;importēt org.testng.annotations.AfterClass;importēt org.testng.annotations.BeforeClass;importēt org.testng.annotations.Test;publiskā klase SnapDeal {WebDriver draiveris = jauns FirefoxDriver ();Virknes lietotājvārds = ""; // Mainiet savu lietotājvārdu un paroliVirknes parole = "";Virknes pinCode = "";// Šī metode ir paredzēta, lai pārvietotos pa snapdeal URL@BeforeClasspublic void init () {draiveris.pārvaldīt (). logs (). maksimizēt ();driver.manage (). taimauti (). implicitlyWait (60, TimeUnit.SECONDS);driver.navigate (). uz ("https://www.snapdeal.com");}// Lai pieteiktos flipkart@Pārbaudepublic void login () {driver.findElement (By.xpath ("// poga [text () = 'Pieteikšanās']")). noklikšķiniet ();driver.switchTo (). frame ("loginIframe");driver.findElement (By.cssSelector ("div [onClick = 'getLoginForm ()']")).klikšķis();draiveris.findElement (By.id ("j_lietotajvards")). sendKeys (lietotajvards);driver.findElement (By.id ("j_password_login")). sendKeys (parole);driver.findElement (By.id ("signin_submit")). noklikšķiniet ();driver.switchTo (). defaultContent ();}// Meklēt produktu@Pārbaudepublic void searchAndSelectProduct () {driver.findElement (By.cssSelector (". col-xs-20.searchformInput.keyword")).sendKeys ("iphone 6s");driver.findElement (By.cssSelector (". sd-icon.sd-icon-search")). Noklikšķiniet ();// atlasiet pirmo vienumu meklēšanas rezultātosVirkne css = ".product_grid_row: n-of-type (1)> div: nth-child (1)";driver.findElement (By.cssSelector (css)). noklikšķiniet ();}@Pārbaudepublic void buyAndRemoveFromCart () {driver.findElement (By.xpath ("// li [satur (teksts (), 'Sudrabs']]")). noklikšķiniet ();draiveris.findElement (By.id ("PIN koda pārbaude")). sendKeys (pinCode);driver.findElement (By.id ("buy-button-id")). noklikšķiniet ();driver.findElement (By.cssSelector ("i [title = 'Dzēst vienumu']")). noklikšķiniet ();Brīdinājums a = driver.switchTo (). Alert ();a. pieņemt ();}@Pārbaudepublic void logout () {driver.findElement (By.linkText ("SĀKT PIRKT TŪLĪT")). noklikšķiniet ();Darbības s = jaunas darbības (draiveris);WebElement lietotājs = driver.findElement (By.cssSelector (". Sd-icon.sd-icon-user"));s.moveToElement (lietotājs) .build (). perform ();driver.findElement (By.linkText ("Iziet")). noklikšķiniet ();}@Pēcstundaspublic void quit () {vadītājs.slēgt ();}}
TestNg.xml
Galīgā projekta struktūra izskatās zemāk,
2. solis) Paralēla izpilde TestNG
Pēc xml faila izveidošanas, kā parādīts iepriekš, nākamajā solī mēs veiksim paralēlo testu. Zemāk ir kods.
1) pavedienu skaits : to izmanto paralēlai izpildei, pamatojoties uz skaitļu skriptu. Tas tiks izpildīts paralēli vai secīgi.
2) daudzvārdīgs : to izmanto, lai reģistrētu izpildes detaļas konsolē. Vērtībai jābūt 1–10. Žurnāla informācija konsoles logā kļūs detalizētāka un skaidrāka, palielinot daudzveidīgā atribūta vērtību testng.xml konfigurācijas failā.
3) nosaukums : komplekta nosaukums. Šeit tas ir "Gmail Suite"
4) Paralēli : lai skripti darbotos paralēli, vērtība var būt testi / klases / metodes / komplekti. Noklusējuma vērtība nav
Ar peles labo pogu noklikšķiniet uz testng.xml un atlasiet palaist kā testēšanu, kad tas būs veiksmīgs, tiks parādīti visi rezultāti
Izpildot iepriekš minēto kodu, jūs iegūsiet šādu izvadi.
Izeja:
1) komplekta nosaukums, kas norādīts testng.xml
2) testa nosaukums, kas norādīts testng.xml
3) klases nosaukums, kas norādīts testng.xml
4) metožu nosaukumi, kas anotēti ar @Test .java failā
Tāpat tas veiks testēšanas komplektu arī tūlītējam darījumam.
Secinājums:
Šeit mēs iepriekš redzējām piemēru, kā izmantot Testng, lai veiktu paralēlu testu. TestNG dod iespēju vienlaikus veikt vairākus testus vienā konfigurācijas failā (XML).