TestNG vam omogoča, da v projektu vzporedno izvajate preskusne metode, preskusne razrede in testne primere. Z vzporednim izvajanjem lahko zmanjšamo 'čas izvajanja', ko se testi zaženejo in izvajajo hkrati v različnih nitih.
Tu bomo videli, kako z TestNG zagnati več razredov (tudi različne suite).
Korak 1) Ustvarjanje datoteke TestNG.xml za izvajanje testa
Za to sledite spodnjim korakom.
- Ustvari nov projekt v mrku
- V projektih ustvarite dva paketa (poimenujte jih kot com.suite1 in com.suite2)
- V vsakem paketu ustvarite razred (poimenujte jih kot Flipkart.java in Snapdeal.java) in v ustrezne razrede kopirajte spodnjo kodo
- Ustvarite novo datoteko v svojem projektu in jo poimenujte kot testng.xml (prepričajte se, da ste namestili vtičnik za preizkušanje eclipse, navodila so na voljo tukaj). Testng.xml vsebuje vse konfiguracije (imena razredov, imena testov in obleke.
Flipkart.java
paket com.suite1;uvoz java.util.concurrent.TimeUnit;import org.openqa.selenium.Alert;uvoz org.openqa.selenium.By;uvoz org.openqa.selenium.WebDriver;uvoz org.openqa.selenium.WebElement;uvoz org.openqa.selenium.firefox.FirefoxDriver;uvoz org.openqa.selenium.interactions.Actions;import org.testng.annotations.AfterClass;import org.testng.annotations.BeforeClass;import org.testng.annotations.Test;javni razred Flipkart {Gonilnik WebDriver = novi FirefoxDriver ();Uporabniško ime niza = ""; // Spremenite svoje uporabniško ime in gesloNiz gesla = "";// Ta metoda je za krmarjenje po URL-ju flipkarta@BeforeClassjavna void init () {driver.manage (). window (). maximize ();driver.manage (). timeouts (). implicitlyWait (60, TimeUnit.SECONDS);driver.navigate (). to ("https://www.flipkart.com");}// Za prijavo flipkart@Testjavna void prijava () {driver.findElement (By.partialLinkText ("Prijava")). click ();driver.findElement (By.cssSelector (". Fk-input.login-form-input.user-email")).sendKeys (uporabniško ime);driver.findElement (By.cssSelector (". Fk-input.login-form-input.user-pwd")).sendKeys (geslo);driver.findElement (By.cssSelector (". submit-btn.login-btn.btn")). click ();}// Iskanje izdelka@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")).click ();// izberemo prvi element v rezultatih iskanjaNiz css = ".gd-row.browse-grid-row: nth-of-type (1)> div: nth-child (1)> div> div: nth-child (2)> div> a";driver.findElement (By.cssSelector (css)). click ();}@Testjavna void buyAndRemoveFromCart () {driver.findElement (By.cssSelector (". Btn-express-checkout.btn-big.current")).click ();driver.findElement (By.cssSelector (". remove.fk-inline-block")). click ();Opozorilo a = driver.switchTo (). Alert ();a.accept ();}@Testjavna odjava iz praznine () {Dejanja s = nova dejanja (gonilnik);WebElement uporabnik = driver.findElement (By.partialLinkText (uporabniško ime));s.moveToElement (uporabnik) .build (). perform ();driver.findElement (By.linkText ("Odjava")). click ();}@Po poukujavni void quit () {driver.close ();}}
SnapDeal.java
paket com.suite2;uvoz java.util.concurrent.TimeUnit;import org.openqa.selenium.Alert;uvoz org.openqa.selenium.By;uvoz org.openqa.selenium.WebDriver;uvoz org.openqa.selenium.WebElement;uvoz org.openqa.selenium.firefox.FirefoxDriver;uvoz org.openqa.selenium.interactions.Actions;import org.testng.annotations.AfterClass;import org.testng.annotations.BeforeClass;import org.testng.annotations.Test;javni razred SnapDeal {Gonilnik WebDriver = novi FirefoxDriver ();Uporabniško ime niza = ""; // Spremenite svoje uporabniško ime in gesloNiz gesla = "";Niz pinCode = "";// Ta metoda je za krmarjenje po URL-ju hitrega iskanja@BeforeClassjavna void init () {driver.manage (). window (). maximize ();driver.manage (). timeouts (). implicitlyWait (60, TimeUnit.SECONDS);driver.navigate (). to ("https://www.snapdeal.com");}// Za prijavo flipkart@Testjavna void prijava () {driver.findElement (By.xpath ("// gumb [text () = 'Prijava']")). click ();driver.switchTo (). frame ("loginIframe");driver.findElement (By.cssSelector ("div [onClick = 'getLoginForm ()']")).click ();driver.findElement (By.id ("j_username")). sendKeys (uporabniško ime);driver.findElement (By.id ("j_password_login")). sendKeys (geslo);driver.findElement (By.id ("signin_submit")). click ();driver.switchTo (). defaultContent ();}// Iskanje izdelka@Testpublic void searchAndSelectProduct () {driver.findElement (By.cssSelector (". col-xs-20.searchformInput.keyword")).sendKeys ("iphone 6s");driver.findElement (By.cssSelector (". sd-icon.sd-icon-search")). click ();// izberemo prvi element v rezultatih iskanjaNiz css = ".product_grid_row: nth-of-type (1)> div: nth-child (1)";driver.findElement (By.cssSelector (css)). click ();}@Testjavna void buyAndRemoveFromCart () {driver.findElement (By.xpath ("// li [vsebuje (besedilo (), 'Srebro')]")). click ();driver.findElement (By.id ("preverjanje pincode")). sendKeys (pinCode);driver.findElement (By.id ("buy-button-id")). click ();driver.findElement (By.cssSelector ("i [title = 'Delete Item']")). click ();Opozorilo a = driver.switchTo (). Alert ();a.accept ();}@Testjavna odjava iz praznine () {driver.findElement (By.linkText ("ZAČNITE NAKUPIRATI ZDAJ")). click ();Dejanja s = nova dejanja (gonilnik);WebElement uporabnik = driver.findElement (By.cssSelector (". Sd-icon.sd-icon-user"));s.moveToElement (uporabnik) .build (). perform ();driver.findElement (By.linkText ("Odjava")). click ();}@Po poukujavni void quit () {driver.close ();}}
TestNg.xml
Končna struktura projekta je videti spodaj,
Korak 2) Vzporedno izvajanje v TestNG
Po ustvarjanju datoteke xml, kot je prikazano zgoraj, bomo v naslednjem koraku izvedli vzporedni test. Spodaj je koda.
1) štetje niti : uporablja se za vzporedno izvajanje na podlagi številskega skripta. Izvajal se bo vzporedno ali zaporedno.
2) podroben : Uporablja se za beleženje podrobnosti o izvedbi v konzoli. Vrednost naj bo 1-10. Podrobnosti dnevnika v oknu konzole bodo podrobnejše in jasnejše, ko povečate vrednost podrobnega atributa v konfiguracijski datoteki testng.xml.
3) ime : Ime apartmaja. Tukaj je "Gmail Suite"
4) Vzporedno : Za vzporedno izvajanje skriptov je vrednost lahko preskusi / razredi / metode / paketi. Privzeta vrednost je nobena
Z desno miškino tipko kliknite testng.xml in izberite zaženi kot testiranje, ko boste uspešni, boste videli vse rezultate
Ko zaženete zgornjo kodo, boste dobili naslednji izhod.
Izhod:
1) ime zbirke, podano v testng.xml
2) ime testa, podano v testng.xml
3) ime razreda, podano v testng.xml
4) imena metod, označena z @Test v datoteki .java
Prav tako bo izvedel testni paket tudi za snap deal.
Zaključek:
Tu smo videli v zgornjem primeru, kako uporabiti Testng za izvedbo vzporednega testa. TestNG daje možnost za izvajanje več preizkusov vzporedno v eni konfiguracijski datoteki (XML).