Gruppi TestNG: Includi, Escludi con esempio - Tutorial sul selenio

Sommario:

Anonim

TestNG è un framework di test che copre diversi tipi di progetti di test come unit, funzionali, end to end, interfaccia utente e test di integrazione.

È possibile eseguire uno o più pacchetti (pacchetto qui significa incapsulare un gruppo di classi in un formato director appropriato) creando XML ed eseguendolo tramite Maven.

In questo tutorial imparerai-

  • Gruppi TestNG con esempio
  • Imposta maven e il percorso Java nella variabile d'ambiente (per utenti Windows)
  • Introduzione a XML e come creare file XML
  • Un altro meccanismo al posto del raggruppamento è "escludi" o "includi" nell'XML di prova
  • Come eseguire il codice utilizzando il file XML (demo video)

Gruppi TestNG con esempio

Usiamo i gruppi in Testng quando,

  • Non vogliamo definire i metodi di test separatamente in classi diverse (a seconda della funzionalità) e
  • Allo stesso tempo si desidera ignorare (non eseguire) alcuni casi di test come se non esistessero nel codice.
  • Quindi per farlo dobbiamo raggrupparli. Questo viene fatto usando i meccanismi "include" ed "exclude" supportati in testNG.

Nell'esempio seguente, abbiamo mostrato la sintassi di come utilizzare i gruppi nel file XML.

@Test (gruppi = {"bonding", "strong_ties"}) 

Qui stiamo usando 2 nomi di gruppo cioè "bonding" e "strong_ties" (questi sono nomi logici che possono essere modificati secondo il tuo desiderio).

Il tag definisce l'inizio dei gruppi in XML.

Personalizza il tuo XML per scegliere il gruppo menzionato dalle classi di test. Di seguito è menzionata la sintassi di come dichiarare i gruppi nel file XML, ad es

Quindi, supponiamo che ci siano 10 metodi di test in una classe.

Fuori di loro

  • 6 metodi sono contrassegnati nel gruppo "bonding" e
  • 4 sono nel gruppo "strong_ties"

Andando avanti, imposteremo il percorso maven / Java e utilizzeremo l'IDE Eclipse per dimostrare l'utilizzo di gruppi utilizzando file XML nel progetto maven basato su Java.

Imposta maven e il percorso Java nella variabile d'ambiente (per utenti Windows)

Fare riferimento a https://www.guru99.com/maven-jenkins-with-selenium-complete-tutorial.html

https://www.guru99.com/install-java.html

Introduzione a XML e come creare file XML

  • Il file XML (Extensible Markup Language) nel framework Maven contiene le informazioni di uno o più test ed è definito dal tag .
  • Le informazioni sui test in XML sono rappresentate dal tag e possono contenere una o più classi TestNG.
  • Una classe Java che contiene l' annotazione @Test sopra i metodi di test è definita come metodi TestNG.

Più tag vengono utilizzati in sequenza per creare un xml testNG funzionante come , e

  • Il primo è il tag , che contiene un nome logico che definisce le informazioni complete per testNG segnalato per generare il report di esecuzione.
  • Il secondo è , nota che è il nome logico che contiene le informazioni del rapporto sull'esecuzione del test come superato, fallito, salta casi di test e altre informazioni come il tempo totale per l'esecuzione e le informazioni sul gruppo
  • Il terzo è , com.group.guru99 è il pacchetto utilizzato e il nome della classe di test è TC_Class1.

Useremo questo XML per l'imminente svantaggio del video.

Un altro meccanismo al posto del raggruppamento è "escludi" o "includi" nell'XML di prova

Supponiamo che tu stia trovando l'uso del meccanismo di gruppo complesso, quindi testNG XML facilita la funzionalità per escludere / includere un test.

Escludi tag : sintassi per il tag di esclusione  Includi tag : sintassi per il tag di inclusione 

Nota: possiamo includere / escludere più casi di test una volta alla volta e funziona anche con i gruppi.

Come eseguire il codice utilizzando il file XML (demo video)

Spiegazione del codice Java e XML con il gruppo, esclusione e inclusione del tag in XML.

  • Scenario : Avvia il sito demo di Guru99 Banking, verifica poche cose nella pagina di accesso, dopodiché inserisci le credenziali e verifica nuovamente alcune nuove cose sull'applicazione quando sei connesso.

Nota : ogni passaggio che si codifica deve essere dichiarato in metodi separati, ma una volta eseguito, eseguirà metodi di test a seconda delle voci nel file XML.

Metodo 1 : inizializza il browser e avvia l'URL (tc01LaunchURL ())

Metodo 2 : verifica dell'intestazione della pagina di accesso (tc02VerifyLaunchPage ())

Metodo 3 : immettere nome utente e password nel modulo di accesso (tc03EnterCredentials ())

Metodo 4 : verificare la presenza dell'ID gestore sulla dashboard utente (tc04VerifyLoggedInPage ())

Metodo 5 : verifica altri collegamenti sulla dashboard utente (tc05VerifyHyperlinks ())

Codice per il nostro scenario:

