TestNG – výkonný testovací framework pre Java

Čo je TestNG ?

TestNG je výkonný testovací framework pre Java, ktorý je navrhnutý tak, aby podporoval rôzne typy testov, vrátane unit, funkčných, integračných a end-to-end testov. Poskytuje množstvo funkcií, ktoré uľahčujú a zefektívňujú proces testovania.

TestNG je testovací automatizačný framework pre jazyk Java inšpirovaný JUnit a NUnit s novými úvodnými funkciami, ktoré ho robia výkonnejším a jednoduchším na používanie. NG je skratka pre Next Generation, ktorá označuje nové funkcie, ktoré TestNG prináša. Od jednoduchého unit testovania až po komplexné integrované testovanie je navrhnutý tak, aby zjednodušil všetky tvoje požiadavky na testovanie, ako je funkčné testovanie, regresné testovanie, end-to-end testovanie a ďalšie. Je to open-source a bezplatný nástroj.

Skôr ako sa naučíme používať TestNG, pozrime sa na niektoré výhody používania tohto testovacieho frameworku.

Na čo sa TestNG používa?

  • Na testovanie funkčnosti webovej aplikácie: TestNG sa môže použiť na testovanie toho, či webová aplikácia správne spracováva vstupné dáta, zobrazuje správne informácie a reaguje na akcie používateľov.
  • Na testovanie výkonu mobilnej aplikácie: TestNG sa môže použiť na testovanie toho, ako rýchlo sa mobilná aplikácia spúšťa, ako rýchlo reaguje na používateľské vstupy a ako efektívne využíva zdroje zariadenia.
  • Na testovanie bezpečnosti desktopovej aplikácie: TestNG sa môže použiť na testovanie toho, či desktopová aplikácia je odolná voči útokom, ako je napríklad injekcia SQL alebo cross-site scripting.
  • Na testovanie integrácie cloudových služieb: TestNG sa môže použiť na testovanie toho, či cloudové služby správne komunikujú medzi sebou a či poskytujú správne funkcie.

Výhody TestNG

  • Zjednodušené TestNG anotácie : Anotácie boli zjednodušené, čo uľahčuje testerom ich pochopenie.
  • Výsledky v HTML : Generuje správy v HTML.
  • TestNG paralelné vykonávanie testov : Pomocou balíka TestNG Suite (testing.xml), čo je v podstate súbor xml, môžu testeri vykonávať viacero testovacích prípadov naraz. V tomto súbore xml musia používatelia uviesť počet tried a testovacích prípadov, ktoré chcú vykonať.
  • Spustenie neúspešných testovacích prípadov : TestNG možno použiť aj na spustenie neúspešných testovacích prípadov. Toto je jedna z najdôležitejších výhod TestNG oproti JUnit.
  • Umožňuje zoskupovanie : TestNG podporuje zoskupovanie. Pomocou tejto funkcie môžu testeri zoskupovať testovacie prípady bez väčšej námahy, čo v prípade JUnit nebolo možné.
  • Umožňuje spúšťanie vo viacerých prehliadačoch : TestNG umožňuje testerom vykonávať a spúšťať jeden skript vo viacerých prehliadačoch.
  • Parametrizované testovanie : Väčšinou musia testeri vykonávať veľké množstvo rôznorodých testov, najmä kvôli povahe ich biznis logiky. Tento zdĺhavý proces však možno eliminovať, pretože parametrické testovanie umožňuje spustiť ten istý test niekoľkokrát jednoduchou zmenou hodnôt. Umožňuje ti odovzdávať parametre do testovacích metód dvoma spôsobmi: parameter a @dataprovider.
  • Odovzdaním alebo ignorovaním testovacích prípadov : Táto funkcia je užitočná, ak nechceš vykonať konkrétne testovacie prípady. V takýchto prípadoch ti TestNG pomocou anotácie @Test(enabled = false) umožňuje vypnúť alebo obísť konkrétne testovacie prípady.
  • Reporter class generuje protokoly : V TestNG môžu používatelia pomocou Reporter class zaznamenávať správy pre test. Povedzme, že spúšťaš test-case a chceš zaznamenať súvisiace informácie.
  • Očakávané výnimky : Umožňuje ti sledovať spracovanie výnimiek v kóde. Pri písaní kódu môžu nastať situácie, keď testeri budú chcieť overiť, či sa pri vykonávaní kódu zobrazí výnimka. Táto metóda ti poskytne podrobnosti o výnimkách, ktoré sa očakávajú, že sa budú prezentovať pri danej metóde. Túto metódu použi s anotáciou @Test.
  • Metóda závislá od : TestNG podporuje metódu „dependence“. Závislosť môžeme mať ako atribút metódy, napríklad ak je jedna metóda závislá od inej. Toto napríklad nie je dostupné v JUnit.
  • Priorita testov : Testovacie prípady môžeme vykonávať v určitom poradí. Na dosiahnutie tohto cieľa definujeme poradie v anotácii @Test.

