Selenium con Cucumber (Tutorial sul framework BDD)
โก Riepilogo intelligente
Selenium con Cucumber forma un potente framework di sviluppo guidato dal comportamento (BDD) che combina la sintassi Gherkin in inglese semplice con Selenium Automazione con WebDriver. Questa esercitazione illustra i prerequisiti, analizza tre scenari pratici e mostra come i file feature, le definizioni dei passaggi e una classe TestRunner si integrano per eseguire i test del browser.

In questo tutorial imparerai come integrare Cucumber con Selenium WebDriver per costruire un framework di sviluppo guidato dal comportamento (BDD) che sia leggibile, manutenibile e basato sui dati.
Cosa รจ Cucumber?
Cucumber รจ uno strumento di test che supporta lo sviluppo guidato dal comportamento (BDD). Descrive il comportamento di un'applicazione in un semplice testo in inglese utilizzando il linguaggio Gherkin, che consente anche ai non sviluppatori di contribuire alle specifiche di test senza dover imparare un linguaggio di programmazione. Scopri di piรน nella nostra Cucumber lezione.
Cosa รจ Selenium?
Selenium รจ uno strumento di automazione utilizzato per Test di funzionalitร di applicazioni basate sul web. Selenium supporta piรน linguaggi di programmazione tra cui Java, Rubino, Pythone C#, il che lo rende ideale per team con background tecnici misti. Scopri di piรน nella nostra Selenium lezione.
Perchรฉ usare Cucumber con Selenium?
Cucumber and Selenium sono due delle tecnologie di test piรน diffuse. La maggior parte delle organizzazioni le utilizza giร Selenium per i test funzionali e voglio aggiungere strati Cucumber in cima perchรฉ Cucumber rende facile leggere e comprendere il flusso dell'applicazione.
Cucumber si basa sul quadro di sviluppo guidato dal comportamento che funge da ponte tra i seguenti ruoli:
- Ingegnere informatico e analista aziendale.
- Tester manuale e tester di automazione.
- Tester manuale e sviluppatori.
Migliori Cucumber Anche il framework BDD aiuta i clienti a comprendere il codice dell'applicazione Perchรฉ utilizza il linguaggio Gherkin, che รจ in testo semplice. Chiunque nell'organizzazione puรฒ seguire il comportamento del software. La sintassi di Gherkin รจ in un inglese semplice e leggibile, il che rende la specifica accessibile anche a lettori non tecnici.
Prerequisiti per l'utilizzo Cucumber con Selenium
Prima di iniziare il Cucumber-Selenium Per l'integrazione, sono necessari i seguenti elementi:
Selenium file jar:
- Selenium-server-autonomo
Puoi scaricarli da https://www.selenium.dev/downloads/.
File Jar per Cucumber:
- Cucumber-nucleo
- Cucumber-html
- Cobertura copertura del codice
- Cucumber-Giava
- Cucumber-giusto
- Cucumber-jvm-deps
- Cucumberrefertazione
- Nucleo di Hamcrest
- Cetriolino
- JUnit
Puoi scaricarli da https://mvnrepository.com/search?q=CucumberDovrai cercare ciascun file jar e scaricarli uno per uno.
Ad esempio, ecco come scaricare uno dei file jar, il โCucumberlibreria "core".
Fai clic sul link di download qui sopra. Verrai reindirizzato al sito del repository Maven. Ora cerca il jar specifico (in questo caso "Cucumber "Nucleo") come mostrato nello screenshot qui sotto:
Nella pagina successiva, clicca sulla versione 1.2.2:
Nella schermata successiva, fai clic su Scarica per scaricare il Cucumber File jar principale:
Nota: Per comoditร , abbiamo incluso i file jar Maven necessari Qui.Questi file JAR potrebbero diventare obsoleti e incompatibili nel tempo, quindi consigliamo di scaricarli autonomamente utilizzando il metodo descritto sopra.
Test di automazione utilizzando Cucumber con Selenium
Vediamo come utilizzare Cucumber con Selenium Passo dopo passo. Qui analizzeremo tre scenari:
- Scenario 1: stampa del testo nella console.
- Scenario 2: Inserire le credenziali di accesso e reimpostare il valore.
- Scenario 3: Inserire le credenziali di accesso su Guru99 e reimposta il valore โ ripetuto per 3 serie di dati.
Scenario 1: Stampa del testo nella console
In questo scenario, stampiamo semplicemente il testo nella console usando Cucumber.
Passo 1) Crea un progetto in Eclipse.
Creare un Java progetto con il nome "CucumberConSelenium". come mostrato nello screenshot qui sotto.
Passo 2) Aggiungi i file jar al progetto.
Fare clic con il pulsante destro del mouse sul progetto > Proprietร > Java Percorso di compilazione. Aggiungi tutte le librerie che hai scaricato in precedenza.
Passo 3) Crea un file di funzionalitร .
Per creare un file di funzionalitร , crea innanzitutto una cartella "Features" come mostrato nello screenshot qui sotto.
Inserisci il nome della cartella "Funzionalitร " e fai clic su Fine.
Ora crea un file di funzionalitร all'interno della cartella Funzionalitร denominato MyTest.featureIl procedimento รจ simile alla creazione di una cartella.
Nota: Potrebbe essere necessario installare il file Cucumber Eclipse Installa prima il plugin. Vai su Aiuto โ Installa nuovo software e incolla il link. http://cucumber.github.io/cucumber-eclipse/update-site/e installalo.
Passo 4) Scrivi gli scenari.
Le righe seguenti sono scritte in MyTest.feature utilizzando il linguaggio Gherkin:
Feature: Reset functionality on login page of Application
Scenario: Verification of Reset button
Given Open the Firefox and launch the application
When Enter the Username and Password
Then Reset the credential
Code Spiegazione
Riga 1) Definisce la funzionalitร aziendale.
Riga 2) Definisce uno scenario da testare.
Riga 3) Definisce la precondizione (Dato).
Riga 4) Definisce l'azione da eseguire (Quando).
Riga 5) Definisce l'esito o il risultato atteso (Allora).
Passo 5) Scrivi la Selenium Script TestRunner per il Cucumber progettazione del framework.
Creare un TestRunner pacchetto e poi un Runner.java file di classe al suo interno.
package 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
{
}
Nel sopra Cucumber Java ad esempio, eseguiamo il prova del cetriolo utilizzando le seguenti annotazioni:
@Corri con() dice JUnit Informazioni sulla classe test runner che avvia l'esecuzione dei nostri test.
@CucumberOpzioni() Imposta le proprietร di test, come il percorso del file delle funzionalitร e il pacchetto di collegamento della definizione dei passaggi.
Screenshot del file TestRunner:
Passo 6) Creare lo script di definizione del passaggio.
Ora crea un Definizione del passaggio pacchetto e poi un Steps.java file script sotto di esso. All'interno di Steps.java scriviamo il Selenium logica che mappa ogni passaggio di Gherkin.
package StepDefinition;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
public class Steps {
@Given("^Open the Firefox and launch the application$")
public void open_the_Firefox_and_launch_the_application() throws Throwable
{
System.out.println("This Step open the Firefox and launch the application.");
}
@When("^Enter the Username and Password$")
public void enter_the_Username_and_Password() throws Throwable
{
System.out.println("This step enter the Username and Password on the login page.");
}
@Then("^Reset the credential$")
public void Reset_the_credential() throws Throwable
{
System.out.println("This step click on the Reset button.");
}
}
La classe si chiama Passaggi e Cucumber Le annotazioni associano ciascun metodo a una fase del file di funzionalitร :
@Dato definisce il metodo per aprire Firefox e avviare l'applicazione.
@Quando Definisce il metodo per inserire nome utente e password.
@Poi Definisce il metodo per reimpostare le credenziali.
Ciascun metodo si limita a stampare un messaggio sulla console.
Lo screenshot qui sotto mostra lo script Steps.java e la struttura ad albero del progetto:
Nota: Una definizione di passo รจ il codice che desideri Cucumber da eseguire quando corrisponde a una fase del file feature.
Passo 7) Esegui lo script.
Eseguire questo script dal file TestRunner (Runner.java) come mostrato di seguito.
Passo 8) Analizzare l'output.
All'esecuzione di Runner.java, Cucumber stampa nella console lo stesso testo definito in Steps.java.
Scenario 2: Inserire le credenziali di accesso e reimpostare il valore
Qui inseriamo le credenziali su GuruPagina di accesso demo 99 e reimposta il valore.
Per lo scenario 2 dobbiamo solo aggiornare Steps.java. Qui aggiungiamo il vero Selenium codice. Innanzitutto, assicurati che Selenium Il file jar viene aggiunto al progetto.
Passo 1) Aggiorna lo script Steps.java come mostrato di seguito.
package StepDefinition;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
public class Steps {
WebDriver driver;
@Given("^Open the Firefox and launch the application$")
public void open_the_Firefox_and_launch_the_application() throws Throwable
{
System.setProperty("webdriver.gecko.driver", "E://Selenium//Selenium_Jars//geckodriver.exe");
driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.get("http://demo.guru99.com/v4");
}
@When("^Enter the Username and Password$")
public void enter_the_Username_and_Password() throws Throwable
{
driver.findElement(By.name("uid")).sendKeys("username12");
driver.findElement(By.name("password")).sendKeys("password12");
}
@Then("^Reset the credential$")
public void Reset_the_credential() throws Throwable
{
driver.findElement(By.name("btnReset")).click();
}
}
Screenshot di quanto sopra Selenium sceneggiatura:
Passo 2) Esegui lo script.
Dopo aver aggiornato Steps.java, esegui Runner.java.
Passo 3) Analizza l'output. Nell'output vedrai quanto segue:
- Browser avviato.
- Guruร stato aperto il sito demo di 99 Bank.
- Il nome utente e la password vengono inseriti nella pagina di accesso.
- Il pulsante Reset cancella i valori.
Scenario 3: Eseguire il flusso di accesso e ripristino con 3 set di dati
Qui dobbiamo aggiornare entrambi Steps.java e il file delle funzionalitร per gestire lo stesso flusso con tre set di credenziali.
Passo 1) Aggiorna il file delle funzionalitร come mostrato di seguito.
Usiamo il Schema dello scenario and Esempi sintassi quindi Cucumber ripete lo stesso scenario per ogni riga di dati.
Feature: Reset functionality on login page of Application
Scenario Outline: Verification of reset button with multiple credentials
Given Open the Firefox and launch the application
When Enter the Username <username> and Password <password>
Then Reset the credential
Examples:
| username | password |
| User1 | password1 |
| User2 | password2 |
| User3 | password3 |
Passo 2) Aggiorna lo script Steps.java.
Qui aggiorniamo le firme dei metodi in modo che accettino parametri dalla tabella Esempi.
package StepDefinition;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
public class Steps {
WebDriver driver;
@Given("^Open the Firefox and launch the application$")
public void open_the_Firefox_and_launch_the_application() throws Throwable
{
System.setProperty("webdriver.gecko.driver", "E://Selenium//Selenium_Jars//geckodriver.exe");
driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.get("http://demo.guru99.com/v4");
}
@When("^Enter the Username \"(.*)\" and Password \"(.*)\"$")
public void enter_the_Username_and_Password(String username, String password) throws Throwable
{
driver.findElement(By.name("uid")).sendKeys(username);
driver.findElement(By.name("password")).sendKeys(password);
}
@Then("^Reset the credential$")
public void Reset_the_credential() throws Throwable
{
driver.findElement(By.name("btnReset")).click();
}
}
Passo 3) Eseguire lo script aggiornato.
La schermata sottostante mostra un'esecuzione riuscita e il tempo impiegato per ciascun set di dati.
Passo 4) Analizzare l'output. I seguenti passaggi si ripetono per ciascuno dei 3 set di dati:
- Browser avviato.
- Guruร stato aperto il sito demo di 99 Bank.
- Il nome utente e la password vengono inseriti nella pagina di accesso.
- Il pulsante Reset cancella i valori.























