Nellultimo tutorial su Selenium, ti abbiamo presentato Selenium Grid, un ambiente di esecuzione dei test distribuito per accelerare lesecuzione di un test superato.
Ora, alla fine di questa serie completa di formazione sul selenio, stiamo imparando i test avanzati sul selenio e concetti correlati.
In questo e nel prossimo tutorial, noi ti presenterà il framework Cucumber – a Behaviour Driven Development (BDD) che viene utilizzato con Selenium per eseguire i test di accettazione.
Introduzione al cetriolo
Un cetriolo è uno strumento basato sul framework Behavior Driven Development (BDD) utilizzato per scrivere test di accettazione per lapplicazione web. Consente lautomazione della convalida funzionale in un formato facilmente leggibile e comprensibile (come linglese normale) per analisti aziendali, sviluppatori, tester, ecc.
I file di funzionalità Cucumber possono servire come un buon documento per tutti. Ci sono molti altri strumenti come JBehave che supportano anche il framework BDD. Inizialmente, Cucumber è stato implementato in Ruby e poi esteso al framework Java. Entrambi gli strumenti supportano JUnit nativo.
Behavior Driven Development è unestensione di Test Driven Development e viene utilizzato per testare il sistema piuttosto che testare il particolare pezzo di codice. Discuteremo più il BDD e lo stile di scrittura dei test BDD.
Il cetriolo può essere usato insieme a selenio, watir e capibara ecc. Cetriolo supporta molti altri linguaggi come Perl, PHP, Python, Net ecc. questo tutorial, ci concentreremo sul cetriolo con Java come linguaggio.
Nozioni di base sul cetriolo
Per capire il cetriolo, dobbiamo conoscere tutte le caratteristiche del cetriolo e il suo utilizzo.
# 1) File di funzionalità:
I file di funzionalità sono la parte essenziale di cucumber che viene utilizzata per scrivere passaggi di automazione dei test o test di accettazione. Può essere utilizzato come documento live. I passaggi sono le specifiche dellapplicazione. Tutti i file delle funzionalità terminano con lestensione .feature.
File delle funzionalità di esempio:
Funzionalità: Funzionalità di accesso Funzionalità
Per garantire che la funzionalità di accesso funzioni,
Voglio eseguire il test del cetriolo per verificare che funzioni
Scenario: funzionalità di accesso
Lutente fornito naviga su SOFTWARETETINGHELP.COM
Quando lutente accede utilizzando il nome utente come “USER “E password” PASSWORD “
Laccesso dovrebbe avere esito positivo
Scenario: funzionalità di accesso
Lutente fornito naviga su SOFTWARETETINGHELP.COM
Quando lutente accede utilizzando Nome utente come” USER1 “e password” PASSWORD1 “
Quindi dovrebbe essere visualizzato un messaggio di errore
# 2) Caratteristica:
Fornisce informazioni sulla funzionalità aziendale di alto livello (fare riferimento al precedente esempio) e lo scopo dellApplicazione sotto test. Tutti dovrebbero essere in grado di comprendere lintento del file di funzionalità leggendo il primo passaggio di funzionalità. Questa parte è fondamentalmente mantenuta breve.
# 3) Scenario:
Fondamentalmente, uno scenario rappresenta una particolare funzionalità che è sotto test. Vedendo lo scenario, lutente dovrebbe essere in grado di comprendere lintento dietro lo scenario e di cosa tratta il test. Ogni scenario dovrebbe seguire dato, quando e poi formato. Questa lingua è chiamata “cetriolino”.
- Dato: come accennato in precedenza, dato specifica le pre-condizioni. È fondamentalmente uno stato noto.
- Quando: questo è utilizzato quando deve essere eseguita unazione. Come nellesempio precedente, abbiamo visto che quando lutente tenta di accedere utilizzando nome utente e password, diventa unazione.
- Quindi: il risultato o il risultato atteso dovrebbe essere posizionato qui. Per istanza: verifica che laccesso sia riuscito, navigazione della pagina riuscita.
- Sfondo: ogni volta che è necessario eseguire un passaggio in ogni scenario, tali passaggi devono essere inseriti in background. Per istanza: se un lutente deve cancellare il database prima di ogni scenario, quindi questi passaggi possono essere messi in background.
- E: E viene utilizzato per combinare due o più dello stesso tipo di azione.
Esempio:
Caratteristica: Funzionalità di accesso Caratteristica
Scenario: Funzionalità di accesso
Lutente specificato naviga su SOFTWARETINGHELP.COM
Quando lutente accede utilizzando il nome utente come “USER”
E passwo rd come “password”
Laccesso dovrebbe essere eseguito correttamente
E dovrebbe essere visualizzata la home page
Esempio di sfondo:
Sfondo:
Dato utente connesso come amministratore di database
E tutti i valori spazzatura vengono cancellati
# 4) Struttura dello scenario:
Gli schemi dello scenario vengono utilizzati quando lo stesso test deve essere eseguito con set di dati. Prendiamo lo stesso esempio. Dobbiamo testare la funzionalità di accesso con più set diversi di nome utente e password.
Funzionalità: Funzionalità di accesso
Per garantire che la funzionalità di accesso funzioni,
voglio eseguire il test del cetriolo per verificare che funzioni
Schema dello scenario: funzionalità di accesso
Lutente accede a SOFTWARETESTINGHELP.COM
Quando lutente accede utilizzando il nome utente come < nome utente > e la password < password >
Il login dovrebbe avere esito positivo
Esempi:
| nome utente | password |
| Tom | password1 |
| Harry | password2 |
| Jerry | password3 |
Nota:
- Come mostrato nellesempio sopra, i nomi delle colonne vengono passati come parametro allistruzione When.
- Al posto di Scenario, è necessario utilizzare Scenario Outline.
- Gli esempi vengono utilizzati per passare diversi argomenti in formato tabulare. I tubi verticali vengono utilizzati per separare due colonne diverse. Un esempio può contenere molte colonne differenti.
# 5) Tag:
Cucumber per impostazione predefinita esegue tutti gli scenari in tutti i file delle caratteristiche. Nei progetti in tempo reale, potrebbero esserci centinaia di file di funzionalità che non è necessario eseguire sempre.
Ad esempio: i file di funzionalità relativi al test del fumo non devono essere eseguiti sempre. Quindi, se menzioni un tag come senza fumo in ogni file di funzionalità che è correlato al test del fumo ed esegue il test del cetriolo con il tag @SmokeTest. Cucumber eseguirà solo quei file di funzionalità specifici per determinati tag. Si prega di seguire lesempio di seguito. Puoi specificare più tag in un file di funzionalità.
Esempio di utilizzo di tag singoli:
@SmokeTest
Caratteristica: Funzionalità di accesso Funzionalità
Per garantire che la funzionalità di accesso funzioni,
voglio eseguire il test del cetriolo per verificare che funzioni
Struttura dello scenario: funzionalità di accesso
Dato che lutente naviga su SOFTWARETESTINGHELP. COM
Quando lutente accede utilizzando il nome utente come < nome utente > e la password < password >
Laccesso dovrebbe avere esito positivo
Esempio di utilizzo di più tag:
Come mostrato nellesempio di seguito stesso file di funzioni può essere utilizzato per scenari di test del fumo e per scenari di test di accesso. Quando intendi eseguire il tuo script per un test del fumo, usa @SmokeTest. Allo stesso modo, quando si desidera che lo script venga eseguito per il test di accesso, utilizzare il tag @LoginTest.
È possibile menzionare qualsiasi numero di tag per un file di funzionalità e per lo scenario.
@SmokeTest @ LoginTest
Funzionalità: Funzionalità di accesso
Per garantire che la funzionalità di accesso funzioni,
voglio eseguire il test del cetriolo per verificare che funzioni
Struttura dello scenario: funzionalità di accesso
Lutente accede a SOFTWARETETINGHELP.COM
Quando lutente accede utilizzando il nome utente come < nome utente > e password < password >
Il login dovrebbe avere esito positivo
Allo stesso modo, puoi specificare i tag per eseguire lo scenario specifico in un file di funzionalità. Controlla lesempio seguente per eseguire uno scenario specifico.
Funzionalità: Funzionalità di accesso Funzionalità
Per garantire che la funzionalità di accesso funzioni,
voglio eseguire il test del cetriolo per verificare che sia working
@positiveScenario
Scenario: funzionalità di accesso
Lutente specificato naviga su SOFTWARETETINGHELP.COM
Quando lutente accede utilizzando il nome utente come “USER” e la password “PASSWORD”
Quindi il login dovrebbe avere esito positivo
@negaviveScenario
Scenario: funzionalità di accesso
Lutente fornito passa a SOFTWARETINGHELP.COM
Quando lutente accede utilizzando il nome utente come “USER1” e la password “PASSWORD1”
Quindi dovrebbe essere visualizzato un messaggio di errore
# 6) JUnit Runner:
Per eseguire il file di funzionalità specifico, cucumber utilizza JUnit Runner standard e specifica i tag in @Cucumber . Opzioni. È possibile assegnare più tag utilizzando una virgola separata. Qui puoi specificare il percorso del rapporto e il tipo di rapporto che desideri generare.
Esempio di Junit Runner:
Allo stesso modo, puoi dare istruzioni a cucumber per eseguire più tag. Lesempio seguente illustra come utilizzare più tag in cucumber per eseguire diversi scenari.
# 7) Rapporto Cucumber:
Cucumber genera il proprio formato HTML. Tuttavia, è possibile creare rapporti migliori utilizzando Jenkins o lo strumento bambù. I dettagli sui rapporti sono trattati nellargomento successivo del cetriolo.
Configurazione del progetto per il cetriolo:
La spiegazione dettagliata della configurazione del progetto per il cetriolo è disponibile separatamente nel prossimo tutorial. Fare riferimento a Cucumber Tutorial Part2 per ulteriori informazioni sulla configurazione del progetto. Ricorda che non sono richieste installazioni software aggiuntive per cucumber.
Implementazione del file Feature:
Dobbiamo implementare questi passaggi in Java per testare i file Feature. Necessità di creare una classe che contenga quelle date, quando e poi le istruzioni. Cucumber usa le sue annotazioni e tutti i passaggi sono incorporati in quelle annotazioni (date, when, then). Ogni frase inizia con “^” in modo che il cetriolo capisca linizio del passaggio. Allo stesso modo, ogni passaggio termina con “$”. Lutente può utilizzare espressioni regolari per passare dati di test diversi. Le espressioni regolari prendono i dati dai passaggi della funzione e passano alle definizioni dei passaggi.Lordine dei parametri dipende da come vengono passati dal file delle caratteristiche. Fare riferimento al prossimo tutorial per la configurazione del progetto e la mappatura tra i file delle caratteristiche e le classi Java.
Esempio:
Lesempio seguente serve a illustrare come i file delle caratteristiche possono essere implementati.
In questo esempio, non abbiamo utilizzato alcuna API di selenio. Questo è solo per mostrare come funziona il cetriolo come framework autonomo. Segui il prossimo tutorial per lintegrazione del selenio con il cetriolo.
Quando esegui la classe di corridore di cetriolo, cucumber inizierà a leggere i passaggi del file delle caratteristiche. Ad esempio, quando esegui @smokeTest, cucumber leggerà il passaggio Feature e Data una dichiarazione di scenario. Non appena il cetriolo trova la dichiarazione, la stessa istruzione data verrà cercata per i file java. Se lo stesso passaggio viene trovato nel file java, cucumber esegue la funzione specificata per lo stesso passaggio, altrimenti cucumber salterà il passaggio.
Conclusione
In questo tutorial, abbiamo trattato le funzionalità di strumento cetriolo e il suo utilizzo in uno scenario in tempo reale.
Il cetriolo è uno strumento preferito per molti progetti in quanto è facile da capire, leggibile e contiene funzionalità aziendali.
Nel prossimo capitolo, tratteremo come impostare un progetto cucumber – java e come integrare Selenium WebDriver con Cucumber.
Ultimo aggiornamento: 18 gennaio 2021 6:40