Nevýhody TestNG

  • Krivka učenia: TestNG má pomerne strmú krivku učenia. To znamená, že je potrebné sa naučiť veľa nových konceptov a anotácií, aby si mohol začať písať testy. To môže byť pre začiatočníkov náročné.
  • Komplexita: TestNG je pomerne komplexný testovací framework. To znamená, že existuje veľa možností a konfigurácií, ktoré je možné nastaviť. To môže viesť k ťažkostiam pri údržbe testov, najmä pre začínajúcich testerov.
  • Výkon: TestNG môže byť náročnejší na výkon ako niektoré iné testovacie frameworky. To je spôsobené tým, že TestNG je pomerne komplexný a používa viac zdrojov.
  • Nedostatok dokumentácie: TestNG má niektoré nedostatky v dokumentácii. To môže byť pre začiatočníkov frustrujúce, pretože môže byť ťažké nájsť informácie, ktoré potrebujú.

TestNG dokumentácia

Pokiaľ si chceš o TestNG prečítať viac a zistiť, aké všetky features ponúka, určite si prečítaj aj dokumentáciu na ich oficiálnej stránke.

TestNG tutoriál

Ak nechceš strácať čas s dokumentáciou a chceš vidieť ako sa v TestNG pracuje, pozri si niektorý z nasledujúcich tutoriálov a vyskúšaj si TestNG v praxi.

  1. Javapoint
  2. Tutorialspoint
  3. Toolsqa
  4. YouTube
  5. Testing material
  6. Youtube

Alternatívy k TestNG

  • JUnit je ďalší populárny testovací framework pre Java. Je jednoduchší ako TestNG, ale neposkytuje takú bohatú sadu funkcií. JUnit je dobrou voľbou pre začiatočníkov, ktorí sa chcú naučiť základy testovania.
  • Selenium je testovací framework na automatizáciu webových aplikácií. Môže sa použiť aj na testovanie softvéru, ktorý nie je webovou aplikáciou. Selenium je dobrou voľbou pre testerov, ktorí potrebujú automatizovať testovanie webových aplikácií.
  • Appium je testovací framework na automatizáciu mobilných aplikácií. Appium je dobrou voľbou pre testerov, ktorí potrebujú automatizovať testovanie mobilných aplikácií.
  • Cucumber je testovací framework na automatizáciu testovania softvéru pomocou prirodzeného jazyka. Cucumber je dobrou voľbou pre testerov, ktorí chcú písať testy v prirodzenom jazyku, ktorý je ľahko pochopiteľný.
  • Pytest – Pytest je testovací framework pre Python. Pytest je dobrou voľbou pre testerov, ktorí potrebujú testovací framework pre Python.
  • RubyUnit – RubyUnit je testovací framework pre Ruby. RubyUnit je dobrou voľbou pre testerov, ktorí potrebujú testovací framework pre Ruby.
  • NUnit – NUnit je testovací framework pre C#. NUnit je dobrou voľbou pre testerov, ktorí potrebujú testovací framework pre C#.
  • xUnit – xUnit je testovací framework pre C++. xUnit je dobrou voľbou pre testerov, ktorí potrebujú testovací framework pre C++.

TestNG vs JUNIT

  • TestNG podporuje koncept skupiny, zatiaľ čo JUnit ho nepodporuje.
  • Testovanie parametrov je možné v TestNG, ale v JUnit sa to nedá urobiť.
  • TestNG poskytuje špeciálne anotácie, napríklad @Before/AfterSuite a @Before/AfterTest.
  • V TestNG je možné zmeniť názov metódy. JUnit to však neumožňuje.
  • TestNG podporuje metódu „dependence“. Tá v JUnit nie je k dispozícii.

TestNG vs Maven

  • Maven je nástroj na správu projektov, zatiaľ čo TestNG je testovací framework.
  • Maven sa používa na správu závislostí a cyklu zostavy projektu, zatiaľ čo TestNG sa používa na písanie a vykonávanie testov.
  • Maven je potrebný na spustenie TestNG. TestNG sa dodáva s Maven pluginom, ktorý umožňuje jednoducho spustiť testy z Mavenu.
  • TestNG je možné použiť s Mavenom alebo bez neho. TestNG je možné spustiť aj bez Mavenu, ale je to menej pohodlné.

