TestNG: Hogyan lehet több tesztcsomagot futtatni a szelénben

Tartalomjegyzék:

Anonim

A TestNG lehetővé teszi a tesztelési módszerek, tesztosztályok és tesztesetek futtatását párhuzamosan a projekten belül. Párhuzamos végrehajtás révén csökkenthetjük a „végrehajtási időt”, amikor a teszteket egyszerre indítják és hajtják végre különböző szálakban.

Itt megtudhatjuk, hogyan futtatható több osztály (más néven különböző csomag) a TestNG használatával.

1. lépés: TestNG.xml fájl létrehozása a teszt végrehajtásához

Ehhez kövesse az alábbi lépéseket.

  1. Hozzon létre egy új projektet a napfogyatkozásban
  2. Hozzon létre két csomagot a projektekben (nevezze meg őket com.suite1 és com.suite2 néven)
  3. Hozzon létre egy osztályt minden csomagban (nevezze el őket Flipkart.java és Snapdeal.java néven), és másolja az alábbi kódot a megfelelő osztályokba
  4. Hozzon létre egy új fájlt a projektben, és nevezze el a következőnek: testng.xml (Győződjön meg róla, hogy telepítette az eclipse tesztelő plugint, itt elérhető utasítások találhatók). A Testng.xml tartalmazza az összes konfigurációt (osztálynév, tesztnév és illesztési név.

Flipkart.java

csomag com.suite1;importálja a 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;import org.openqa.selenium.interactions.Actions;import org.testng.annotations.AfterClass;import org.testng.annotations.BeforeClass;import org.testng.annotations.Test;nyilvános osztály Flipkart {WebDriver illesztőprogram = new FirefoxDriver ();Karakterlánc felhasználónév = ""; // Váltás a felhasználónévre és a jelszóraKarakterlánc jelszó = "";// Ez a módszer a flipkart URL-ben való navigálásra szolgál@Óra előttpublic void init () {driver.manage (). window (). maximize ();driver.manage (). timeouts (). implicitlyWait (60, TimeUnit.SECONDS);driver.navigate (). to ("https://www.flipkart.com");}// A flipkart bejelentkezéséhez@Tesztpublic void login () {driver.findElement (By.partialLinkText ("Bejelentkezés")). kattintson ();driver.findElement (By.cssSelector (". Fk-input.login-form-input.user-email")).sendKeys (felhasználónév);driver.findElement (By.cssSelector (". Fk-input.login-form-input.user-pwd")).sendKeys (jelszó);driver.findElement (By.cssSelector (". submit-btn.login-btn.btn")). kattintson ();}// Termék keresése@Tesztpublic 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")).kattint ();// válassza ki az első elemet a keresési eredmények közöttKarakterlánc 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)). kattintson ();}@Tesztpublic void buyAndRemoveFromCart () {driver.findElement (By.cssSelector (". Btn-express-checkout.btn-big.current")).kattint ();driver.findElement (By.cssSelector (". remove.fk-inline-block")). kattintson ();Riasztás a = driver.switchTo (). Alert ();a. elfogadja ();}@Tesztpublic void logout () {Műveletek s = új Műveletek (meghajtó);WebElement felhasználó = driver.findElement (By.partialLinkText (felhasználónév));s.moveToElement (user) .build (). perform ();driver.findElement (By.linkText ("Kijelentkezés")). kattintson ();}@Óra utánpublic void quit () {driver.close ();}}

SnapDeal.java

com.suite2 csomag;importálja a 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;import org.openqa.selenium.interactions.Actions;import org.testng.annotations.AfterClass;import org.testng.annotations.BeforeClass;import org.testng.annotations.Test;nyilvános osztály SnapDeal {WebDriver illesztőprogram = new FirefoxDriver ();Karakterlánc felhasználónév = ""; // Váltás a felhasználónévre és a jelszóraKarakterlánc jelszó = "";String pinCode = "";// Ezzel a módszerrel a snapdeal URL-ben kell navigálni@Óra előttpublic void init () {driver.manage (). window (). maximize ();driver.manage (). timeouts (). implicitlyWait (60, TimeUnit.SECONDS);driver.navigate (). to ("https://www.snapdeal.com");}// A flipkart bejelentkezéséhez@Tesztpublic void login () {driver.findElement (By.xpath ("// gomb [text () = 'Bejelentkezés']")). kattintson ();driver.switchTo (). frame ("loginIframe");driver.findElement (By.cssSelector ("div [onClick = 'getLoginForm ()']")).kattint ();driver.findElement (By.id ("j_felhasználónév")). sendKeys (felhasználónév);driver.findElement (By.id ("j_password_login")). sendKeys (jelszó);driver.findElement (By.id ("signin_submit")). kattintson ();driver.switchTo (). defaultContent ();}// Termék keresése@Tesztpublic void searchAndSelectProduct () {driver.findElement (By.cssSelector (". col-xs-20.searchformInput.keyword")).sendKeys ("iphone 6s");driver.findElement (By.cssSelector (". sd-icon.sd-icon-search")). kattintson ();// válassza ki az első elemet a keresési eredmények közöttKaraktersorozat css = ".product_grid_row: n-of-type (1)> div: nth-child (1)";driver.findElement (By.cssSelector (css)). kattintson ();}@Tesztpublic void buyAndRemoveFromCart () {driver.findElement (By.xpath ("// li [tartalmazza (szöveg (), 'Ezüst')]")). kattintson ();driver.findElement (By.id ("PIN-kód-ellenőrzés")). sendKeys (pinCode);driver.findElement (By.id ("buy-button-id")). kattintson ();driver.findElement (By.cssSelector ("i [title = 'Elem törlése']")). kattintson ();Riasztás a = driver.switchTo (). Alert ();a. elfogadja ();}@Tesztpublic void logout () {driver.findElement (By.linkText ("VÁSÁRLÁS INDÍTÁSA MOST")). kattintson ();Műveletek s = új Műveletek (meghajtó);WebElement felhasználó = driver.findElement (By.cssSelector (". Sd-icon.sd-icon-user");s.moveToElement (user) .build (). perform ();driver.findElement (By.linkText ("Kijelentkezés")). kattintson ();}@Óra utánpublic void quit () {driver.close ();}}

TestNg.xml

A projekt végleges szerkezete az alábbiak szerint néz ki,

2. lépés) Párhuzamos végrehajtás a TestNG-ben

Miután létrehoztuk az xml fájlt a fentiek szerint, a következő lépésben végrehajtjuk a párhuzamos tesztet. Az alábbiakban található a kód.

1) thread-count : Ez párhuzamos végrehajtásra szolgál, a számparancsfájl alapján. Párhuzamos vagy egymás utáni sorrendben fog végrehajtani.

2) részletes : A végrehajtás részleteinek naplózására szolgál a konzolon. Az érték legyen 1-10. A konzolablak naplójának részletei részletesebbé és világosabbá válnak, amikor növeli a testng.xml konfigurációs fájlban a részletes attribútum értékét.

3) név : a lakosztály neve. Itt van a "Gmail Suite"

4) Párhuzamos : A szkriptek párhuzamos futtatásához az érték lehet teszt / osztály / módszer / csomag. Az alapértelmezett érték nincs

Kattintson a jobb gombbal a testng.xml fájlra, és válassza a Futtatás tesztelésnek lehetőséget, ha sikeres lesz, megjelenik az összes eredmény

A fenti kód végrehajtásakor a következő kimenetet kapja.

Kimenet:

1) a csomag neve a testng.xml fájlban

2) a teszt neve a testng.xml fájlban

3) a testng.xml fájlban megadott osztály neve

4) a .java fájlban @Test-szel jegyzetelt metódusnevek

Hasonlóképpen, végrehajt egy tesztcsomagot a snap dealhez is.

Következtetés:

Itt láthattuk a fenti példában, hogyan használhatjuk a Testng-t párhuzamos teszt végrehajtására. A TestNG lehetőséget nyújt több teszt párhuzamos végrehajtására egyetlen konfigurációs fájlban (XML).