Selenium con Cucumber (Quadro BDD)


In questo tutorial imparerai come integrare Cucumber con Selenium Webdriver.

Che cos'è la Cucumber?

Cucumber è un approccio di test che supporta lo sviluppo guidato dal comportamento (BDD). Spiega il comportamento dell'applicazione in un semplice testo inglese utilizzando la lingua Gherkin.

Scopri di più su – https://www.guru99.com/cucumber-tutorials.html

Che cos'è la Selenium?

Selenium è uno strumento di automazione per Test di funzionalità dell'applicazione basata sul web. Selenium supporta linguaggi diversi come Java, Ruby, Python C#, ecc.

Scopri di più su – https://www.guru99.com/selenium-tutorial.html

Perché usare Cucumber con Selenium?

Cucumber e a Selenium sono due tecnologie popolari.

La maggior parte delle organizzazioni utilizza Selenium per prove funzionali. Queste organizzazioni che utilizzano Selenium, voglio integrare Selenium con Cucumber as Cucumber fa è facile da leggere e comprendere il flusso dell'applicazione.

Cucumber lo strumento si basa sul framework Behavior Driven Development che funge da ponte tra le seguenti persone:

  1. Ingegnere informatico e analista aziendale.
  2. Tester manuale e tester di automazione.
  3. Tester manuale e sviluppatori.

Cucumber Anche il framework BDD avvantaggia il cliente nella comprensione del codice dell'applicazione poiché utilizza il linguaggio Gherkin che è in testo semplice. Chiunque nell'organizzazione può comprendere il comportamento del software. La sintassi di Gherkin è in un testo semplice, leggibile e comprensibile.

Cucumber con Selenium

Prerequisito per l'utilizzo Cucumber con Selenium

Prima di iniziare Cucumber Selenium integrazione, abbiamo bisogno dei seguenti elementi:

  • Selenium file jar:
  • Selenium-server-autonomo

Può essere scaricato su http://www.seleniumhq.org/download/

Prerequisito per l'utilizzo Cucumber con Selenium

File Jar per Cucumber :

  • Cucumber-nucleo
  • Cucumber-html
  • copertura del codice di copertura
  • Cucumber-Giava
  • Cucumber-giusto
  • Cucumber-jvm-deps
  • Cucumberrefertazione
  • Nucleo di Hamcrest
  • Cetriolino
  • giunzione

Può essere scaricato su https://mvnrepository.com/search?q=Cucumber

È necessario cercare i file e scaricarli uno per uno individualmente.

Ad esempio, ti mostreremo come scaricare uno dei file jar, ovvero "Cucumber-nucleo."

Fare clic sul collegamento di download qui sopra. Reindirizza al sito sottostante. Ora cerca il barattolo particolare, ovvero 'Cucumber Core' come mostrato nella schermata seguente:

Prerequisito per l'utilizzo Cucumber con Selenium

Nella pagina successiva, Click della versione 1.2.2,

Prerequisito per l'utilizzo Cucumber con Selenium

Nella schermata successiva, fare clic su download per ottenere il "Cucumber File jar Core'.

Prerequisito per l'utilizzo Cucumber con Selenium

Note:: Per tua comodità, abbiamo raggruppato i file jar necessari per il download da Maven qui. Con il tempo questi vasetti potrebbero aggiornarsi e diventare incompatibili. Viene richiesto di scaricarli utilizzando il metodo sopra illustrato.

Test di automazione utilizzando Cucumber con Selenium.

Studiamo i passaggi da utilizzare Cucumber con il selenio passo dopo passo. Qui tratteremo 3 scenari:

  • Scenario 1: stampa del testo nella console.
  • Scenario 2: immettere le credenziali di accesso e reimpostare il valore.
  • Scenario 3: inserire le credenziali di accesso su Guru99 e reimpostare il valore. Fatelo per 3 set di dati.

Scenario 1: stampa del testo nella console.

In questo scenario, stampiamo semplicemente il testo nella console utilizzando Cucumber.

Passo 1) Crea un progetto in Eclipse.

Creare Java progetto dal nome “CucumberCon Selenium" come mostrato nello screenshot qui sotto.

Test di automazione utilizzando Cucumber con Selenium

Test di automazione utilizzando Cucumber con Selenium

Passo 2) Aggiunta di file Jar nel progetto.

Fare clic con il tasto destro sul progetto > Seleziona Proprietà > Vai a Java Costruisci percorso. Aggiungi tutte le librerie scaricate in precedenza.

Test di automazione utilizzando Cucumber con Selenium

Passo 3) Creazione del file delle caratteristiche

Per creare un file di funzionalità, crea prima la cartella delle funzionalità come mostrato nello screenshot seguente.

Test di automazione utilizzando Cucumber con Selenium

Ora inserisci il nome della cartella "Funzioni" e fai clic sul pulsante "Fine".

Test di automazione utilizzando Cucumber con Selenium

Test di automazione utilizzando Cucumber con Selenium

Ora crea un file di funzionalità nella cartella "Features" con il nome "MyTest.feature" – Il processo è simile alla creazione di una cartella

Test di automazione utilizzando Cucumber con Selenium

Nota: Potrebbe essere necessario installare il file Cucumber Eclipse Plugin affinché funzioni. Vai a - Guida->Installa nuovo software->copia e incolla il collegamento http://cucumber.github.io/cucumber-eclipse/update-site/ e installare

Passo 4) Scrivi scenari.

Le righe seguenti sono scritte nel file "MyTest.feature" utilizzando il linguaggio Gherkin come mostrato di seguito:

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			

Spiegazione del codice

Riga 1) In questa riga scriviamo funzionalità aziendali.