TestNG vs Selenium

  • Selenium je testovací framework na automatizáciu webových aplikácií, zatiaľ čo TestNG je všeobecný testovací framework.
  • Selenium je navrhnutý špeciálne na automatizáciu webových aplikácií, zatiaľ čo TestNG môže byť použitý na automatizáciu akéhokoľvek typu softvéru.
  • Selenium je možné použiť s TestNG. Existuje niekoľko spôsobov, ako použiť Selenium s TestNG, vrátane použití Selenium WebDriveru s TestNG alebo použitia Selenium Gridu s TestNG.
  • TestNG je k dispozícii pre Java, zatiaľ čo Selenium je k dispozícii pre Java, C#, Python, Ruby a ďalšie.

TestNG vs Cucumber

  • Cucumber je testovací framework primárne používaný pre behavior-driven development (BDD). TestNG je testovací framework pre jazyk Java, navrhnutý na zjednodušenie širokej škály testovacích potrieb, od unit testov po integračné testy.
  • Scenáre v Cucumberi sú napísané v Gherkin syntaxi, ktorá používa kľúčové slová ako Given, When, Then, And a But na popísanie správania v ľudsky čitateľnej forme, zatiaľ čo TestNG používa anotácie v jazyku Java na definovanie testovacích metód, nastavení a procedúr pred a po testoch.
  • Cucumber interpretuje feature súbory a vykonáva scenáre popísané v Gherkin syntaxi. Vykonávanie testov je riadené feature súbormi a príslušnými definíciami krokov, zatiaľ čo TestNG vykonáva testovacie metódy v jazyku Java na základe anotácií.
  • Cucumber typicky generuje HTML alebo JSON reporty, TestNG poskytuje vstavané HTML reporty a integruje sa s ďalšími nástrojmi na reportovanie ako sú ExtentReports a Allure pre podrobné reportovanie testov.
  • Cucumber sa integruje s rôznymi programovacími jazykmi a testovacími frameworkmi (napr. Java s JUnit alebo TestNG, Ruby s RSpec) a  TestNG je taktiež možné integrovať s rôznymi frameworkami, napríklad Eclipse, IntelliJ IDEA a podobne.

Inštalácia TestNG s Eclipse

1. Prejdi do aplikácie Eclipse. Ak ju ešte nemáš, stiahneš si z tejto stránky. Tu nájdeš podrobný návod na inštaláciu Eclipse na Windows.

2. Klikni na položku „Help“ v hornom paneli.

3. Vyber položku „Eclipse Marketplace“.

Inštalácia TestNG s Eclipse

4. V časti Search vyhľadaj „TestNG“.

Inštalácia TestNG s Eclipse

5. Nainštaluj TestNG for Eclipse kliknutím na „Install“.

6. Či sa TestNG správne nainštaloval si môžeš overiť týmto spôsobom: najskôr klikni na „Window“, a potom na možnosť „Preferences“. Zobrazí sa ti toto okno a ak v bočnom paneli vidíš TestNG, inštalácia prebehla úspešne.

Inštalácia TestNG s Eclipse

Záver

TestNG predstavuje výkonný a flexibilný testovací framework pre Java, ktorý je navrhnutý tak, aby podporoval širokú škálu testovacích scenárov od jednoduchých unit testov až po komplexné end-to-end testovanie. S jeho bohatou sadou funkcií, ako sú parametrizované testy, skupinové testovanie a podpora pre viacero testovacích prípadov naraz, TestNG umožňuje efektívne a efektívne testovanie softvéru, čím zvyšuje kvalitu a spoľahlivosť vývojových projektov.

Ak vieš po nemecky a hľadáš si prácu ako IT tester alebo automatizovaný tester, prezri si naše benefity pre zamestnancov a reaguj na najnovšie ponuky práce.

O autorovi

Michaela Kojnoková

Agile Test Engineer

Po štúdiu informatiky na ŽU a TUKE som sa najviac ponorila do oblasti automatizácie testovania. Okrem toho sa venujem tvorbe webov, databázam, dátovej analytike, umelej inteligencii a strojovému učeniu. Mám rada cestovanie, šport a najviac si užívam čas strávený v prírode s mojimi blízkymi. LinkedIn

Daj nám o sebe vedieť