Cetriolo - Caratteristiche

UN Featurepuò essere definito come unità autonoma o funzionalità di un progetto. Facciamo un esempio molto comune di un sito di social networking. Come si presenta la caratteristica di questo prodotto / progetto? Poche caratteristiche di base possono essere determinate come:

  • Crea e rimuovi l'utente dal sito di social networking.

  • Funzionalità di accesso utente per il sito di social networking.

  • Condivisione di foto o video sul sito di social network.

  • Invio di una richiesta di amicizia.

  • Logout.

Ormai è chiaro che ogni funzionalità indipendente del prodotto in prova può essere definita come una caratteristica quando parliamo di Cucumber. È una buona pratica in seguito, quando si avvia il test, che prima di derivare gli script di test, dovremmo determinare le funzionalità da testare.

Una funzionalità di solito contiene un elenco di scenari da testare per quella funzionalità. Un file in cui memorizziamo le funzionalità, la descrizione delle funzionalità e gli scenari da testare è noto comeFeature File. Vedremo di più sui file di funzionalità nel capitolo successivo.

La parola chiave per rappresentare una caratteristica sotto test in Gherkins è "Feature". La best practice suggerita è scrivere una piccola descrizione della caratteristica sotto il titolo della caratteristica nel file della caratteristica. Ciò soddisferà anche la necessità di una buona documentazione.

Esempio

Feature - Funzionalità di accesso per un sito di social networking.

L'utente dovrebbe essere in grado di accedere al sito del social network se il nome utente e la password sono corretti.

All'utente dovrebbe essere mostrato il messaggio di errore se il nome utente e la password non sono corretti.

L'utente dovrebbe essere indirizzato alla home page, se il nome utente e la password sono corretti.

File di funzionalità

Il file, in cui sono scritti i test di Cucumber, è noto come feature files. È consigliabile che ci dovrebbe essere un file di funzionalità separato, per ogni funzionalità in prova. L'estensione del file delle caratteristiche deve essere ".feature".

È possibile creare tutti i file di funzionalità necessari. Per avere una struttura organizzata, ogni funzionalità dovrebbe avere un file di funzionalità.

Ad esempio -

Suor n Caratteristica Nome del file di funzionalità
1 Login utente userLogin.feature
2 Condividi il post sharePost.feature
3 Creare un profilo createAccount.feature
4 Eliminare l'account deleteAccount.feature

La convenzione di denominazione da utilizzare per il nome della caratteristica, il nome del file della caratteristica dipende dalla scelta dell'individuo. Non esiste una regola di base in Cucumber sui nomi.

Un semplice file di funzioni è costituito dalle seguenti parole chiave / parti:

  • Feature - Nome della funzione in prova.

  • Description (facoltativo) - Descrivi la funzione in prova.

  • Scenario - Qual è lo scenario di prova.

  • Given - Prerequisito prima che i passaggi del test vengano eseguiti.

  • When - Condizione specifica che deve corrispondere per eseguire il passaggio successivo.

  • Then - Cosa dovrebbe accadere se la condizione menzionata in QUANDO è soddisfatta.

Esempio

Feature - Accesso utente sul sito di social networking.

L'utente dovrebbe essere in grado di accedere al sito del social network quando il nome utente e la password sono corretti.

All'utente dovrebbe essere visualizzato un messaggio di errore quando il nome utente e la password non sono corretti.

L'utente dovrebbe essere indirizzato alla home page se il nome utente e la password sono corretti.

Outline - Funzionalità di accesso per un sito di social networking.

L'utente specificato naviga su Facebook. Quando inserisco Username come "<username>" e Password come "<password>". Quindi, il login dovrebbe avere esito negativo.

| username  | password  |
| username1 | password1 |

* AND la parola chiave viene utilizzata per mostrare la congiunzione tra due condizioni. AND può essere utilizzato con qualsiasi altra parola chiave come GIVEN, WHEN e THEN.

Non ci sono dettagli logici scritti nel file delle caratteristiche.

Definizioni dei passaggi

Abbiamo pronto il nostro file di funzionalità con gli scenari di test definiti. Tuttavia, questo non è il lavoro completo fatto. Cucumber non sa quale parte di codice deve essere eseguita per uno scenario specifico delineato in un file di funzionalità.

Ciò richiede la necessità di un file intermedio - Step Definition. Il file di definizione dei passaggi memorizza la mappatura tra ogni passaggio dello scenario definito nel file delle caratteristiche con un codice di funzione da eseguire.

Quindi, ora quando Cucumber esegue un passaggio dello scenario menzionato nel file delle caratteristiche, scansiona il file di definizione del passaggio e capisce quale funzione deve essere chiamata.

Esempio di file di definizione del passaggio

public void goToFacebook() { 
   driver = new FirefoxDriver(); 
   driver.navigate().to("https://www.facebook.com/"); 
} 
@When "^user logs in using Username as \"([^\"]*)\" and Password as \"([^\"]*)\"$" public void I_enter_Username_as_and_Password_as(String arg1, String arg2) { driver.findElement(By.id("email")).sendKeys(arg1); driver.findElement(By.id("pass")).sendKeys(arg2); driver.findElement(By.id("u_0_v")).click(); } @Then"^login should be unsuccessful$" 
public void validateRelogin() { 
   if(driver.getCurrentUrl().equalsIgnoreCase(
      "https://www.facebook.com/login.php?login_attempt=1&lwv=110")){ 
         System.out.println("Test Pass");
   } else { 
      System.out.println("Test Failed"); 
   } 
   driver.close(); 
}

Quindi con ogni funzione, qualunque sia il codice che si desidera eseguire con ogni passo del test (cioè DATO / ALLORA / QUANDO), è possibile scriverlo nel file di definizione del passo. Assicurati che il codice / funzione sia stato definito per ciascuno dei passaggi.

Questa funzione può essere funzioni Java, dove possiamo usare sia i comandi Java che Selenium per automatizzare i nostri passaggi di test.