Riga 2) In questa riga scriviamo uno scenario da testare.

Riga 3) In questa riga definiamo la precondizione.

Riga 4) In questa riga definiamo l'azione che dobbiamo eseguire.

Riga 4) In questa riga definiamo l'esito o il risultato atteso.

Passo 5) Scrittura di script di testrunner di selenio per Selenium Cucumber progettazione del quadro

Qui creiamo il pacchetto "TestRunner" e quindi il file di classe "Runner.java" sotto di esso.

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 codice di esempio, eseguiamo il file prova del cetriolo utilizzando le seguenti annotazioni:

@Corri con() L'annotazione indica la classe del test runner per iniziare a eseguire i nostri test.

@CucmberOptions() l'annotazione viene utilizzata per impostare alcune proprietà per il nostro test del cetriolo come file di funzionalità, definizione del passaggio, ecc.

Schermata del file TestRunner.

Test di automazione utilizzando Cucumber con Selenium

Passo 6) Creazione dello script di definizione dei passaggi.

Ora qui creiamo il pacchetto 'StepDefinition' e poi il file script 'Steps.java' sotto di esso. Qui scriviamo effettivamente uno script selenium per eseguire il test sotto Cucumber metodi.

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.");					
    }		

}

Nel codice precedente, la classe viene creata con il nome "Steps". Cucumber l'annotazione viene utilizzata per mappare con il file delle caratteristiche. Ogni metodo di annotazione è definito:

@Dato annotazione definisce il metodo per aprire Firefox e avviare l'applicazione

@Quando metodo di definizione dell'annotazione per immettere nome utente e password

@Poi metodo di definizione dell'annotazione per reimpostare la credenziale

Con ciascun metodo, stampiamo solo un messaggio.

Di seguito è riportato lo screenshot dello script "Steps.java" e dell'albero del progetto, come appare.

Test di automazione utilizzando Cucumber con Selenium

Nota: La definizione dei passaggi non è altro che i passaggi che desideri eseguire con questo metodo del cetriolo.

Passo 7) Esecuzione dello script.

L'utente può eseguire questo script dallo script del Test runner, ovvero "Runner.java" come mostrato nello screenshot seguente.

Test di automazione utilizzando Cucumber con Selenium

Passo 8) Analizzare l'output.

Eseguendo lo script "Runner.java", viene visualizzato il testo sulla console. È lo stesso testo definito nello script 'Steps.java'.

Test di automazione utilizzando Cucumber con Selenium

Scenario 2: immettere le credenziali di accesso e reimpostare il valore.

Qui inseriremo semplicemente le credenziali nella pagina di accesso demo di Guru99 e reimposteremo il valore

Per lo scenario 2 dobbiamo aggiornare solo lo script 'Steps.java'. Qui scriviamo effettivamente lo script selenium come mostrato nei passaggi sottostanti. Per prima cosa, dobbiamo aggiungere Selenium jar a questo progetto.

Inserisci le credenziali di accesso e reimposta il valore

Passo 1) Qui aggiorniamo lo script "Steps.java" come mostrato nel codice e nello screenshot seguenti.

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 dello script di selenio sopra.

Inserisci le credenziali di accesso e reimposta il valore

Passo 2) Esegui lo script.

Dopo l'aggiornamento eseguiamo Runner.java.

Passo 3) Analizzare l'output.

Nell'output è possibile vedere quanto segue:

  • Browser avviato.
  • Viene aperto il sito demo della banca Guru99.
  • Nome utente e password vengono inseriti nella pagina di accesso.
  • Reimpostare i valori.

Inserisci le credenziali di accesso e reimposta il valore

Scenario 3: inserire le credenziali di accesso su Guru99 e reimpostare il valore. Fatelo per 3 set di dati.

Qui dobbiamo aggiornare sia "Step.java" che il file delle funzionalità.

Passo 1) Aggiorna il file delle funzionalità come mostrato di seguito:

Here we update the feature file with 'Scenario Outline' and  'examples' syntax.

Feature: Reset functionality on login page of Application				


Scenario Outline: Verification of reset button with numbers of credential


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        |

// In this line we define the set of data.

Inserisci le credenziali di accesso

Passo 2) Ora aggiorna lo script Step.java.

Qui aggiorniamo i metodi per passare i parametri, script aggiornato 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("www.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();					
    }		
}		

Inserisci le credenziali di accesso

Passo 3) Ora esegui lo script aggiornato.

La schermata seguente mostra l'esecuzione corretta dello script e il tempo impiegato da ciascun set di dati.

Inserisci le credenziali di accesso

Passo 4) Analizzare l'output.

Nell'output è possibile vedere quanto segue:

L'output di seguito viene ripetuto per il numero di set di dati, ovvero 3 set.

  • Browser avviato.
  • Viene aperto il sito demo della banca Guru99.
  • Nome utente e password vengono inseriti nella pagina di accesso.
  • Reimpostare i valori.

Inserisci le credenziali di accesso

Conclusione

Cucumber è uno strumento BDD molto popolare. È di facile lettura e può essere compreso da tutte le parti interessate, comprese le persone tecniche e non tecniche.

Cucumber può essere integrato con Selenium utilizzando i seguenti 3 passaggi

  1. Crea un file di funzionalità in cui definire la funzionalità e gli scenari passo dopo passo utilizzando il linguaggio Gherkin.
  2. Crea il file del testrunner. In questo file abbiamo integrato Cucumber con struttura BDD in Selenium. Eseguiamo questo script.
  3. Crea definizione Step, l'effettivo script di selenio definito in questo pacchetto.

Per saperne di più leggi di più