how use testng framework
Negli ultimi tutorial, abbiamo fatto luce sui comandi WebDriver di base e comunemente usati. Abbiamo anche appreso le strategie di localizzazione degli elementi dell'interfaccia utente e la loro inclusione negli script di test. E quindi, abbiamo sviluppato il nostro primo WebDriver Automation Test Script .
Andando avanti con questo tutorial, discuteremo tutto su TestNG, le sue caratteristiche e le sue applicazioni.
TestNG è un framework avanzato progettato in modo da sfruttare i vantaggi sia degli sviluppatori che dei tester. Per le persone che già utilizzano JUnit, TestNG non sembrerebbe diverso con alcune funzionalità avanzate. Con l'inizio dei framework, JUnit ha guadagnato un enorme popolarità tra le applicazioni Java, sviluppatori Java e tester Java, con un notevole aumento della qualità del codice.
Guarda anche=> JUnit Tutorial e il suo utilizzo negli script Selenium
Nonostante sia un framework facile da usare e semplice, JUnit ha i suoi limiti che danno luogo alla necessità di portare TestNG nella foto. TestNG è stato creato da un acclamato programmatore chiamato 'Cedric Beust'. TestNG è un framework open source distribuito sotto la licenza software Apache ed è immediatamente disponibile per il download.
Parlare della nostra esigenza di introdurre TestNG con WebDriver è che fornisce un formato dei risultati dei test efficiente ed efficace che può, a sua volta, essere condiviso con le parti interessate per avere un'idea dello stato del prodotto / applicazione, eliminando così l'inconveniente dell'incapacità di WebDriver di generare rapporti di prova. TestNG ha un meccanismo integrato di gestione delle eccezioni che consente al programma di essere eseguito senza terminare in modo imprevisto.
Sia TestNG che JUnit appartengono alla stessa famiglia di Unit Frameworks in cui TestNG è una versione estesa a JUnit ed è più ampiamente utilizzato nell'attuale era dei test.
Cosa imparerai:
- Caratteristiche di TestNG
- Installazione di TestNG in Eclipse
- Creazione del progetto TestNG di esempio
- Creazione della classe TestNG
- Esecuzione dello script TestNG
- Rapporti HTML
- Impostazione della priorità in TestNG
- Procedura dettagliata del codice
- Annotazioni TestNG
- Conclusione
- Lettura consigliata
Caratteristiche di TestNG
- Supporto per le annotazioni
- Supporto per la parametrizzazione
- Metodologia di esecuzione avanzata che non richiede la creazione di suite di test
- Supporto per i test basati sui dati utilizzando fornitori di dati
- Consente all'utente di impostare le priorità di esecuzione per i metodi di test
- Supporta un ambiente protetto dalle minacce durante l'esecuzione di più thread
- Supporta prontamente l'integrazione con vari strumenti e plug-in come strumenti di compilazione (Ant, Maven ecc.), Ambiente di sviluppo integrato (Eclipse).
- Facilita l'utente con mezzi efficaci per la generazione di report utilizzando ReportNG
Ci sono vari vantaggi che rendono TestNG superiore a JUnit. Alcuni di loro sono:
- Annotazioni avanzate e facili
- È possibile impostare modelli di esecuzione
- Esecuzione simultanea di script di test
- È possibile impostare le dipendenze dello scenario di test
Le annotazioni sono precedute da un simbolo '@' sia in TestNG che in JUnit.
Quindi ora iniziamo con la parte di installazione e implementazione.
Griglia in linea per l'automazione del test del selenio
# 1) LambdaTest
Il framework TestNG viene utilizzato al meglio con una Selenium Grid cloud come LambdaTest che ti aiuta a eseguire test paralleli su 2000+ browser e sistemi operativi reali, senza alcun problema di mantenere una Selenium Grid interna.
È possibile ottenere una varietà di registri come registri dei comandi, registri di rete, registri selenio non elaborati, metadati, ecc. Insieme a una registrazione video completa dello script di test Selenium per il debug.
LambdaTest offre anche integrazioni con più strumenti CI / CD come Jenkins, Travis CI, CircleCI, ecc. Per test continui. LambdaTest ti consente anche di integrarti con numerosi strumenti di gestione del progetto per una facile registrazione dei bug.
=> Visita il sito web LambdaTestInstallazione di TestNG in Eclipse
Segui i passaggi seguenti per TestNG Download e installazione su eclipse:
Passo 1: Avvia eclipse IDE -> Fai clic sull'opzione Aiuto nel menu -> Seleziona l'opzione 'Eclipse Marketplace ..' nel menu a discesa.
Passo 2: Immettere la parola chiave 'TestNG' nella casella di testo di ricerca e fare clic sul pulsante 'Vai' come mostrato di seguito.
Passaggio 3: Non appena l'utente fa clic sul pulsante 'Vai', verranno visualizzati i risultati corrispondenti alla stringa di ricerca. Ora l'utente può fare clic sul pulsante Installa per installare TestNG.
Passaggio 4: Non appena l'utente fa clic sul pulsante Installa, all'utente viene richiesto con una finestra per confermare l'installazione. Fare clic sul pulsante 'Conferma'.
Passaggio 5: Nella fase successiva, l'applicazione chiederà di accettare la licenza e quindi fare clic sul pulsante 'Fine'.
Passaggio 6: L'installazione viene avviata ora e lo stato di avanzamento può essere visualizzato come segue:
Si consiglia di riavviare la nostra eclissi in modo da riflettere le modifiche apportate.
Al riavvio, un utente può verificare l'installazione di TestNG accedendo a 'Preferenze' dall'opzione 'Finestra' nella barra dei menu. Fare riferimento alla figura seguente per lo stesso.
(Clicca sull'immagine per visualizzarla ingrandita)
Creazione del progetto TestNG di esempio
Cominciamo con la creazione del progetto TestNG in eclipse IDE.
Passo 1: Fare clic sull'opzione File all'interno del menu -> Fare clic su Nuovo -> Seleziona progetto Java.
Passo 2: Immettere il nome del progetto come 'DemoTestNG' e fare clic sul pulsante 'Avanti'. Come passaggio conclusivo, fare clic sul pulsante 'Fine' e il progetto Java è pronto.
Passaggio 3: Il passaggio successivo consiste nel configurare la libreria TestNG nel progetto Java appena creato. Per lo stesso, fare clic sulla scheda 'Librerie' in Configura percorso di creazione. Fare clic su 'Aggiungi libreria' come mostrato di seguito.
Passaggio 4: L'utente sarà sottoposto ad una finestra di dialogo che lo promuove a selezionare la libreria da configurare. Selezionare TestNG e fare clic sul pulsante 'Avanti' come mostrato di seguito nell'immagine. Alla fine, fare clic sul pulsante 'Fine'.
Il TestNG è ora aggiunto al progetto Java e le librerie richieste possono essere visualizzate nel package explorer all'espansione del progetto.
Aggiungi tutte le librerie e i vasi Selenium scaricati nel percorso di costruzione del progetto come illustrato nel tutorial precedente.
Creazione della classe TestNG
Ora che abbiamo eseguito tutte le impostazioni di base per iniziare con la creazione dello script di test utilizzando TestNG. Creiamo uno script di esempio utilizzando TestNG.
Passo 1: Espandere il progetto 'DemoTestNG' e passare alla cartella 'src'. Fare clic con il tasto destro sul pacchetto 'src' e accedere a Nuovo -> Altro.
Passo 2: Espandere l'opzione TestNG e selezionare l'opzione di classe 'TestNG' e fare clic sul pulsante 'Avanti'.
Passaggio 3: Fornire i dettagli richiesti come segue. Specificare la cartella di origine, il nome del pacchetto e il nome della classe TestNG e fare clic sul pulsante Fine. Come è evidente dall'immagine sottostante, l'utente può anche controllare varie notazioni TestNG che si rifletterebbero nello schema della classe di test. Le annotazioni TestNG saranno discusse più avanti in questa sessione.
La classe TestNG sopra menzionata verrebbe creata con lo schema predefinito.
Ora che abbiamo creato le basi di base per lo script di test TestNG, inseriamo ora il codice di test effettivo. Stiamo usando lo stesso codice che abbiamo usato nella sessione precedente.
Scenario:
- Avvia il browser e apri 'gmail.com'.
- Verifica il titolo della pagina e stampa il risultato della verifica.
- Immettere il nome utente e la password.
- Fare clic sul pulsante Accedi.
- Chiudi il browser web.
Codice:
package TestNG; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.Test; public class DemoTestNG { public WebDriver driver = new FirefoxDriver(); String appUrl = 'https://accounts.google.com'; @Test public void gmailLogin() { // launch the firefox browser and open the application url driver.get('https://gmail.com'); // maximize the browser window driver.manage().window().maximize(); // declare and initialize the variable to store the expected title of the webpage. String expectedTitle = ' Sign in - Google Accounts '; // fetch the title of the web page and save it into a string variable String actualTitle = driver.getTitle(); Assert.assertEquals(expectedTitle,actualTitle); // enter a valid username in the email textbox WebElement username = driver.findElement(By.id('Email')); username.clear(); username.sendKeys('TestSelenium'); // enter a valid password in the password textbox WebElement password = driver.findElement(By.id('Passwd')); password.clear(); password.sendKeys('password123'); // click on the Sign in button WebElement SignInButton = driver.findElement(By.id('signIn')); SignInButton.click(); // close the web browser driver.close(); } }
Spiegazione del codice rispetto a TestNG
1) @Test - @Test è uno dei Annotazioni TestNG . Questa annotazione consente all'esecuzione del programma di sapere che il metodo annotato come @Test è un metodo di test. Per poter utilizzare diverse annotazioni TestNG, dobbiamo importare il pacchetto ' importare org.testng.annotations. * '.
2) Non è necessario il metodo main () durante la creazione di script di test utilizzando TestNG. L'esecuzione del programma viene eseguita sulla base di annotazioni.
3) In una dichiarazione, abbiamo utilizzato la classe Assert confrontando il valore previsto e quello effettivo. La classe Assert viene utilizzata per eseguire varie verifiche. Per poter utilizzare diverse asserzioni, dobbiamo importare ' importare org.testng.Assert '.
Esecuzione dello script TestNG
Lo script di test TestNG può essere eseguito nel modo seguente:
=> Fare clic con il pulsante destro del mouse in qualsiasi punto all'interno della classe all'interno dell'editor o della classe java all'interno dell'esploratore di pacchetti, selezionare l'opzione 'Esegui come' e fare clic su 'TestNG Test'.
Il risultato di TestNG viene visualizzato in due finestre:
- Finestra della console
- Finestra dei risultati di TestNG
Fare riferimento agli screencast seguenti per le finestre dei risultati:
miglior software di conversione video per Windows
(Clicca sull'immagine per visualizzarla ingrandita)
Rapporti HTML
TestNG è dotato di una grande capacità di generare report HTML leggibili e comprensibili dall'utente per le esecuzioni dei test. Questi rapporti possono essere visualizzati in qualsiasi browser e possono anche essere visualizzati utilizzando il supporto browser integrato di Eclipse.
Per generare il rapporto HTML, segui i passaggi seguenti:
Passo 1: Esegui la classe TestNG appena creata. Aggiorna il progetto contenente la classe TestNG facendo clic con il pulsante destro del mouse su di esso e selezionando l'opzione 'Aggiorna'.
Passo 2: Una cartella denominata 'test-output' deve essere generata nel progetto a livello di cartella 'src'. Espandi la cartella 'test-output' e apri il file 'emailable-report.html' con il browser Eclipse. Il file HTML mostra il risultato della recente esecuzione.
Passaggio 3: Il report HTML deve essere aperto nell'ambiente eclipse. Fare riferimento all'immagine sottostante per lo stesso.
Aggiorna la pagina per vedere i risultati di nuove esecuzioni, se presenti.
Impostazione della priorità in TestNG
Snippet di codice
package TestNG; import org.testng.annotations.*; public class SettingPriority { @Test(priority=0) public void method1() { } @Test(priority=1) public void method2() { } @Test(priority=2) public void method3() { } }
Procedura dettagliata del codice
Se uno script di test è composto da più di un metodo di test, la priorità e la sequenza di esecuzione possono essere impostate utilizzando l'annotazione TestNG '@Test' e impostando un valore per il parametro 'priority'.
Nello snippet di codice sopra, tutti i metodi sono annotati con l'aiuto @Test e le priorità sono impostate su 0, 1 e 2. Quindi l'ordine di esecuzione in cui i metodi di test verrebbero eseguiti è:
- Metodo 1
- Metodo 2
- Metodo 3
Supporto per annotazioni
Sono disponibili numerose annotazioni in TestNG e JUnit. La sottile differenza è che TestNG fornisce alcune annotazioni anticipate a JUnit.
Annotazioni TestNG
Di seguito è riportato l'elenco delle annotazioni più utili e favorevoli in TestNG:
Annotazione | Descrizione |
---|---|
@Dopo la lezione | L'annotazione notifica al sistema che il metodo annotato come @AfterClass deve essere eseguito dopo aver eseguito l'ultimo metodo di test all'interno della stessa classe di test |
@Test | L'annotazione notifica al sistema che il metodo annotato come @Test è un metodo di test |
@BeforeSuite | L'annotazione notifica al sistema che il metodo annotato come @BeforeSuite deve essere eseguito prima di eseguire i test nell'intera suite |
@AfterSuite | L'annotazione notifica al sistema che il metodo annotato come @AfterSuite deve essere eseguito dopo aver eseguito i test nell'intera suite |
@BeforeTest | L'annotazione notifica al sistema che il metodo annotato come @BeforeTest deve essere eseguito prima di eseguire qualsiasi metodo di test all'interno della stessa classe di test |
@AfterTest | L'annotazione notifica al sistema che il metodo annotato come @AfterTest deve essere eseguito dopo aver eseguito qualsiasi metodo di test all'interno della stessa classe di test |
@Prima della lezione | L'annotazione notifica al sistema che il metodo annotato come @BeforeClass deve essere eseguito prima di eseguire il primo metodo di test all'interno della stessa classe di test |
@BeforeMethod | L'annotazione notifica al sistema che il metodo annotato come @BeforeMethod deve essere eseguito prima di eseguire qualsiasi metodo di test all'interno della stessa classe di test |
@AfterMethod | L'annotazione notifica al sistema che il metodo annotato come @AfterMethod deve essere eseguito dopo aver eseguito qualsiasi metodo di test all'interno della stessa classe di test |
@BeforeGroups | L'annotazione notifica al sistema che il metodo annotato come @BeforeGroups è un metodo di configurazione che arruola un gruppo e che deve essere eseguito prima di eseguire il primo metodo di test del gruppo |
@AfterGroups | L'annotazione notifica al sistema che il metodo annotato come @AfterGroups è un metodo di configurazione che arruola un gruppo e che deve essere eseguito dopo aver eseguito l'ultimo metodo di test del gruppo |
Nota : Molte delle annotazioni di cui sopra possono essere esercitate anche in JUnit 3 e JUnit 4 framework.
Conclusione
Attraverso questo tutorial, abbiamo cercato di farti conoscere un framework di test basato su java chiamato TestNG. Abbiamo iniziato la sessione con l'installazione del framework e siamo passati alla creazione dello script e agli argomenti avanzati. Abbiamo discusso tutte le annotazioni fornite da TestNG. Abbiamo implementato ed eseguito il nostro primo script di test TestNG utilizzando annotazioni e affermazioni.
Riepilogo dell'articolo:
- TestNG è un framework avanzato progettato in modo da sfruttare i vantaggi sia degli sviluppatori che dei tester.
- TestNG è un framework open source distribuito sotto la licenza software Apache ed è immediatamente disponibile per il download.
- TestNG è considerato superiore a JUnit per le sue caratteristiche avanzate.
- Caratteristiche di TestNG
- Supporto per annotazioni
- Metodologia di esecuzione avanzata che non richiede la creazione di suite di test
- Supporto per la parametrizzazione
- Supporto per i test basati sui dati utilizzando fornitori di dati
- Impostazione delle priorità di esecuzione per i metodi di test
- Supporta un ambiente protetto dalle minacce durante l'esecuzione di più thread
- Supporta prontamente l'integrazione con vari strumenti e plug-in come strumenti di compilazione (Ant, Maven ecc.), Ambiente di sviluppo integrato (Eclipse).
- Facilita l'utente con mezzi efficaci per la generazione di report utilizzando ReportNG
- Vantaggi di TestNG rispetto a JUnit
- Aggiunte annotazioni avanzate e facili
- È possibile impostare modelli di esecuzione
- Esecuzione simultanea di script di test
- È possibile impostare le dipendenze dello scenario di test
- TestNG è disponibile gratuitamente e può essere facilmente installato nell'IDE Eclipse utilizzando Eclipse Market.
- Al momento dell'installazione, TestNG sarà disponibile come libreria all'interno dell'ambiente Eclipse.
- Crea un nuovo progetto Java e configura il percorso di compilazione utilizzando una libreria TestNG.
- Crea una nuova classe TestNG espandendo il progetto TestNG creato e vai alla sua cartella 'src'. Fare clic con il tasto destro sul pacchetto 'src' e accedere a Nuovo -> Altro. Seleziona l'opzione di classe TestNG.
- @Test è una delle annotazioni fornite da TestNG. Questa annotazione consente all'esecuzione del programma di sapere che il metodo annotato come @Test è un metodo di test. Per poter utilizzare diverse annotazioni TestNG, dobbiamo importare il pacchetto ' importare org.testng.annotations. * '.
- Non è necessario il metodo main () durante la creazione di script di test utilizzando TestNG.
- Usiamo la classe Assert confrontando il valore atteso con quello effettivo. La classe Assert viene utilizzata per eseguire varie verifiche. Per poter utilizzare diverse asserzioni, dobbiamo importare ' importare org.testng.Assert '.
- Se uno script di test è composto da più metodi di test, la priorità e la sequenza di esecuzione possono essere impostate utilizzando l'annotazione TestNG '@Test' e impostando un valore per il parametro 'priority'.
- TestNG ha la capacità di generare automaticamente rapporti di esecuzione di test leggibili dall'uomo. Questi rapporti possono essere visualizzati in qualsiasi browser e possono anche essere visualizzati utilizzando il supporto browser integrato di Eclipse.
Prossimo tutorial n.13 : Andando avanti con i prossimi tutorial della serie Selenium, ci concentreremo sulla gestione dei vari tipi di elementi web disponibili nelle pagine web. Perciò, nel prossimo tutorial, concentreremo la nostra attenzione sui 'menu a discesa' ed eserciteremo le loro strategie di gestione. Discuteremo anche della classe Select di WebDriver e dei suoi metodi per selezionare i valori nei menu a discesa.
Un'osservazione per i lettori : Mentre il nostro prossimo tutorial della serie Selenium è in modalità di elaborazione, i lettori possono iniziare a creare i propri script WebDriver di base utilizzando il framework TestNG.
Per script e concetti più avanzati, includi quante più annotazioni e asserzioni nelle tue classi TestNG ed eseguile utilizzando l'ambiente TestNG. Inoltre, analizza i report HTML generati da TestNG.
Lettura consigliata
- Come utilizzare Firebug per la creazione di script di selenio - Selenium Tutorial # 4
- Introduzione a JUnit Framework e al suo utilizzo in Selenium Script - Selenium Tutorial # 11
- Scopri come utilizzare le annotazioni TestNG in selenio (con esempi)
- Esercitazione sul selenio di cetriolo: integrazione con WebDriver di selenio Java di cetriolo
- Come individuare gli elementi nei browser Chrome e IE per la creazione di script di selenio - Tutorial sul selenio n. 7
- Creazione di Selenium Framework e accesso ai dati di test da Excel - Selenium Tutorial # 21
- Creazione di generici e tute di prova - Tutorial sul selenio # 22
- Tutorial approfonditi su Eclipse per principianti