Test Automation using Selenium and Cucumber Framework: Tutorial

Le applicazioni web sono diventate essenziali per le aziende che cercano modi avanzati per connettersi e servire il loro pubblico di destinazione nel regno digitale. Data l’importanza delle applicazioni web nelle operazioni aziendali oggigiorno, indipendentemente dal settore, devono essere testate in modo completo per garantire che offrano esperienze utente di fascia alta.

Il test di automazione accelera il ciclo di vita dello sviluppo del software. Inoltre, adottando l’approccio Behaviour Driven Development (BDD) allo sviluppo, diversi stakeholder come sviluppatori, QA e team non tecnici possono collaborare attivamente al progetto.

Gli scenari sono scritti in base al comportamento previsto del software e viene testato per verificare se corrisponde a tali scenari.

Fonte immagine

Questi scenari sono documentati utilizzando un linguaggio specifico del dominio come Gherkin. In ogni scenario di test, i costrutti di linguaggio naturale che costituiscono piccole frasi in stile inglese vengono utilizzati per descrivere il comportamento e il risultato atteso di un’applicazione. Questo viene fatto utilizzando uno strumento software dedicato come Cucumber, che consente l’esecuzione di test di accettazione automatizzati scritti in Gherkin.

Cos’è Cucumber?

Cucumber è un framework di test open source che supporta lo sviluppo guidato dal comportamento per i test di automazione delle applicazioni web. I test vengono prima scritti in una semplice forma di scenario che descrive il comportamento previsto del sistema dal punto di vista dell’utente.

Utilizzato in gran parte per i test di accettazione, Cucumber è scritto in Ruby, mentre i test sono scritti in Gherkin, un linguaggio non tecnico e leggibile dall’uomo.

Test di cetriolo e selenio: un approccio collaborativo

Mentre i test automatici di selenio aggiungono precisione e velocità al ciclo di sviluppo, Cucumber aggiunge un ulteriore vantaggio ad esso, rendendolo più collaborativo per le parti interessate della gestione non tecnica. Molto vantaggioso per i test di accettazione degli utenti in cui gli scenari di test sono in gran parte guidati dal comportamento, Cucumber rafforza i test di automazione.

Il framework Cucumber

Il framework Cucumber consiste principalmente di tre parti principali: Feature File, Definizioni dei passaggi e il file Test Runner.

File delle funzionalità

Un’unità autonoma o una singola funzionalità (come un accesso) per un progetto può essere chiamata una caratteristica. Ciascuna di queste caratteristiche avrà scenari che devono essere testati utilizzando Selenio integrato con Cetriolo. Un file che memorizza i dati sulle funzionalità, le loro descrizioni e gli scenari da testare è chiamato file di funzionalità.

I test di cetriolo sono scritti in questi file di funzionalità che sono memorizzati con l’estensione – “.feature” . A un Feature File può essere fornita una descrizione per rendere la documentazione più leggibile.

Esempio:

La funzione Login su un sito web

Feature File Name: userLogin .feature

Descrizione: l’utente sarà in grado di accedere inserendo il nome utente e la password corretti nei campi corretti. L’utente dovrebbe essere indirizzato alla home page se il nome utente e la password inseriti sono corretti.

Parole chiave come GIVEN, WHEN e THEN utilizzate per scrivere il test in Cucumber sono chiamate Annotazioni.

  • GIVEN l’utente accede alla pagina di accesso aprendo Firefox
  • QUANDO l’utente inserisce il < nome utente > E < password > valori
  • ALLORA l’utente viene indirizzato a t a homepage

Definizioni dei passaggi

Ora che le funzionalità sono scritte nei file delle funzionalità, è necessario eseguire il codice per lo scenario correlato. Per sapere quale batch di codice deve essere eseguito per un determinato scenario, vengono visualizzate le definizioni dei passaggi. Un file di definizioni dei passaggi memorizza i dati di mappatura tra ogni fase di uno scenario definito nel file delle caratteristiche e il codice da eseguire.

Definizioni dei passaggi può utilizzare sia i comandi Java che Selenium per le funzioni Java scritte per mappare un feature file nel codice.

