TestNG: Kako pokrenuti više testnih paketa u selenu

Sadržaj:

Anonim

TestNG vam omogućuje paralelno pokretanje metoda ispitivanja, klasa ispitivanja i test slučajeva unutar vašeg projekta. Izvođenjem paralelnog izvršavanja možemo smanjiti 'vrijeme izvršenja' jer se testovi istovremeno pokreću i izvršavaju u različitim nitima.

Ovdje ćemo vidjeti kako pokrenuti više klasa (poznatih i kao različiti paketi) pomoću TestNG-a.

Korak 1) Stvaranje datoteke TestNG.xml za izvršavanje testa

Da biste to učinili, slijedite korake u nastavku.

  1. Stvorite novi projekt u pomrčini
  2. Stvorite dva paketa u projektima (nazovite ih com.suite1 i com.suite2)
  3. Stvorite klasu u svakom paketu (nazovite ih Flipkart.java i Snapdeal.java) i kopirajte donji kod u odgovarajuće klase
  4. Stvorite novu datoteku u svom projektu i nazovite je kao testng.xml (provjerite jeste li instalirali dodatak za testiranje za pomrčinu, upute su dostupne ovdje). Testng.xml sadrži sve konfiguracije (imena klasa, imena testova i odijela.

Flipkart.java

paket com.suite1;import 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 {Upravljački program za WebDriver = novi FirefoxDriver ();String korisničko ime = ""; // Promijenite svoje korisničko ime i lozinkuLozinka niza = "";// Ova metoda je kretanje URL-om flipkarta@BeforeClassjavna void init () {driver.manage (). window (). maximize ();driver.manage (). timeouts (). implicitnoWait (60, TimeUnit.SECONDS);driver.navigate (). to ("https://www.flipkart.com");}// Za prijavu flipkart@Testjavna void prijava () {driver.findElement (By.partialLinkText ("Prijava")). click ();driver.findElement (By.cssSelector (". Fk-input.login-form-input.user-email")).sendKeys (korisničko ime);driver.findElement (By.cssSelector (". Fk-input.login-form-input.user-pwd")).sendKeys (lozinka);driver.findElement (By.cssSelector (". submit-btn.login-btn.btn")). click ();}// Traženje proizvoda@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")).klik();// odaberite prvu stavku u rezultatima pretraživanjaNiz 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 praznina buyAndRemoveFromCart () {driver.findElement (By.cssSelector (". Btn-express-checkout.btn-big.current")).klik();driver.findElement (By.cssSelector (". remove.fk-inline-block")). click ();Upozorenje a = driver.switchTo (). Alert ();a.accept ();}@Testjavna void odjava () {Akcije s = nove akcije (pokretački program);WebElement korisnik = driver.findElement (By.partialLinkText (korisničko ime));s.moveToElement (korisnik) .build (). perform ();driver.findElement (By.linkText ("Odjava")). click ();}@Nakon nastaveprestati javna void () {driver.close ();}}

SnapDeal.java

paket com.suite2;import 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;javna klasa SnapDeal {Upravljački program za WebDriver = novi FirefoxDriver ();String korisničko ime = ""; // Promijenite svoje korisničko ime i lozinkuLozinka niza = "";Niz pinCode = "";// Ova metoda je kretanje URL-om za snapdeal@BeforeClassjavna void init () {driver.manage (). window (). maximize ();driver.manage (). timeouts (). implicitnoWait (60, TimeUnit.SECONDS);driver.navigate (). to ("https://www.snapdeal.com");}// Za prijavu flipkart@Testjavna void prijava () {driver.findElement (By.xpath ("// gumb [text () = 'Prijava']")). click ();driver.switchTo (). frame ("loginIframe");driver.findElement (By.cssSelector ("div [onClick = 'getLoginForm ()']")).klik();driver.findElement (By.id ("j_korisničko ime")). sendKeys (korisničko ime);driver.findElement (By.id ("j_password_login")). sendKeys (lozinka);driver.findElement (By.id ("signin_submit")). click ();driver.switchTo (). defaultContent ();}// Traženje proizvoda@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 ();// odaberite prvu stavku u rezultatima pretraživanjaNiz css = ".product_grid_row: nth-of-type (1)> div: nth-child (1)";driver.findElement (By.cssSelector (css)). click ();}@Testjavna praznina buyAndRemoveFromCart () {driver.findElement (By.xpath ("// li [sadrži (tekst (), 'Srebro')]")). klik ();driver.findElement (By.id ("provjera pincode-a")). sendKeys (pinCode);driver.findElement (By.id ("buy-button-id")). click ();driver.findElement (By.cssSelector ("i [title = 'Delete Item']")). click ();Upozorenje a = driver.switchTo (). Alert ();a.accept ();}@Testjavna void odjava () {driver.findElement (By.linkText ("ZAPOČNI KUPOVINU ODMAH")). click ();Akcije s = nove akcije (pokretački program);WebElement korisnik = driver.findElement (By.cssSelector (". Sd-icon.sd-icon-user"));s.moveToElement (korisnik) .build (). perform ();driver.findElement (By.linkText ("Odjava")). click ();}@Nakon nastaveprestati javna void () {driver.close ();}}

TestNg.xml

Konačna struktura projekta izgleda dolje,

Korak 2) Paralelno izvršavanje u TestNG-u

Nakon stvaranja xml datoteke, kao što je prikazano gore, u sljedećem ćemo koraku izvršiti paralelni test. Ispod je kod.

1) count-thread : Koristi se za paralelno izvršavanje, na temelju brojčane skripte. Izvršit će se paralelno ili u slijedu.

2) opširno : Koristi se za bilježenje detalja izvršenja u konzoli. Vrijednost bi trebala biti 1-10. Pojedinosti dnevnika u prozoru konzole postat će detaljnije i jasnije kako povećavate vrijednost detaljnog atributa u konfiguracijskoj datoteci testng.xml.

3) ime : Naziv apartmana. Evo ga "Gmail Suite"

4) Paralelno : za paralelno pokretanje skripti vrijednost može biti testovi / klase / metode / paketi. Zadana vrijednost nije

Desnim klikom kliknite testng.xml i odaberite run as testing, nakon uspjeha vidjet ćete sve rezultate

Kada izvršite gornji kod, dobit ćete sljedeći izlaz.

Izlaz:

1) naziv paketa dato u testng.xml

2) naziv testa naveden u testng.xml

3) naziv klase naveden u testng.xml

4) imena metoda označena s @Test u datoteci .java

Isto tako, izvršit će testni paket i za snap deal.

Zaključak:

Ovdje smo vidjeli u gornjem primjeru, kako koristiti Testng za izvršavanje paralelnog testa. TestNG daje mogućnost izvođenja višestrukih testova paralelno u jednoj konfiguracijskoj datoteci (XML).