cucumber gherkin tutorial
Aquest tutorial informatiu explica els avantatges del Framework Cogombre Gherkin i com escriure scripts d'automatització mitjançant el llenguatge Gherkin amb exemples clars:
El cogombre és una eina basada en el marc de desenvolupament de comportament (BDD). BDD és una metodologia per entendre la funcionalitat d'una aplicació en la representació simple de text pla.
L’objectiu principal del marc de desenvolupament impulsat pel comportament és fer que diverses funcions del projecte, com ara analistes de negocis, garantia de qualitat, desenvolupadors, etc., entenguin l’aplicació sense aprofundir en els aspectes tècnics.
L’eina de cogombre s’utilitza generalment en temps real per escriure proves d’acceptació d’una aplicació. L'eina Cucumber proporciona suport per a molts llenguatges de programació com Java, Ruby, .Net, etc. Es pot integrar amb diverses eines com Selenium, Capybara, etc.
Què aprendreu:
- Què és Gherkin?
- Avantatges del Cogombre Gherkin Framework
- Integració de cogombre amb seleni
- Conclusió
Què és Gherkin?
El cogombre és el llenguatge utilitzat per l'eina Cucumber. És una simple representació en anglès del comportament de l'aplicació. Cogombre utilitza el concepte de fitxers de funcions amb finalitats de documentació. El contingut dels fitxers de funcions està escrit en idioma Gherkin.
En els temes següents, veurem més informació sobre els avantatges del framework Cucumber Gherkin, la integració de Cucumber amb Selenium, la creació d’un fitxer de característiques i el seu corresponent fitxer de definició de passos i un fitxer de característiques de mostra.
Termes comuns per al marc de cogombre de cogombre
El framework Cucumber Gherkin utilitza certes paraules clau que són essencials per escriure un fitxer de funcions.
Els termes següents s’utilitzen més sovint als fitxers de funcions:
# 1) Funció:
Un fitxer de funcions ha de proporcionar una descripció d'alt nivell d'una aplicació sota prova (AUT). La primera línia del fitxer de funcions ha de començar amb la paraula clau 'Funció' després de la descripció deuna aplicacióen prova. Segons els estàndards prescrits per Cucumber, el fitxer de funcions ha d'incloure els tres elements següents com a primera línia.
- Paraula clau de funció
- Nom de la funció
- Descripció de la funció (opcional)
La paraula clau de funció ha d'anar seguida d'un nom de funció. Pot incloure una secció de descripció opcional que pot abastar diverses línies del fitxer de funcions. Un fitxer de funcions té l'extensió .feature.
# 2) Escenari:
Un escenari és una especificació de prova de la funcionalitat a provar. Idealment, un fitxer de funcions pot contenir un o més escenaris com a part de la funció. Un escenari inclou diversos passos de prova. Segons els estàndards del cogombre, un escenari ha d'incloure 3-5 passos de prova, ja que els escenaris llargs solen perdre el seu poder expressiu un cop augmenta el nombre de passos.
Un escenari pot incloure els passos següents:
- Acció que ha de realitzar un usuari.
- Resultats esperats de l'acció.
En idioma Gherkin, un escenari ha d'incloure les paraules clau següents:
- Donat
- Quan
- Llavors
- I
Dada:
La paraula clau donada s'utilitza per especificar les condicions prèvies per executar un escenari específic. Un escenari pot incloure més d'una declaració donada o no hi pot haver declaracions donades per a un escenari.
Quan:
Aquesta paraula clau s'utilitza per especificar l'acció o un esdeveniment realitzat per l'usuari, com ara fer clic en un botó, introduir dades al quadre de text, etc. Hi pot haver múltiples sentències quan en un únic escenari.
Després:
A continuació, s'utilitza la paraula clau per especificar el resultat esperat d'una acció realitzada per l'usuari. Idealment, quan la paraula clau ha d'anar seguida de la paraula clau Then per entendre el resultat esperat de les accions de l'usuari.
I:
I la paraula clau s’utilitza com a paraula clau de conjunció per combinar diverses afirmacions. Per exemple, Es poden combinar múltiples declaracions de 'Dades' i 'Quan' en un escenari mitjançant la paraula clau 'I'.
# 3) Esquema de l'escenari:
Un esquema d’escenaris és una forma de parametrització d’escenaris.
Això s’utilitza idealment quan cal executar el mateix escenari per a diversos conjunts de dades, però els passos de prova continuen sent els mateixos. L'esquema de l'escenari ha d'anar seguit de la paraula clau 'Exemples', que especifica el conjunt de valors de cada paràmetre.
A continuació es mostra l’exemple per entendre el concepte de l’escenari:
Exemple:
Esquema de l'escenari: Pengeu un fitxer
Donat que un usuari es troba a la pantalla de fitxers de càrrega.
Quan l’usuari fa clic al botó Examinar.
I l'usuari entra al quadre de text de càrrega.
I l'usuari fa clic al botó d'inici.
Llavors verifica que la càrrega de fitxers sigui correcta.
Exemples:
| nom del fitxer |
| fitxer1 |
| fitxer2 |
Els paràmetres de l’esquema de l’escenari s’han d’especificar amb els caràcters ‘’. Cal especificar una llista de valors de dades per al paràmetre mitjançant el símbol Pipe (|).
# 4) Antecedents:
La paraula clau de fons s’utilitza per agrupar diverses afirmacions donades en un sol grup.
Normalment s’utilitza quan es repeteix el mateix conjunt d’instruccions donades en cada escenari d’un fitxer de funcions. En lloc d'especificar les afirmacions donades per a cada escenari repetidament, es poden especificar amb la paraula clau 'Fons' abans del primer escenari.
Exemple:
Antecedents:
L'usuari donat es troba a la pàgina d'inici de sessió de l'aplicació
Avantatges del Cogombre Gherkin Framework
A continuació es detallen els avantatges del marc Cucumber Gherkin que fan del Cucumber una opció ideal per a una metodologia Agile en ràpida evolució en el món corporatiu actual:
- El cogombre és una eina de codi obert.
- La representació de text pla facilita la comprensió dels escenaris per a usuaris no tècnics.
- Cobreix la bretxa comunicativa entre diversos grups d'interès del projecte, com ara analistes de negocis, desenvolupadors i personal de garantia de qualitat.
- Els casos de proves d'automatització desenvolupats amb l'eina Cucumber són més fàcils de mantenir i comprendre.
- Fàcil d'integrar amb altres eines com Selenium i Capybara.
Integració de cogombre amb seleni
El cogombre i el seleni són les dues eines de proves funcionals més potents. La integració de Cogombre amb Selenium Webdriver ajuda a diversos membres no tècnics d’un equip del projecte a entendre el flux d’aplicacions.
A continuació es detallen els passos a seguir per a la integració de Cucumber amb Selenium Webdriver:
Pas 1:
El cogombre es pot integrar amb Selenium Webdriver descarregant els fitxers JAR necessaris.
A continuació es mostra la llista de fitxers JAR que es descarregaran per fer servir Cucumber amb Selenium Webdriver:
- cobertura-2.1.1.jar
- cucumber-core-1.2.2.jar
- cogombre-java-1.2.2.jar
- cogombre-junit-1.2.2.jar
- cucumber-jvm-deps-1.0.3.jar
- cucumber-reporting-0.1.0.jar
- cogombre-2.12.2.jar
- hamcrest-core-1.3.jar
- junit-4.11.jar
Els fitxers JAR anteriors es poden descarregar des de Maven lloc web .
Cadascun dels fitxers JAR anteriors s’ha de descarregar individualment des del lloc web anterior.
Pas 2:
Creeu un projecte nou a Eclipse i afegiu els fitxers JAR anteriors al projecte. Per afegir els fitxers JAR al projecte, feu clic amb el botó dret al ratolí project -> Build Path -> Configure Build Path.
Fer clic a Afegiu JAR externs i afegiu la llista dels fitxers JAR anteriors al projecte.
Pas 3:
Abans de crear els fitxers de funcions i fitxers de definició de passos, hem d’instal·lar un connector Natural a Eclipse. Es pot fer copiant i enganxant el fitxer URL a Ajuda -> Instal·la un programari nou -> URL
Feu clic al botó Botó següent per instal·lar el connector a Eclipse.
Creació d’un fitxer de funcions
Creeu carpetes separades per a fitxers de funcions i fitxers de definició de passos a l'estructura del projecte. Els fitxers de definició de passos inclouen línies de codificació Java, mentre que el fitxer de funcions conté sentències en anglès en forma de llenguatge Gherkin.
- Creeu una carpeta independent per emmagatzemar el fitxer de funcions fent clic amb el botó dret del ratolí al projecte -> Nou -> Paquet .
- El fitxer de funcions es pot crear navegant a Feu clic dret al projecte / paquet -> Nou -> Fitxer .
- Proporcioneu un nom per al fitxer de funcions. El fitxer de funcions ha d'anar seguit de l'extensió .feature
- L’estructura del projecte ha de ser semblant a l’estructura següent.
Creació d’un fitxer de definició de passos
Cada pas del fitxer de funcions s'ha d'assignar a una definició de pas corresponent. Les etiquetes que s’utilitzen al fitxer Cucumber Gherkin s’han d’assignar a la definició del pas mitjançant les etiquetes @Given, @When i @Then.
A continuació es mostra la sintaxi d’un fitxer de definició de passos:
Sintaxi:
@TagName ('^ Nom del pas $')
Public void methodName ()
{
Definició del mètode
}
preguntes i respostes d'entrevistes per a desenvolupadors de bases de dades pdf
Els noms dels passos s’han de posar amb el símbol quirat (^) i amb el símbol ($). El nom del mètode pot ser qualsevol nom vàlid que sigui acceptable segons els estàndards de codificació Java. La definició del mètode inclou sentències de codificació en Java o en qualsevol altre llenguatge de programació que vulgueu triar.
Fitxers de funcions i exemples de fitxers de definició de passos
Per crear fitxers de característiques i fitxers de definició de passos, es pot utilitzar el següent escenari:
Escenari:
- Obriu la pàgina d'inici de sessió d'una aplicació en prova.
- Introduïu el nom d'usuari
- Introduïu la contrasenya
- Feu clic al botó Iniciar sessió.
- Verifiqueu si l'inici de sessió de l'usuari és correcte.
Fitxer de funcions:
L'escenari anterior es pot escriure en forma de fitxer de funcions com es mostra a continuació:
Característica: Inicieu la sessió a una aplicació en proves.
Escenari: Inicieu sessió a l'aplicació.
Donat Obriu el navegador Chrome i inicieu l'aplicació.
Quan L'usuari introdueix el nom d'usuari al camp Nom d'usuari.
I L'usuari introdueix una contrasenya al camp Contrasenya.
Quan L'usuari fa clic al botó Inici de sessió.
Fitxer de definició de passos:
A la funció anterior, es pot assignar un fitxer al fitxer de definició de passos corresponent, tal com es mostra a continuació. Tingueu en compte que per proporcionar un enllaç entre el fitxer de funcions i el fitxer de definició de passos, cal crear un fitxer corredor de prova.
A continuació es mostra la representació del fitxer de definició de passos segons el seu fitxer de funcions.
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 s'utilitza per proporcionar l'enllaç entre el fitxer de característiques i el fitxer de definició de passos. A continuació es mostra la representació de mostra de l’aspecte de la classe TestRunner. Una classe TestRunner és generalment una classe buida sense definició de 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 { }
Hem d'executar el fitxer de classe TestRunner per a l'execució de fitxers de característiques i fitxers de definició de passos.
Exemples
A continuació es mostra la representació del fitxer de funcions de diversos escenaris.
Exemple 1:
Per verificar si el nom d'usuari i la contrasenya estan disponibles a la pàgina d'inici de sessió:
Característica: Verifiqueu la visualització dels camps de nom d'usuari i contrasenya en una pàgina d'inici de sessió.
Escenari: Per verificar la visualització dels camps de nom d'usuari i contrasenya.
Donat L'usuari obre el navegador Firefox i navega fins a l'aplicació sota prova.
Quan L'usuari navega a una pàgina d'inici de sessió.
Llavors Verifiqueu la visualització del camp de nom d'usuari a la pàgina d'inici de sessió.
I Verifiqueu la visualització del camp de la contrasenya a la pàgina d'inici de sessió.
Exemple 2:
A continuació es mostra l’exemple de la paraula clau d’esquema d’escenari a Cogombre de cogombre:
Característica: Verifiqueu si l'inici de sessió és correcte per a diversos conjunts de dades de prova.
Esquema de l'escenari: Per verificar si l'inici de sessió és correcte per a diversos conjunts de dades de prova.
Donat Obriu el navegador Chrome i inicieu l'aplicació.
Quan L'usuari entra al camp Nom d'usuari.
I L'usuari entra al camp Contrasenya.
Quan L'usuari fa clic al botó Inici de sessió.
Exemples:
| nom d'usuari | contrasenya |
| usuari1 | contrasenya1 |
| usuari2 | contrasenya2 |
Conclusió
- BDD és una metodologia per entendre la funcionalitat d'una aplicació en representació senzilla de text pla.
- El cogombre és una eina que utilitza el desenvolupament impulsat pel comportament per escriure proves d'acceptació d'una aplicació. S'utilitza per salvar la bretxa comunicativa entre els diferents grups d'interès del projecte.
- L’ús principal de Cucumber rau en la seva senzillesa per entendre l’ús de fitxers de funcions per part d’usuaris no tècnics.
No és massa tard per provar aquesta eina Cucumber amb el llenguatge Gherkin.
Lectura recomanada
- Tutorial Geb: proves d'automatització del navegador mitjançant l'eina Geb
- Tutorial de Cogombre Selenium: Integració de Cogombre Java Selenium WebDriver
- Proves d'automatització mitjançant Eina de cogombre i Selenium - Tutorial Selenium # 30
- Què és la prova d'automatització (última guia per iniciar l'automatització de proves)
- Spock Tutorial: proves amb Spock i Groovy
- Les millors eines de prova de programari 2021 (Eines d'automatització de proves de control de qualitat)
- Tutorial de proves destructives i proves no destructives
- Proves funcionals contra proves no funcionals