Esempio:

package StepDefinition;import cucumber.api.java.en.Given;import cucumber.api.java.en.Then;import cucumber.api.java.en.When;public class Steps{@Given("^user navigates to the login page by opening Firefox$")//Code to Open Firefox Browser and launch the login page of application to define the GIVEN step of the feature@When("^user enters correct username and password values$")//take inputs for username and password fields using find element by xpath. Put the correct username and password values as inputs to define the WHEN step of the feature@Then ("^user gets directed to homepage$”)//Direct to the Homepage of the application as a result of correct username and password inputs in the WHEN step. This would define the THEN step of the feature

Test Runner File

Per eseguire il test, uno necessita di un file Test Runner, che è una classe JUnit Test Runner contenente la posizione della definizione del passaggio e gli altri metadati primari necessari per eseguire il test.

Il file Test Runner utilizza l’annotazione @RunWith () da JUnit per esecuzione di test. Utilizza anche l’annotazione @CucumberOptions per definire la posizione dei file delle caratteristiche, le definizioni dei passaggi, le integrazioni dei rapporti, ecc.

Esempio:

Classe del runner di prova nel pacchetto cucumberTest, con i file delle caratteristiche nella posizione “src / test / Feature” e nei file di definizione del passaggio nella cartella “src / main / stepDefinition”.

Configurazione di Cucumber Framework

Prima di esplorare come funziona Cucumber e come scrivere un test al selenio del cetriolo, prima scopriamo come impostare il cetriolo.L’installazione dei prerequisiti menzionati di seguito è tutto ciò di cui un utente ha bisogno per iniziare con Cucumber Automation Testing.

Prerequisiti per Cucumber and Selenium Setup

  • Installa Java
  • Installa Eclipse IDE per Java
  • Installa Maven
  • Installa Selenium Webdriver
  • Installa JUnit
  • Installa Cucumber

Come scrivere un test in Cucumber per l’automazione del selenio?

Portando avanti lo scenario della funzionalità di accesso, creiamo un test di esempio in Cucumber. Questo codice eseguirà lo scenario di accesso descritto nella sezione Funzionalità e aprirà la home page del sito web dopo aver immesso il nome utente e la password corretti.

Best practice nel test dei cetrioli

Eccone alcune le migliori pratiche nel test dei cetrioli:

  • Le versioni dei barattoli Cucumber-java, Cucumber-junit e Cucumber-core dovrebbero essere le stesse per una connettività senza interruzioni.
  • Aggiunta di un dopo l’aggancio al codice per acquisire schermate quando il test fallisce può aiutare a diagnosticare il problema ed eseguirne il debug.
  • Utilizza i tag per organizzare i test in base alla definizione del tag. Questo aiuta nei casi in cui non è necessario eseguire tutti i test ogni volta. Tali test possono essere contrassegnati utilizzando tag ed eseguiti solo quando necessario. Ciò consente di risparmiare tempo e capacità di elaborazione del sistema e delle risorse.
  • Come sempre, è importante eseguire i test Cucumber Selenium su browser e dispositivi reali. BrowserStack offre una griglia Cloud Selenium di oltre 2000 browser e dispositivi reali a scopo di test, sia live che automatizzati. È sufficiente registrarsi, scegliere la combinazione dispositivo-browser-sistema operativo richiesta e iniziare a testare i siti Web gratuitamente.

Eseguire test di selenio gratuitamente

L’automazione del test è assolutamente essenziale per tenere il passo con le crescenti richieste di consegna più rapida e qualità ottimale per i tester. Il framework Cucumber in Selenium consente di scrivere scenari di test utilizzando costrutti in linguaggio naturale che descrivono il comportamento previsto del software per un determinato scenario, rendendolo ideale per i test di accettazione degli utenti.

Infine, testare i siti Web su un dispositivo reale il cloud è l’unico modo per garantire la completa accuratezza dei risultati. Quindi, scegli sempre il test del dispositivo reale per verificare in modo completo le prestazioni del sito web, la compatibilità tra browser e la qualità dell’esperienza utente che offre.

Write a Comment

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *