TestNG je testovací rámec, který pokrývá různé typy návrhů testů, jako je test jednotek, funkcí, end to end, uživatelské rozhraní a integrace.
Můžete spustit jeden nebo více balíčků (balíček zde znamená zapouzdřit skupinu tříd ve správném formátu ředitele) vytvořením XML a spuštěním přes maven.
V tomto výukovém programu se naučíte
- Skupiny TestNG s příkladem
- Nastavit cestu Maven a Java v proměnné prostředí (pro uživatele systému Windows)
- Úvod do XML a jak vytvářet soubory XML
- Dalším mechanismem namísto seskupení je „vyloučit“ nebo „zahrnout“ do testovacího XML
- Jak spustit kód pomocí souboru XML (ukázka videa)
Skupiny TestNG s příkladem
Skupiny v Testng používáme, když
- Nechceme definovat testovací metody samostatně v různých třídách (v závislosti na funkčnosti) a
- Současně chcete ignorovat (nikoli spustit) některé testovací případy, jako kdyby v kódu neexistovaly.
- Abychom to mohli provést, musíme je seskupit. To se provádí pomocí mechanismů „zahrnout“ a „vyloučit“ podporovaných v testNG.
V níže uvedeném příkladu jsme si ukázali syntaxi způsobu použití skupin v souboru XML.
@Test (groups = {"bonding", "strong_ties"})
Zde používáme 2 názvy skupin, tj. „Bonding“ a „strong_ties“ (jedná se o logický název, který lze změnit podle vašeho přání).
Značka
Přizpůsobte svůj XML tak, aby vybral uvedenou skupinu z testovacích tříd. Níže je uvedena syntaxe toho, jak deklarovat skupiny v souboru XML, např
Předpokládejme tedy, že ve třídě je 10 testovacích metod.
Z nich
- 6 metod je označeno ve skupině „bonding“ a
- 4 jsou ve skupině „strong_ties“
V dalším kroku nastavíme cestu maven / Java a použijeme prostředí Eclipse IDE k předvedení použití skupin pomocí souborů XML v projektu maven založeném na Javě.
Nastavit cestu Maven a Java v proměnné prostředí (pro uživatele systému Windows)
Viz https://www.guru99.com/maven-jenkins-with-selenium-complete-tutorial.html
https://www.guru99.com/install-java.html
Úvod do XML a jak vytvářet soubory XML
- Soubor XML (Extensible Markup Language) v prostředí Maven obsahuje informace o jednom nebo více testech a je definován značkou
. - Informace o testu v XML jsou reprezentovány tagem
a mohou obsahovat jednu nebo více tříd TestNG. - Třída Java, která obsahuje anotaci @Test nad testovacími metodami, je definována jako metody TestNG.
Více značek se používá v sekvenci k vytvoření funkčního testovacího XML xml jako
- První je značka
, která obsahuje logický název, který definuje úplné informace, které má testNG nahlásit za účelem generování zprávy o provedení. - Druhým je
, všimněte si, že je to logický název, který obsahuje informace o protokolu o provedení testu, jako je pass, fail, skip test cases a další informace, jako je celkový čas pro provedení a informace o skupině - Třetí je
, použitý balíček je com.group.guru99 a název testovací třídy je TC_Class1.
xml version = "1.0" encoding = "UTF-8"?>
Tento XML budeme používat pro nadcházející nevýhodu videa.
Dalším mechanismem namísto seskupení je „vyloučit“ nebo „zahrnout“ do testovacího XML
Předpokládejme, že nacházíte využití komplexu skupinových mechanismů, pak testNG XML usnadňuje funkčnost pro vyloučení / zahrnutí testu.
Vyloučit značku : Syntaxe pro vyloučení značkyZahrnout značku : Syntaxe pro zahrnout značku
Poznámka: Můžeme zahrnout / vyloučit několik testovacích případů najednou a funguje to také se Skupinami.
Jak spustit kód pomocí souboru XML (ukázka videa)
Vysvětlení kódu Java a XML se skupinou, vyloučení a zahrnutí značky do XML.
- Scénář : Spusťte demo bankovní web Guru99, po přihlášení ověřte několik věcí na přihlašovací stránce, zadejte přihlašovací údaje a po přihlášení znovu ověřte několik nových věcí v aplikaci.
Poznámka : Každý krok, který kódujete, by měl být deklarován v samostatných metodách, ale po provedení provede testovací metody v závislosti na položkách v souboru XML.
Metoda 1 : Inicializace prohlížeče a spuštění adresy URL (tc01LaunchURL ())
Metoda 2 : Ověření záhlaví přihlašovací stránky (tc02VerifyLaunchPage ())
Metoda 3 : Zadejte uživatelské jméno a heslo do přihlašovacího formuláře (tc03EnterCredentials ())
Metoda 4 : Ověřte přítomnost ID správce na uživatelském panelu (tc04VerifyLoggedInPage ())
Metoda 5 : Ověřte několik dalších odkazů na User DashBoard (tc05VerifyHyperlinks ())
Kód pro náš scénář:
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;veřejná třída TC_Class1 {public static final WebDriver webDriver = nový FirefoxDriver () ;;Řetězec launchPageHeading = "// h3 [text () = 'Guru99 Bank']" ";final String userName_element = "// vstup [@ name = 'uid']", password_element = "// vstup [@ name = 'heslo']",signIn_element = "// vstup [@ name = 'btnLogin']";final String userName_value = "mngr28642", password_value = "ydAnate";final String managerID = "// td [obsahuje (text (), 'ID správce')]";final String newCustomer = "//a[@href='addcustomerpage.php ']", fundTransfer = "//a[@href='FundTransInput.php']";/ *** Tento testovací případ inicializuje webDriver* /@Test (groups = {"bonding", "strong_ties"})public void tc01LaunchURL () {webDriver.manage (). window (). maximize ();webDriver.manage (). timeouts (). implicitlyWait (20, TimeUnit.SECONDS);webDriver.get ("http://www.demo.guru99.com/V4/");}/ *** Zkontroluje přítomnost záhlaví na přihlašovací stránce* /@Test (groups = {"bonding"})public void tc02VerifyLaunchPage () {Assert.assertTrue (webDriver.findElement (By.xpath (launchPageHeading)). IsDisplayed (),"Nadpis domovské stránky se nezobrazí");System.out.println ("Zobrazí se záhlaví domovské stránky");}/ *** Tento testovací případ zadá uživatelské jméno, heslo a poté klikne na* přihlašovací tlačítko* /@Test (groups = {"bonding", "strong_ties"})public void tc03EnterCredentials () {webDriver.findElement (By.xpath (userName_element)). sendKeys (userName_value);webDriver.findElement (By.xpath (heslo_element)). sendKeys (heslo_hodnota);webDriver.findElement (By.xpath (signIn_element)). click ();}/ *** Tento testovací případ ověří přítomnost ID jeslí na DashBoardu* /@Test (groups = {"strong_ties"})public void tc04VerifyLoggedInPage () {Assert.assertTrue (webDriver.findElement (By.xpath (managerID)). IsDisplayed (),"Štítek ID správce se nezobrazí");System.out.println ("Je zobrazen štítek ID správce");}/ *** Tento testovací případ zkontroluje přítomnost odkazu Nový zákazník* A odkaz FundTransfer v levém panelu* /@Test (groups = {"bonding"})public void tc05VerifyHyperlinks () {Assert.assertTrue (webDriver.findElement (By.xpath (newCustomer)). IsEnabled (),"Nový hypertextový odkaz zákazníka se nezobrazí");System.out.println ("Zobrazí se nový hypertextový odkaz zákazníka");Assert.assertTrue (webDriver.findElement (By.xpath (fundTransfer)). IsEnabled (),"Hypertextový odkaz pro převod fondu se nezobrazí");System.out.println ("Je zobrazen hypertextový odkaz na převod fondu");}}
Poznámka: Pověření jsou platná pouze 20 dní, takže pokud se pokoušíte spustit kód na místním počítači, můžete se setkat s chybou neplatných údajů. Níže naleznete kroky pro vygenerování přihlašovacích údajů:
- Spusťte stránku http://www.demo.guru99.com
- Do pole zadejte své e-mailové ID.
- Klikněte na Enter a na obrazovce se zobrazí vaše přihlašovací údaje.
Vysvětlení kódu:
Jak bylo uvedeno výše, vytvořili jsme 5 testovacích případů pro provedení každé akce v nezávislých metodách.
Můžete pozorovat, že ke každé metodě jsme přidružili parametr skupiny, který v sobě drží nějakou hodnotu.
V zásadě se jedná o název rozlišujících skupin, tj. „Strong_ties“ a „bonding“.
- První a třetí metoda jsou označeny jako „bonding“, „strong_ties“, což znamená, že pokud je XML aktualizován v kterékoli skupině, spustí se tento testovací případ.
- Druhá metoda je označena pouze do skupiny „bonding“, to znamená, že pokud je XML aktualizováno pomocí skupiny bonding. Pouze v takovém případě bude spuštěn tento testovací případ.
- Čtvrtý testovací případ je označen skupinou strong_ties, což znamená, že tento testovací případ bude spuštěn, pouze pokud bude XML aktualizován názvem skupiny strong_ties.
- V neposlední řadě je k bondovací skupině připojen pátý testovací případ, což znamená, že tento testovací případ bude spuštěn, pouze pokud bude XML aktualizován s názvem bondovací skupiny.
Celkově tedy máme 4 scénáře;
- Chceme spustit všechny testovací případy bez ohledu na název skupiny. V takovém případě odstraníme skupinu Group ze spuštěného XML.
- Chceme spustit testovací případ několika testů, které se vztahují pouze k jedné ze skupin, tj. Strong_ties nebo bonding
- Viz:
- V tomto videu je parametr Group komentován spuštěním XML. Proto uvidíte, že byly provedeny všechny testovací případy.
- V pokračování k videu, nyní jsme do XML zahrnuli název skupiny, můžete vidět pouze testovací případy specifické pro danou skupinu, která právě běží.
- K vyloučení testovacího případu používáme mechanismus vyloučení:
- Přečtěte si prosím
- Vidíte, že jsme použili vyloučení několika testovacích případů (tc02) zapsáním jejich názvu do spuštěného XML. V konečném výsledku uvedené testovací případy neproběhly.
- Nakonec používáme mechanismus zahrnutí testu k zahrnutí testovacích případů (tc01LaunchURL, tc03EnterCredentials a tc05VerifyHyperlinks)
- Přečtěte si prosím
- V tomto videu uvidíte, že testovací případy, které jsou zmíněny v XML, běží pouze během provádění testu.
Stáhněte si kód ze zmíněné adresy URL, bude obsahovat všechny typy testXML:
Stáhněte si výše uvedený kód
Závěr
Naučili jsme se zde relativně nový způsob spouštění testovacích případů pomocí XML v projektu Maven.
Začali jsme krátkým úvodem na testNG a pokračovali jsme s úplnou technickou specifikací Skupin, vyloučit a zahrnout.