Grupe u TestNG
TestNG je okvir za testiranje koji pokriva različite vrste dizajna testova kao što su jedinični, funkcionalni, end-to-end testovi, UI i integracijski testovi.
Možete pokrenuti jedan ili više paketa (paket ovdje znači enkapsulirati grupu klasa u odgovarajućem formatu direktorija) stvaranjem XML-a i njegovim pokretanjem kroz maven.
TestNG Grupe s primjerom
Koristimo grupe u Testng kada,
- Ne želimo zasebno definirati metode ispitivanja u različitim klasama (ovisno o funkcionalnosti) i
- U isto vrijeme želite ignorirati (ne izvršiti) neke testne slučajeve kao da ne postoje u kodu.
- Da bismo ovo izveli, moramo ih grupirati. To se postiže pomoću mehanizama "uključi" i "isključi" podržanih u testNG-u.
U donjem primjeru pokazali smo sintaksu korištenja grupa u XML datoteci.
@Test (groups = { "bonding", "strong_ties" })
Ovdje koristimo 2 naziva grupa, tj. “bonding” i “strong_ties” (ovo su logični nazivi koji se mogu mijenjati prema vašoj želji).
<groups> oznaka definira početak grupa u XML-u.
Prilagodite svoj XML kako biste odabrali spomenutu grupu iz ispitnih klasa. Dolje je navedena sintaksa kako deklarirati grupe u XML datoteci, npr
<groups>
<run>
<include name="bonding" />
</run>
</groups>
Dakle, pretpostavimo da postoji 10 ispitnih metoda u klasi.
Od njih,
- 6 metoda je označeno u grupi "vezivanja" i
- 4 su u skupini "snažne veze".
Idemo naprijed, postavit ćemo maven/Java put i koristiti Eclipse IDE za demonstraciju upotrebe grupa pomoću XML datoteka u Java temeljen maven projekt.
Stvorite XML za TestNG s oznakama
- XML (Extensible Markup Language) datoteka u okviru Maven sadrži informacije jednog ili više testova i definirana je označiti.
- Testne informacije u XML-u predstavljene su sa označiti a može sadržavati jedan ili više TestNG klase.
- A Java klasa koja sadrži @Test anotacija iznad ispitnih metoda definirana je kao TestNG metode.
Višestruke oznake koriste se u slijedu za izradu radnog testNG xml-a , i
- Prvo je oznaku, koja sadrži logično ime koje definira punu informaciju za testNG prijavljenu za generiranje izvješća o izvršenju.
- Drugo je , imajte na umu da je to logično ime koje sadrži informacije o izvješću o izvršenju testa kao što su prolaznost, neuspjeh, preskakanje testnih slučajeva i druge informacije kao što je ukupno vrijeme za izvršenje i informacije o grupi
- Treće jecom.group.guru99.TC_Class1” />, com.group.guru99 je paket koji se koristi, a naziv testne klase je TC_Class1.
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite">
<test name="Guru 99 Smoke Test Demo">
<groups>
<run>
<include name="strong_ties" />
</run>
</groups>
<classes>
<class name="com.group.guru99.TC_Class1" />
</classes>
</test>
</suite>
Koristit ćemo ovaj XML za nadolazeći video dat u odjeljcima ispod.
"isključi" ili "uključi" u testni XML
Pretpostavimo da smatrate da je uporaba grupnog mehanizma složena, a zatim testNG XML olakšava funkcionalnost isključivanja/uključivanja testa.
Exclude Tag: Syntax for exclude tag <exclude name="${TEST_CASE_NAME}" />
Include Tag: Syntax for include tag <include name="${TEST_CASE_NAME}" />
Bilješka: Možemo uključiti/isključiti više testnih slučajeva odjednom, što također funkcionira s Grupama.
trčanje TestNG Grupiraj, uključi, isključi kod (video demo)
Objašnjenje za Java Kod i XML s grupirati, isključiti i uključiti oznaku u XML-u.
Testni scenarij: Pokrenite Guru99 demo bankarsku stranicu, nakon toga provjerite nekoliko stvari na stranici za prijavu, unesite vjerodajnice i ponovno provjerite nekoliko novih stvari u aplikaciji kada ste prijavljeni.
Bilješka: Svaki korak koji kodirate trebao bi biti deklariran u zasebnim metodama, ali kada se izvrši, izvršit će testne metode ovisno o unosima u XML datoteci.
- Metoda 1: Inicijalizirajte preglednik i pokrenite URL (tc01LaunchURL())
- Metoda 2: Provjerite naslov stranice za prijavu (tc02VerifyLaunchPage())
- Metoda 3: Unesite korisničko ime i lozinku na obrazac za prijavu (tc03EnterCredentials())
- Metoda 4: Provjerite prisutnost ID-a upravitelja na korisničkoj nadzornoj ploči (tc04VerifyLoggedInPage())
- Metoda 5: Provjerite još nekoliko veza na korisničkoj nadzornoj ploči (tc05VerifyHyperlinks())
Kod za naš scenarij:
package com.group.guru99;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.annotations.Test;
public class TC_Class1 {
public static final WebDriver webDriver = new FirefoxDriver();;
String launchPageHeading = "//h3[text()='Guru99 Bank']";
final String userName_element = "//input[@name='uid']", password_element = "//input[@name='password']",
signIn_element = "//input[@name='btnLogin']";
final String userName_value = "mngr28642", password_value = "ydAnate";
final String managerID = "//td[contains(text(),'Manger Id')]";
final String newCustomer = "//a[@href='addcustomerpage.php']", fundTransfer = "//a[@href='FundTransInput.php']";
/**
* This test case will initialize the webDriver
*/
@Test(groups = { "bonding", "strong_ties" })
public void tc01LaunchURL() {
webDriver.manage().window().maximize();
webDriver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
webDriver.get("https://www.demo.guru99.com/V4/");
}
/**
* Will check the presence of Heading on Login Page
*/
@Test(groups = { "bonding" })
public void tc02VerifyLaunchPage() {
Assert.assertTrue(webDriver.findElement(By.xpath(launchPageHeading)).isDisplayed(),
"Home Page heading is not displayed");
System.out.println("Home Page heading is displayed");
}
/**
* This test case will enter User name, password and will then click on
* signIn button
*/
@Test(groups = { "bonding", "strong_ties" })
public void tc03EnterCredentials() {
webDriver.findElement(By.xpath(userName_element)).sendKeys(userName_value);
webDriver.findElement(By.xpath(password_element)).sendKeys(password_value);
webDriver.findElement(By.xpath(signIn_element)).click();
}
/**
* This test case will verify manger's ID presence on DashBoard
*/
@Test(groups = { "strong_ties" })
public void tc04VerifyLoggedInPage() {
Assert.assertTrue(webDriver.findElement(By.xpath(managerID)).isDisplayed(),
"Manager ID label is not displayed");
System.out.println("Manger Id label is displayed");
}
/**
* This test case will check the presence of presence of New customer link
* And FundTransfer link in Left pannel
*/
@Test(groups = { "bonding" })
public void tc05VerifyHyperlinks() {
Assert.assertTrue(webDriver.findElement(By.xpath(newCustomer)).isEnabled(),
"New customer hyperlink is not displayed");
System.out.println("New customer hyperlink is displayed");
Assert.assertTrue(webDriver.findElement(By.xpath(fundTransfer)).isEnabled(),
"Fund Transfer hyperlink is not displayed");
System.out.println("Fund Transfer hyperlink is displayed");
}
}
Imajte na umu: vjerodajnice vrijede samo 20 dana, pa ako pokušate pokrenuti kod na svom lokalnom računalu, mogli biste se suočiti s pogreškom nevažećih vjerodajnica.
Objašnjenje koda:
Kao što je gore spomenuto, stvorili smo 5 testnih slučajeva za izvođenje svake akcije u neovisnim metodama.
Za svaku metodu smo pridružili parametar grupe s nekom vrijednošću.
Uglavnom, ovo su nazivi skupina koje se razlikuju, tj. "jake_veze" i "veze".
- Prva i treća metoda označene su kao "bonding", "strong_ties", što znači da ako se XML ažurira u bilo kojoj skupini, ovaj Testni slučaj će trčati.
- Druga metoda označena je samo grupom za povezivanje, to znači da ako je XML ažuriran grupom za povezivanje. Samo u tom slučaju ovaj test će se pokrenuti.
- Četvrti testni slučaj označen je grupom strong_ties, što znači da će se ovaj testni slučaj pokrenuti samo ako se XML ažurira s nazivom grupe strong_ties.
- Posljednji, ali ne i najmanje važan, peti testni slučaj pridružen je grupi za povezivanje, što znači da će se ovaj testni slučaj pokrenuti samo ako se XML ažurira s nazivom grupe za povezivanje.
Sve u svemu, imamo 4 scenarija;
Scenarij 1: Želimo pokrenuti sve testne slučajeve bez obzira na naziv grupe. U ovom slučaju ćemo ukloniti oznaku grupe iz pokretanja XML-a.
Scenarij 2: Želimo provesti nekoliko testova koji su povezani samo s bilo kojom od grupa, tj. jake veze ili povezanost. Molimo obratite se:
- U ovom videu, parametar grupe je komentiran iz pokretanja XML-a. Dakle, vidjet ćete da su svi testni slučajevi izvršeni.
- U nastavku videa, sada smo uključili naziv grupe u XML, možete vidjeti samo testne slučajeve specifične za tu grupu koja se izvodi.
Scenarij 3: Za isključivanje testnog slučaja koristimo mehanizam za isključivanje. Pogledajte video
- Vidite da smo upotrijebili isključivanje nekoliko testnih slučajeva (tc02) pisanjem njihovog imena u pokrenuti XML. U konačnom rezultatu, spomenuti test slučajevi nisu pokrenuti.
Scenarij 4: Na kraju, koristimo mehanizam za uključivanje testa za uključivanje testnih slučajeva (tc01LaunchURL, tc03EnterCredentials i tc05VerifyHyperlinks). Pogledajte video
U ovom videu vidjet ćete da se testni slučajevi koji se spominju u XML-u izvode samo tijekom izvođenja testa.
Preuzmite kôd iz koda za gornji primjer-
Zaključak
Ovdje smo naučili relativno nov način pokretanja testnih slučajeva koristeći XML u projektu Maven.
Započeli smo pružanjem kratkog uvoda u testNG i nastavili s potpunom tehničkom specifikacijom grupa, isključivanja i uključivanja.

