TestNG: Cum să rulați mai multe suite de testare în seleniu

Cuprins:

Anonim

TestNG vă permite să rulați metode de testare, clase de testare și cazuri de testare în paralel în cadrul proiectului dumneavoastră. Prin efectuarea execuției paralele, putem reduce „timpul de execuție” pe măsură ce testele sunt pornite și executate simultan în diferite fire.

Aici vom vedea cum să rulăm mai multe clase (cunoscute și ca suite diferite) folosind TestNG.

Pasul 1) Crearea unui fișier TestNG.xml pentru executarea testului

Pentru a face acest lucru, urmați pașii de mai jos.

  1. Creați un proiect nou în eclipsă
  2. Creați două pachete în proiecte (denumiți-le ca com.suite1 și com.suite2)
  3. Creați o clasă în fiecare pachet (denumiți-le ca Flipkart.java și Snapdeal.java) și copiați codul de mai jos în clasele respective
  4. Creați un fișier nou în proiect și denumiți-l ca testng.xml (Asigurați-vă că ați instalat pluginul de testare pentru eclipsă, instrucțiuni disponibile aici). Testng.xml conține toată configurația (classnames, testnames și suitnames.

Flipkart.java

pachet 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;import org.openqa.selenium.interactions.Actions;import org.testng.annotations.AfterClass;import org.testng.annotations.BeforeClass;import org.testng.annotations.Test;Flipkart public class {Driver WebDriver = nou FirefoxDriver ();String nume de utilizator = ""; // Schimbați numele de utilizator și passwrodParola șir = "";// Această metodă este de a naviga pe URL-ul flipkart@Înainte de curspublic nul init () {driver.manage (). window (). maximize ();driver.manage (). timeouts (). implicit Așteptați (60, TimeUnit.SECONDS);driver.navigate (). to ("https://www.flipkart.com");}// Pentru a vă conecta la flipkart@Testlogin public nul () {) {driver.findElement (By.partialLinkText ("Login")). faceți clic pe ();driver.findElement (By.cssSelector (". Fk-input.login-form-input.user-email")).sendKeys (nume de utilizator);driver.findElement (By.cssSelector (". Fk-input.login-form-input.user-pwd")).sendKeys (parolă);driver.findElement (By.cssSelector (". submit-btn.login-btn.btn")). click ();}// Caută produs@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”)).clic();// selectați primul element din rezultatele căutăriiString 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 ();}@Testpublic void buyAndRemoveFromCart () {driver.findElement (By.cssSelector (". Btn-express-checkout.btn-big.current")).clic();driver.findElement (By.cssSelector (". remove.fk-inline-block")). faceți clic pe ();Alert a = driver.switchTo (). Alert ();a.accept ();}@Testdeconectare publică nulă () {) {Acțiuni s = Acțiuni noi (driver);WebElement user = driver.findElement (By.partialLinkText (nume de utilizator));s.moveToElement (utilizator) .build (). perform ();driver.findElement (By.linkText ("Deconectare")). faceți clic pe ();}@După clasapublic voit quit () {driver.close ();}}

SnapDeal.java

pachet 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;import org.openqa.selenium.interactions.Actions;import org.testng.annotations.AfterClass;import org.testng.annotations.BeforeClass;import org.testng.annotations.Test;clasă publică SnapDeal {Driver WebDriver = nou FirefoxDriver ();String nume de utilizator = ""; // Schimbați numele de utilizator și passwrodParola șir = "";String pinCode = "";// Această metodă este de a naviga URL-ul instantaneu@Înainte de curspublic nul init () {driver.manage (). window (). maximize ();driver.manage (). timeouts (). implicit Așteptați (60, TimeUnit.SECONDS);driver.navigate (). to ("https://www.snapdeal.com");}// Pentru a vă conecta la flipkart@Testlogin public nul () {) {driver.findElement (By.xpath ("// button [text () = 'Login']")). click ();driver.switchTo (). frame ("loginIframe");driver.findElement (By.cssSelector ("div [onClick = 'getLoginForm ()']")).clic();driver.findElement (By.id ("j_username")). sendKeys (nume de utilizator);driver.findElement (By.id ("j_password_login")). sendKeys (parolă);driver.findElement (By.id ("signin_submit")). faceți clic pe ();driver.switchTo (). defaultContent ();}// Caută produs@Testpublic void searchAndSelectProduct () {driver.findElement (By.cssSelector (". col-xs-20.searchformInput.keyword")).sendKeys („iphone 6s”);driver.findElement (By.cssSelector (". sd-icon.sd-icon-search")). faceți clic pe ();// selectați primul element din rezultatele căutăriiString css = ".product_grid_row: nth-of-type (1)> div: nth-child (1)";driver.findElement (By.cssSelector (css)). click ();}@Testpublic void buyAndRemoveFromCart () {driver.findElement (By.xpath ("// li [contains (text (), 'Silver')]")). click ();driver.findElement (By.id ("pincode-check")). sendKeys (pinCode);driver.findElement (By.id ("buy-button-id")). click ();driver.findElement (By.cssSelector ("i [title = 'Delete Item']")). click ();Alert a = driver.switchTo (). Alert ();a.accept ();}@Testdeconectare publică nulă () {) {driver.findElement (By.linkText ("START SHOPPING ACUM")). click ();Acțiuni s = Acțiuni noi (driver);WebElement user = driver.findElement (By.cssSelector (". Sd-icon.sd-icon-user"));s.moveToElement (utilizator) .build (). perform ();driver.findElement (By.linkText ("Deconectare")). faceți clic pe ();}@După clasapublic voit quit () {driver.close ();}}

TestNg.xml

Structura finală a proiectului arată mai jos,

Pasul 2) Execuția paralelă în TestNG

După crearea fișierului XML așa cum se arată mai sus, în pasul următor, vom executa testul paralel. Mai jos este codul.

1) număr de fire : Acesta este utilizat pentru execuția paralelă, pe baza scriptului numeric. Se va executa în ordine paralelă sau secvențială.

2) detaliat : este folosit pentru a înregistra detaliile de execuție în consolă. Valoarea ar trebui să fie 1-10. Detaliile jurnalului din fereastra consolei vor deveni mai detaliate și mai clare pe măsură ce creșteți valoarea atributului detaliat în fișierul de configurare testng.xml.

3) nume : numele suitei. Aici este „Gmail Suite”

4) Paralel : Pentru a rula scripturile în paralel, valoarea poate fi teste / clase / metode / suite. Valoarea implicită este niciuna

Faceți clic dreapta pe testng.xml și selectați rulați ca testare, odată ce ați reușit, veți vedea toate rezultatele

Când executați codul de mai sus, veți obține următoarea ieșire.

Ieșire:

1) numele suitei dat în testng.xml

2) numele testului dat în testng.xml

3) numele clasei date în testng.xml

4) numele metodelor adnotate cu @Test în fișierul .java

De asemenea, va executa suita de testare și pentru tranzacția instantanee.

Concluzie:

Aici am văzut în exemplul de mai sus, cum se folosește Testng pentru a executa test paralel. TestNG oferă o opțiune de a executa mai multe teste în paralel într-un singur fișier de configurare (XML).