TestNG je testovací rámec, ktorý pokrýva rôzne typy testovacích návrhov, ako napríklad testovanie jednotky, funkčnosť, end-to-end, používateľské rozhranie a integrácia.
Môžete spustiť jeden alebo viac balíkov (balík tu znamená zapuzdriť skupinu tried do správneho formátu riaditeľa) vytvorením XML a spustiť ho cez maven.
V tomto návode sa naučíte
- Skupiny TestNG s príkladom
- Nastaviť cestu maven a Java v premennej prostredia (pre Windows)
- Úvod do XML a ako vytvárať súbory XML
- Ďalším mechanizmom namiesto zoskupenia je „vylúčenie“ alebo „zahrnutie“ do testovacieho XML
- Ako spustiť kód pomocou súboru XML (ukážka videa)
Skupiny TestNG s príkladom
Skupiny v Testng používame, keď
- Nechceme definovať testovacie metódy osobitne v rôznych triedach (v závislosti od funkčnosti) a
- Zároveň chcete ignorovať (nevykonávať) niektoré testovacie prípady, akoby v kóde neexistovali.
- Aby sme to mohli uskutočniť, musíme ich zoskupiť. To sa deje pomocou mechanizmov „zahrnúť“ a „vylúčiť“ podporovaných v testNG.
V nasledujúcom príklade sme si ukázali syntax použitia skupín v súbore XML.
@Test (groups = {"bonding", "strong_ties"})
Tu používame 2 názvy skupín, tj. „Bonding“ a „strong_ties“ (jedná sa o logický názov, ktorý je možné zmeniť podľa vášho želania).
Značka
Prispôsobte si svoj XML tak, aby ste z testovacích tried vybrali uvedenú skupinu. Nižšie je uvedená syntax ako deklarovať skupiny v súbore XML, napr
Predpokladajme teda, že v triede je 10 testovacích metód.
Z nich
- 6 metód je označených v skupine „bonding“ a
- 4 sú v skupine „strong_ties“
Ďalej ideme nastaviť cestu maven / Java a pomocou Eclipse IDE demonštrovať použitie skupín pomocou súborov XML v projekte maven založenom na Jave.
Nastaviť cestu maven a Java v premennej prostredia (pre Windows)
Prečítajte si stránku https://www.guru99.com/maven-jenkins-with-selenium-complete-tutorial.html
https://www.guru99.com/install-java.html
Úvod do XML a ako vytvárať súbory XML
- Súbor XML (Extensible Markup Language) v rámci Maven obsahuje informácie o jednom alebo viacerých testoch a je definovaný značkou
. - Informácie o teste v XML sú reprezentované značkou
a môžu obsahovať jednu alebo viac tried TestNG. - Trieda Java, ktorá obsahuje anotáciu @Test nad testovacími metódami, je definovaná ako metódy TestNG.
Na vytvorenie funkčného testovacieho súboru xml ako
- Prvá je značka
, ktorá obsahuje logický názov, ktorý definuje úplné informácie, ktoré má testNG nahlásiť, aby vygeneroval správu o vykonaní. - Druhým je
, všimnite si, že je to logický názov, ktorý obsahuje informácie o správe o vykonaní testu, ako napríklad vyhovenie, neúspech, preskočenie testovacích prípadov a ďalšie informácie, ako napríklad celkový čas vykonania a informácie o skupine - Tretie je
, použitý balík je com.group.guru99 a názov testovacej triedy je TC_Class1.
xml version = "1.0" encoding = "UTF-8"?>
Tento súbor XML použijeme pre prichádzajúce nevýhody videa.
Ďalším mechanizmom namiesto zoskupenia je „vylúčenie“ alebo „zahrnutie“ do testovacieho XML
Predpokladajme, že hľadáte využitie komplexu skupinových mechanizmov potom uľahčí testNG XML funkčnosť na vylúčenie / zahrnutie testu.
Vylúčiť značku : Syntax vylúčenej značkyZahrnúť značku : Syntax zahrnúť značku
Poznámka: Môžeme zahrnúť / vylúčiť viac testovacích prípadov naraz a funguje to aj so Skupinami.
Ako spustiť kód pomocou súboru XML (ukážka videa)
Vysvetlenie kódu Java a XML so skupinou, vylúčenie a zahrnutie značky do XML.
- Scenár : Spustite ukážkovú bankovú stránku Guru99, po prihlásení skontrolujte niekoľko vecí na prihlasovacej stránke, zadajte poverenia a po prihlásení znova overte niekoľko nových vecí v aplikácii.
Poznámka : Každý krok, ktorý kódujete, by mal byť deklarovaný v samostatných metódach, ale po vykonaní vykoná testovacie metódy v závislosti od položiek v súbore XML.
Metóda 1 : Inicializácia prehliadača a spustenie adresy URL (tc01LaunchURL ())
Metóda 2 : Overte nadpis prihlasovacej stránky (tc02VerifyLaunchPage ())
Metóda 3 : Zadajte meno používateľa a heslo do prihlasovacieho formulára (tc03EnterCredentials ())
Metóda 4 : Overenie prítomnosti ID manažéra na užívateľskom paneli (tc04VerifyLoggedInPage ())
Metóda 5 : Overte niekoľko ďalších odkazov na User DashBoard (tc05VerifyHyperlinks ())
Kód pre náš scenár:
balíček 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;verejná trieda TC_Class1 {verejný statický konečný WebDriver webDriver = nový FirefoxDriver () ;;Reťazec launchPageHeading = "// h3 [text () = 'Guru99 Bank']" ";final String userName_element = "// vstup [@ name = 'uid']", password_element = "// vstup [@ name = 'heslo']",signIn_element = "// vstup [@ name = 'btnLogin']";konečný reťazec userName_value = "mngr28642", password_value = "ydAnate";final String managerID = "// td [obsahuje (text (), 'ID manažéra')]" ";final String newCustomer = "//a[@href='addcustomerpage.php ']", fundTransfer = "//a[@href='FundTransInput.php']";/ *** Tento testovací prípad inicializuje webDriver* /@Test (groups = {"bonding", "strong_ties"})public void tc01LaunchURL () {webDriver.manage (). okno (). maximalizovať ();webDriver.manage (). timeouts (). implicitlyWait (20, TimeUnit.SECONDS);webDriver.get ("http://www.demo.guru99.com/V4/");}/ *** Skontroluje prítomnosť nadpisu na prihlasovacej stránke* /@Test (groups = {"bonding"})public void tc02VerifyLaunchPage () {Assert.assertTrue (webDriver.findElement (By.xpath (launchPageHeading)). IsDisplayed (),"Hlavička domovskej stránky sa nezobrazuje");System.out.println ("Je zobrazený nadpis domovskej stránky");}/ *** Tento testovací prípad zadá používateľské meno, heslo a potom klikne na* prihlasovacie tlačidlo* /@Test (groups = {"bonding", "strong_ties"})public void tc03EnterCredentials () {webDriver.findElement (By.xpath (userName_element)). sendKeys (userName_value);webDriver.findElement (By.xpath (heslo_prvok)). sendKeys (heslo_hodnota);webDriver.findElement (By.xpath (signIn_element)). kliknite ();}/ *** Tento testovací prípad overí prítomnosť ID jaslí na DashBoard* /@Test (groups = {"strong_ties"})public void tc04VerifyLoggedInPage () {Assert.assertTrue (webDriver.findElement (By.xpath (managerID)). IsDisplayed (),"Štítok ID manažéra sa nezobrazuje");System.out.println ("Zobrazí sa štítok ID manažéra");}/ *** Tento testovací prípad skontroluje prítomnosť odkazu Nový zákazník* A odkaz FundTransfer v ľavom paneli* /@Test (groups = {"bonding"})public void tc05VerifyHyperlinks () {Assert.assertTrue (webDriver.findElement (By.xpath (newCustomer)). IsEnabled (),"Nový hypertextový odkaz zákazníka sa nezobrazuje");System.out.println ("Zobrazí sa nový hypertextový odkaz zákazníka");Assert.assertTrue (webDriver.findElement (By.xpath (fundTransfer)). IsEnabled (),"Hypertextový odkaz na prevod fondu sa nezobrazuje");System.out.println („Zobrazí sa hypertextový odkaz na prevod fondu“);}}
Poznámka: Prihlasovacie údaje sú platné iba 20 dní, takže ak sa pokúšate spustiť kód na miestnom počítači, mohla by sa vám zobraziť chyba neplatných prihlasovacích údajov. Nižšie uvádzame kroky na vygenerovanie prihlasovacích údajov:
- Spustite stránku http://www.demo.guru99.com
- Do poľa zadajte svoje e-mailové ID.
- Kliknite na Enter a na obrazovke sa zobrazia vaše prihlasovacie údaje.
Vysvetlenie kódu:
Ako už bolo spomenuté vyššie, vytvorili sme 5 testovacích prípadov na vykonávanie každej akcie nezávislými metódami.
Môžete pozorovať, že ku každej metóde sme priradili skupinový parameter, ktorý má v sebe určitú hodnotu.
V zásade ide o názov rozlišujúcich skupín, tj „strong_ties“ a „bonding“.
- Prvá a tretia metóda sú označené ako „bonding“, „strong_ties“, čo znamená, že ak sa v niektorej zo skupín aktualizuje XML, spustí sa tento testovací prípad.
- Druhá metóda je označená iba ako skupina „bonding“, to znamená, že ak je XML aktualizovaný pomocou skupiny bonding. Iba v takom prípade sa spustí tento testovací prípad.
- Štvrtý testovací prípad je označený v skupine strong_ties, čo znamená, že tento testovací prípad sa spustí, iba ak je XML aktualizovaný názvom skupiny strong_ties.
- V neposlednom rade je piaty testovací prípad pripojený k bondovacej skupine, čo znamená, že tento testovací prípad sa spustí, iba ak je XML aktualizovaný názvom bondovacej skupiny.
Celkovo teda máme 4 scenáre;
- Chceme spustiť všetky testovacie prípady bez ohľadu na názov skupiny. V takom prípade odstránime skupinu zo spusteného XML.
- Chceme spustiť testovací prípad niekoľkých testov, ktoré súvisia iba s jednou zo skupín, tj. Strong_ties alebo bonding
- Prosím odkáž:
- V tomto videu je zo spusteného XML komentovaný parameter skupiny. Preto uvidíte všetky vykonané testovacie prípady.
- V pokračovaní videa sme teraz zahrnuli názov skupiny do XML. Môžete vidieť iba testovacie prípady špecifické pre túto spustenú skupinu.
- Na vylúčenie testovacieho prípadu používame mechanizmus vylúčenia:
- Prosím odkáž
- Uvidíte, že sme použili vylúčenie niekoľkých testovacích prípadov (tc02) napísaním ich názvu v spustenom XML. V konečnom výsledku uvedené testovacie prípady nebežali.
- Nakoniec používame mechanizmus zahrnutia testu na zahrnutie testovacích prípadov (tc01LaunchURL, tc03EnterCredentials a tc05VerifyHyperlinks).
- Prosím odkáž
- V tomto videu uvidíte, že testovacie prípady uvedené v XML sa spúšťajú iba počas vykonávania testu.
Stiahnite si kód z uvedenej adresy URL, bude obsahovať všetky typy testXML:
Stiahnite si vyššie uvedený kód
Záver
Naučili sme sa tu relatívne nový spôsob spúšťania testovacích prípadov pomocou XML v projekte Maven.
Začali sme krátkym úvodom do testNG a pokračovali sme v úplnej technickej špecifikácii skupín, vylúčiť a zahrnúť.