cucumber gherkin tutorial
Questo tutorial informativo spiega i vantaggi del framework Cucumber Gherkin e come scrivere script di automazione utilizzando il linguaggio Gherkin con chiari esempi:
Cucumber è uno strumento basato sul framework Behaviour Driven Development (BDD). BDD è una metodologia per comprendere la funzionalità di un'applicazione nella semplice rappresentazione in testo normale.
Lo scopo principale del framework Behavior Driven Development è quello di far comprendere l'applicazione a vari ruoli del progetto come analisti aziendali, assicurazione qualità, sviluppatori, ecc. Senza immergersi in profondità negli aspetti tecnici.
Lo strumento Cucumber viene generalmente utilizzato in tempo reale per scrivere test di accettazione di un'applicazione. Lo strumento Cucumber fornisce supporto per molti linguaggi di programmazione come Java, Ruby, .Net, ecc. Può essere integrato con più strumenti come Selenium, Capybara, ecc.
Cosa imparerai:
- Cos'è il cetriolino?
- Vantaggi del quadro cetriolo cetriolo
- Integrazione del cetriolo con selenio
- Conclusione
Cos'è il cetriolino?
Gherkin è la lingua utilizzata dallo strumento Cucumber. È una semplice rappresentazione in inglese del comportamento dell'applicazione. Cucumber utilizza il concetto di file di funzionalità per scopi di documentazione. Il contenuto all'interno dei file di funzionalità è scritto in linguaggio Gherkin.
Nei seguenti argomenti, vedremo di più sui vantaggi del framework Cucumber Gherkin, Integrating Cucumber with Selenium, Creazione di un file di caratteristiche e il suo file di definizione del passaggio corrispondente e un file di caratteristiche di esempio.
Termini comuni per il quadro di cetriolo cetriolo
Il framework Cucumber Gherkin utilizza determinate parole chiave essenziali per la scrittura di un file di funzionalità.
I seguenti termini sono più comunemente usati nei file di funzionalità:
# 1) caratteristica:
Un file di funzionalità deve fornire una descrizione di alto livello di un'applicazione AUT (Application Under Test). La prima riga del file delle caratteristiche deve iniziare con la parola chiave 'Funzionalità' che segue la descrizione diun applicazionesotto esame. Secondo gli standard prescritti da Cucumber, il file delle caratteristiche deve includere i seguenti tre elementi come prima riga.
- Parola chiave caratteristica
- Nome funzionalità
- Descrizione delle caratteristiche (opzionale)
La parola chiave della funzione deve essere seguita da un nome della funzione. Può includere una sezione di descrizione facoltativa che può estendersi su più righe del file delle caratteristiche. Un file di funzionalità ha l'estensione .feature.
# 2) Scenario:
Uno scenario è una specifica di prova della funzionalità da testare. Idealmente, un file di funzionalità può contenere uno o più scenari come parte della funzionalità. Uno scenario include più passaggi di test. Secondo gli standard dei cetrioli, uno scenario deve includere 3-5 passaggi di prova poiché scenari lunghi tendono a perdere il loro potere espressivo una volta che il numero di passaggi aumenta.
Uno scenario può includere i seguenti passaggi:
- Azione che deve essere eseguita da un utente.
- Risultati attesi dell'azione.
In linguaggio Gherkin, uno scenario deve includere le seguenti parole chiave:
- Dato
- quando
- Poi
- E
Dato:
La parola chiave data viene utilizzata per specificare le condizioni preliminari per l'esecuzione di uno scenario specifico. Uno scenario può includere più di un'istruzione Data o non possono esserci dichiarazioni Data per uno scenario.
Quando:
Questa parola chiave viene utilizzata per specificare l'azione o un evento eseguito dall'utente come fare clic su un pulsante, immettere dati in una casella di testo, ecc. Possono esserci più istruzioni when in un unico scenario.
Poi:
Quindi la parola chiave viene utilizzata per specificare il risultato atteso di un'azione eseguita dall'utente. Idealmente, la parola chiave When deve essere seguita dalla parola chiave Then per comprendere il risultato atteso delle azioni dell'utente.
E:
E la parola chiave viene utilizzata come parola chiave congiunta per combinare più istruzioni. Per esempio, è possibile combinare più istruzioni Date e When in uno scenario utilizzando la parola chiave 'E'.
# 3) Schema dello scenario:
Uno schema di scenario è un modo di parametrizzare gli scenari.
Questo è idealmente utilizzato quando lo stesso scenario deve essere eseguito per più set di dati, ma i passaggi del test rimangono gli stessi. La struttura dello scenario deve essere seguita dalla parola chiave 'Esempi', che specifica l'insieme di valori per ogni parametro.
Di seguito è riportato l'esempio per comprendere il concetto di Scenario Outline:
Esempio:
Schema dello scenario: Caricare un file
Dato che un utente si trova nella schermata di caricamento del file.
quando l'utente fa clic sul pulsante Sfoglia.
E l'utente accede alla casella di testo di caricamento.
E l'utente fa clic sul pulsante di invio.
Poi verifica che il caricamento del file abbia esito positivo.
Esempi:
| nomefile |
| file1 |
| file2 |
I parametri all'interno della struttura dello scenario devono essere specificati con i caratteri ''. È necessario specificare un elenco di valori di dati per il parametro utilizzando il simbolo Pipe (|).
# 4) Sfondo:
La parola chiave Background viene utilizzata per raggruppare più dichiarazioni date in un unico gruppo.
Viene generalmente utilizzato quando lo stesso insieme di istruzioni fornite viene ripetuto in ogni scenario di un file di funzionalità. Invece di specificare ripetutamente le dichiarazioni fornite per ogni scenario, possono essere specificate con la parola chiave 'Background' prima del primo scenario.
Esempio:
Sfondo:
L'utente specificato si trova nella pagina di accesso dell'applicazione
Vantaggi del quadro cetriolo cetriolo
Di seguito sono riportati i vantaggi del framework Cucumber Gherkin che rendono Cucumber una scelta ideale per la metodologia Agile in rapida evoluzione nel mondo aziendale di oggi:
- Il cetriolo è uno strumento open source.
- La rappresentazione in testo normale facilita la comprensione degli scenari da parte degli utenti non tecnici.
- Colma il divario di comunicazione tra i vari stakeholder del progetto come analisti aziendali, sviluppatori e personale addetto al controllo qualità.
- I casi di test di automazione sviluppati utilizzando lo strumento Cucumber sono più facili da mantenere e comprendere.
- Facile da integrare con altri strumenti come Selenium e Capybara.
Integrazione del cetriolo con selenio
Il cetriolo e il selenio sono i due più potenti strumenti di test funzionale. L'integrazione di Cucumber con Selenium Webdriver aiuta vari membri non tecnici di un team di progetto a comprendere il flusso dell'applicazione.
Di seguito sono riportati i passaggi da seguire per l'integrazione di Cucumber con Selenium Webdriver:
Passo 1:
Cucumber può essere integrato con Selenium Webdriver scaricando i file JAR necessari.
Di seguito è riportato l'elenco dei file JAR che devono essere scaricati per l'utilizzo di Cucumber con Selenium Webdriver:
- coverage-2.1.1.jar
- cucumber-core-1.2.2.jar
- cucumber-java-1.2.2.jar
- cucumber-junit-1.2.2.jar
- cucumber-jvm-deps-1.0.3.jar
- cucumber-reporting-0.1.0.jar
- cetriolino-2.12.2.jar
- hamcrest-core-1.3.jar
- junit-4.11.jar
I file JAR sopra possono essere scaricati da Maven sito web .
Ciascuno dei file JAR di cui sopra deve essere scaricato individualmente dal sito Web di cui sopra.
Passo 2:
Crea un nuovo progetto in Eclipse e aggiungi i file JAR sopra al progetto. Per aggiungere i file JAR al progetto, fare clic con il pulsante destro del mouse sul file progetto -> Percorso di compilazione -> Configura percorso di compilazione.
Clicca su Aggiungi JAR esterni e aggiungi l'elenco dei file JAR sopra al progetto.
Passaggio 3:
Prima di creare i file delle funzionalità e i file di definizione dei passaggi, è necessario installare un plug-in Natural in Eclipse. Può essere fatto copiando e incollando il file URL su Aiuto -> Installa nuovo software -> URL
Clicca sul Pulsante Avanti per installare il plugin in Eclipse.
Creazione di un file di funzionalità
Creare cartelle separate per i file delle caratteristiche e i file di definizione dei passaggi nella struttura del progetto. I file di definizione dei passaggi includono linee di codifica Java mentre il file di funzionalità contiene istruzioni in inglese sotto forma di linguaggio Gherkin.
- Creare una cartella separata per la memorizzazione del file delle caratteristiche facendo clic con il pulsante destro del mouse sul progetto -> Nuovo -> Pacchetto .
- Il file delle caratteristiche può essere creato andando a fare clic con il tasto destro sul progetto / pacchetto -> Nuovo -> File .
- Fornire un nome per il file di funzionalità. Il file delle caratteristiche deve essere seguito dall'estensione .feature
- La struttura del progetto deve essere simile alla struttura seguente.
Creazione di un file di definizione del passaggio
Ogni fase del file delle caratteristiche deve essere mappata a una definizione della fase corrispondente. I tag utilizzati nel file Cucumber Gherkin devono essere mappati alla definizione del passaggio utilizzando i tag @Given, @When e @Then.
La seguente è la sintassi di un file di definizione del passaggio:
Sintassi:
@TagName ('^ Step Name $')
Public void methodName ()
{
Definizione del metodo
}
migliore app spia mobile per iphone
I nomi dei passi devono essere preceduti dal simbolo carato (^) e dal suffisso ($). Il nome del metodo può essere qualsiasi nome valido accettabile secondo gli standard di codifica Java. La definizione del metodo include istruzioni di codifica in Java o qualsiasi altro linguaggio di programmazione a scelta del tester.
Esempi di file di funzioni e file di definizione dei passaggi
Per creare il file delle caratteristiche e il file di definizione delle fasi, è possibile utilizzare il seguente scenario:
Scenario:
- Apri la pagina di accesso di un'applicazione in prova.
- Immettere il nome utente
- Immettere la password
- Fare clic sul pulsante Accedi.
- Verifica se l'accesso dell'utente è riuscito.
File delle caratteristiche:
Lo scenario sopra può essere scritto sotto forma di un file di funzionalità come di seguito:
Caratteristica: Accedi a un'applicazione sotto test.
Scenario: Accedi all'applicazione.
Dato Apri il browser Chrome e avvia l'applicazione.
quando L'utente immette il nome utente nel campo UserName.
E L'utente inserisce una password nel campo Password.
quando L'utente fa clic sul pulsante Accedi.
File di definizione del passaggio:
Nella funzione precedente, un file può essere mappato al file di definizione del passaggio corrispondente come mostrato di seguito. Si noti che per fornire un collegamento tra il file delle caratteristiche e il file di definizione della fase, è necessario creare un file del test runner.
Di seguito è riportata la rappresentazione del file di definizione del passaggio secondo il file delle caratteristiche.
package com.sample.stepdefinitions; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import cucumber.api.java.en.And; import cucumber.api.java.en.Given; import cucumber.api.java.en.When; public class StepDefinition { WebDriver driver; @Given('^Open Chrome browser and launch the application$') public void openBrowser() { driver = new ChromeDriver(); driver.manage().window().maximize(); driver.get('www.facebook.com'); } @When('^User enters username onto the UserName field$') public void enterUserName() { driver.findElement(By.name('username')).sendKeys('test@demo.com'); } @And('^User enters password onto the Password field$') public void enterPassword() { driver.findElement(By.name('password')).sendKeys('test@123'); } @When('^User clicks on Login button$') public void clickOnLogin() { driver.findElement(By.name('loginbutton')).click(); } }
La classe TestRunner viene utilizzata per fornire il collegamento tra il file delle caratteristiche e il file di definizione dei passaggi. Di seguito è riportata la rappresentazione di esempio dell'aspetto della classe TestRunner. Una classe TestRunner è generalmente una classe vuota senza definizione di classe.
Package com.sample.TestRunner import org.junit.runner.RunWith; import cucumber.api.CucumberOptions; import cucumber.api.junit.Cucumber; @RunWith(Cucumber.class) @CucumberOptions(features='Features',glue={'StepDefinition'}) public class Runner { }
È necessario eseguire il file di classe TestRunner per l'esecuzione di file di funzionalità e file di definizione dei passaggi.
Esempi
Di seguito è riportata la rappresentazione del file delle funzionalità di vari scenari.
Esempio 1:
Per verificare se il nome utente e la password sono disponibili nella pagina di accesso:
Caratteristica: Verificare la visualizzazione dei campi nome utente e password su una pagina di accesso.
Scenario: Per verificare la visualizzazione dei campi nome utente e password.
Dato L'utente apre il browser Firefox e accede all'applicazione in prova.
quando L'utente accede a una pagina di accesso.
Poi Verificare la visualizzazione del campo del nome utente nella pagina di accesso.
E Verificare la visualizzazione del campo della password nella pagina di accesso.
Esempio n. 2:
Di seguito è riportato l'esempio per la parola chiave della struttura dello scenario in Cucumber Gherkin:
Caratteristica: Verificare se l'accesso è riuscito per più set di dati di prova.
Schema dello scenario: Per verificare se l'accesso è riuscito per più set di dati di prova.
Dato Apri il browser Chrome e avvia l'applicazione.
quando L'utente entra nel campo UserName.
E L'utente entra nel campo Password.
quando L'utente fa clic sul pulsante Accedi.
Esempi:
| nome utente | password |
| utente1 | password1 |
| utente2 | password2 |
Conclusione
- BDD è una metodologia per comprendere la funzionalità di un'applicazione in una semplice rappresentazione in testo normale.
- Cucumber è uno strumento che utilizza lo sviluppo guidato dal comportamento per scrivere test di accettazione di un'applicazione. Viene utilizzato per colmare il divario di comunicazione tra i vari stakeholder del progetto.
- L'uso principale di Cucumber risiede nella sua semplicità nel comprendere l'utilizzo dei file di funzionalità da parte di utenti non tecnici.
Non è troppo tardi per provare questo strumento Cetriolo usando il linguaggio Gherkin.
Lettura consigliata
- Tutorial Geb - Test dell'automazione del browser utilizzando lo strumento Geb
- Esercitazione sul selenio di cetriolo: integrazione del driver Web di selenio Java di cetriolo
- Test di automazione utilizzando lo strumento Cucumber e il selenio - Tutorial sul selenio # 30
- Che cos'è il test di automazione (Guida definitiva per avviare l'automazione del test)
- Tutorial di Spock: test con Spock e Groovy
- Migliori strumenti di test del software 2021 (Strumenti di automazione del test QA)
- Tutorial sui test distruttivi e non distruttivi
- Test funzionale vs test non funzionale