pacchetto 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 {pubblico statico finale WebDriver webDriver = nuovo FirefoxDriver () ;;String launchPageHeading = "// h3 [text () = 'Guru99 Bank']";stringa finale userName_element = "// input [@ name = 'uid']", password_element = "// input [@ name = 'password']",signIn_element = "// input [@ name = 'btnLogin']";stringa finale userName_value = "mngr28642", password_value = "ydAnate";final String managerID = "// td [contains (text (), 'Manger Id')]";stringa finale newCustomer = "//a[@href='addcustomerpage.php ']", fundTransfer = "//a[@href='FundTransInput.php']";/ *** Questo test case inizializzerà webDriver* /@Test (gruppi = {"bonding", "strong_ties"})public void tc01LaunchURL () {webDriver.manage (). window (). maxim ();webDriver.manage (). timeouts (). implicitlyWait (20, TimeUnit.SECONDS);webDriver.get ("http://www.demo.guru99.com/V4/");}/ *** Verrà verificata la presenza del titolo nella pagina di accesso* /@Test (gruppi = {"bonding"})public void tc02VerifyLaunchPage () {Assert.assertTrue (webDriver.findElement (By.xpath (launchPageHeading)). IsDisplayed (),"L'intestazione della home page non viene visualizzata");System.out.println ("Viene visualizzata l'intestazione della home page");}/ *** Questo caso di test inserirà il nome utente, la password e quindi farà clic su* pulsante di accesso* /@Test (gruppi = {"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 ();}/ *** Questo caso di test verificherà la presenza dell'ID del gestore su DashBoard* /@Test (gruppi = {"strong_ties"})public void tc04VerifyLoggedInPage () {Assert.assertTrue (webDriver.findElement (By.xpath (managerID)). IsDisplayed (),"L'etichetta ID gestore non viene visualizzata");System.out.println ("Viene visualizzata l'etichetta dell'ID del gestore");}/ *** Questo caso di test verificherà la presenza del collegamento Nuovo cliente* E link FundTransfer nel pannello di sinistra* /@Test (gruppi = {"bonding"})public void tc05VerifyHyperlinks () {Assert.assertTrue (webDriver.findElement (By.xpath (newCustomer)). IsEnabled (),"Il collegamento ipertestuale del nuovo cliente non viene visualizzato");System.out.println ("Viene visualizzato il nuovo collegamento ipertestuale del cliente");Assert.assertTrue (webDriver.findElement (By.xpath (fundTransfer)). IsEnabled (),"Il collegamento ipertestuale per il trasferimento di fondi non viene visualizzato");System.out.println ("Viene visualizzato il collegamento ipertestuale per il trasferimento di fondi");}}

Nota: le credenziali sono valide solo per 20 giorni, quindi se stai tentando di eseguire codice sul tuo computer locale, potresti incontrare un errore di credenziali non valide. Di seguito sono riportati i passaggi per generare le credenziali di accesso:

  1. Avvia http://www.demo.guru99.com
  2. Inserisci il tuo ID e-mail nella casella.
  3. Fare clic su Invio e visualizzare i dettagli di accesso sullo schermo.

Spiegazione del codice:

Come accennato in precedenza, abbiamo creato 5 casi di test per eseguire ciascuna azione in metodi indipendenti.

Puoi osservare che ad ogni metodo abbiamo associato un parametro di gruppo che contiene un valore in esso.

Fondamentalmente, questi sono i nomi dei gruppi di differenziazione cioè "strong_ties" e "bonding".

  • Il primo e il terzo metodo sono contrassegnati come "bonding", "strong_ties", il che significa che se XML viene aggiornato in uno qualsiasi dei gruppi, verrà eseguito questo test case.
  • Il secondo metodo è etichettato solo nel gruppo "bonding", significa che se XML viene aggiornato con il gruppo bonding. Solo in questo caso verrà eseguito questo test case.
  • Il quarto caso di test è contrassegnato con il gruppo strong_ties, il che significa che questo caso di test verrà eseguito solo se XML viene aggiornato con il nome del gruppo strong_ties.
  • L'ultimo ma non meno importante quinto test case è allegato al gruppo di bonding, il che significa che questo test case verrà eseguito solo se XML viene aggiornato con il nome del gruppo di bonding.

Quindi, nel complesso, abbiamo 4 scenari;

  1. Vogliamo eseguire tutti i casi di test indipendentemente dal nome del gruppo. In questo caso, rimuoveremo il tag di gruppo dall'esecuzione di XML.
  1. Vogliamo eseguire casi di test pochi test che sono correlati solo a uno dei gruppi, cioè strong_ties o bonding
  • Per favore, riferisci:

  • In questo video, il parametro Group viene commentato dall'esecuzione di XML. Quindi, vedrai che tutti i casi di test sono stati eseguiti.
  • In seguito al video, ora abbiamo incluso il nome del gruppo in XML, puoi vedere solo i casi di test specifici per quel gruppo che è solo in esecuzione.
  1. Stiamo utilizzando il meccanismo di esclusione per escludere lo scenario di test:
  • Per favore, riferisci

  • Come puoi vedere, abbiamo utilizzato l'esclusione di pochi casi di test (tc02) scrivendo il loro nome nell'XML in esecuzione. Nel risultato finale i casi di test menzionati non sono stati eseguiti.
  1. Infine, stiamo usando il meccanismo di inclusione per includere i casi di test (tc01LaunchURL, tc03EnterCredentials e tc05VerifyHyperlinks)
    • Per favore, riferisci

    • In questo video, vedrai che i casi di test menzionati in XML vengono eseguiti solo durante l'esecuzione del test.

    Si prega di scaricare il codice dall'URL menzionato, conterrà tutti i tipi di testXML:

    Scarica il codice sopra

    Conclusione

    Abbiamo imparato qui un modo relativamente nuovo per eseguire casi di test utilizzando XML nel progetto Maven.

    Abbiamo iniziato fornendo una breve introduzione su testNG e continuato con le specifiche tecniche complete di Gruppi, escludi e includi.