automation testing using cucumber tool
A l’últim tutorial de Selenium, us vam presentar Reixa de seleni el qual és a execució de proves distribuïdes entorn per accelerar l’execució d’una passada de prova .
Ara, al final d’aquesta sèrie completa de formació sobre seleni, estem aprenent avançats Proves de seleni i conceptes relacionats.
En aquest i el següent tutorial, us presentarem el Cogombre - a Marc per al desenvolupament del comportament (BDD) que s’utilitza amb Selenium per realitzar proves d’acceptació.
Què aprendreu:
- Introducció del Cogombre
- Conceptes bàsics sobre el cogombre
- Configuració del projecte Cucumber:
- Conclusió
- Lectura recomanada
Introducció del Cogombre
Un cogombre és una eina basada en el marc de desenvolupament de comportament (BDD) que s’utilitza per escriure proves d’acceptació de l’aplicació web. Permet automatitzar la validació funcional en un format fàcilment llegible i comprensible (com un anglès senzill) per a analistes de negocis, desenvolupadors, verificadors, etc.
Els fitxers de funcions de cogombre poden ser un bon document per a tothom. Hi ha moltes altres eines com JBehave que també admeten el marc BDD. Inicialment, Cucumber es va implementar a Ruby i després es va estendre al framework Java. Les dues eines admeten JUnit nativa.
El desenvolupament impulsat pel comportament és una extensió del desenvolupament impulsat per proves i s’utilitza per provar el sistema en lloc de provar el fragment de codi concret. Es parlarà més del BDD i de l'estil d'escriptura de proves BDD.
El cogombre es pot utilitzar juntament amb el seleni, el Watir i el capibara, etc. El cogombre admet molts altres llenguatges com Perl, PHP, Python, Net, etc. En aquest tutorial, ens centrarem en el cogombre amb Java com a llenguatge.
Conceptes bàsics sobre el cogombre
Per entendre el cogombre, hem de conèixer totes les característiques del cogombre i el seu ús.
referència indefinida a la funció de classe c ++
# 1) Fitxers de funcions:
Els fitxers de funcions són la part essencial del cogombre que s’utilitza per escriure passos d’automatització de proves o proves d’acceptació. Es pot utilitzar com a document en directe. Els passos són l'especificació de l'aplicació. Tots els fitxers de funcions acaben amb l'extensió .feature.
Fitxer de característiques de mostra:
Funció : Funció de funcionalitat d'inici de sessió
Per garantir que la funcionalitat d’inici de sessió funcioni,
Vull fer la prova de cogombre per verificar que funciona
Escenari : Funcionalitat d'inici de sessió
Donat l'usuari navega a SOFTWARETETINGHELP.COM
Quan l'usuari inicia sessió mitjançant el nom d'usuari com a 'USUARI' i la contrasenya 'CONTRASENYA'
Llavors l'inici de sessió hauria de tenir èxit
Escenari : Funcionalitat d'inici de sessió
Donat l'usuari navega a SOFTWARETETINGHELP.COM
Quan l’usuari inicia la sessió mitjançant el nom d’usuari com a “USER1” i la contrasenya “PASSWORD1”
Llavors s'hauria de llançar un missatge d'error
# 2) Característica:
T proporciona informació sobre la funcionalitat empresarial d'alt nivell (consulteu l'exemple anterior) i el propòsit de l'aplicació sotmesa a prova. Tothom hauria de poder entendre la intenció del fitxer de funcions llegint el primer pas de funcions. Aquesta part es manté bàsicament breu.
# 3) Escenari:
Bàsicament, un escenari representa una funcionalitat particular que està a prova. En veure l’escenari, l’usuari hauria de ser capaç d’entendre la intenció que hi ha darrere de l’escenari i en què consisteix la prova. Cada escenari hauria de seguir el format donat, quan i després. Aquest idioma s’anomena “cogombre”.
- Dada: Com s'ha esmentat anteriorment, donat especifica les condicions prèvies. Bàsicament és un estat conegut.
- Quan : S'utilitza quan s'ha de realitzar alguna acció. Com a l'exemple anterior, hem vist quan l'usuari intenta iniciar la sessió mitjançant un nom d'usuari i una contrasenya, es converteix en una acció .
- Després: El resultat o resultat esperat s’ha de situar aquí. Per exemple: comproveu que l’inici de sessió sigui correcte, la navegació per la pàgina sigui correcta.
- Antecedents: Sempre que calgui fer algun pas en cada escenari, cal situar-los en segon pla. Per exemple: si un usuari necessita esborrar la base de dades abans de cada escenari, es poden posar aquests passos en segon pla.
- I : I s'utilitza per combinar dos o més mateix tipus d'acció.
Exemple:
Funció : Funció de funcionalitat d'inici de sessió
Escenari : Funcionalitat d'inici de sessió
Donat l'usuari navega a SOFTWARETETINGHELP.COM
Quan l'usuari inicia sessió amb el nom d'usuari com a 'USUARI'
I contrasenya com a 'contrasenya'
Llavors l'inici de sessió hauria de tenir èxit
I S'ha de mostrar la pàgina d'inici
diferència entre les proves de fum i seny
Exemple de fons:
Antecedents:
Donat l'usuari ha iniciat la sessió com a administrador de bases de dades
I s'esborren tots els valors brossa
# 4) Esquema de l'escenari:
Els esquemes d’escenari s’utilitzen quan s’ha de realitzar la mateixa prova amb un conjunt de dades diferent. Prenguem el mateix exemple. Hem de provar la funcionalitat d’inici de sessió amb diversos conjunts diferents de noms d’usuari i contrasenya.
Funció : Funció de funcionalitat d'inici de sessió
Per garantir que la funcionalitat d’inici de sessió funcioni,
Vull fer la prova de cogombre per verificar que funciona
Esquema de l’escenari : Funcionalitat d'inici de sessió
Donat l'usuari navega a SOFTWARETESTINGHELP.COM
Quan l'usuari inicia sessió amb el nom d'usuari com a< nom d'usuari > i contrasenya< contrasenya >
Llavors l'inici de sessió hauria de tenir èxit
Exemples:
| nom d'usuari | contrasenya |
| Tom | contrasenya1 |
| Harry | contrasenya2 |
| Jerry | contrasenya3 |
Nota:
- Com es mostra a l'exemple anterior, els noms de columnes es passen com a paràmetre a Quan declaració.
- En lloc de l’escenari, heu d’utilitzar l’esquema de l’escenari.
- S’utilitzen exemples per passar diferents arguments en format tabular. Les canonades verticals s’utilitzen per separar dues columnes diferents. Un exemple pot contenir moltes columnes diferents.
# 5) Etiquetes:
El cogombre per defecte executa tots els escenaris de tots els fitxers de funcions. En projectes en temps real, hi pot haver centenars de fitxers de funcions que no estiguin obligats a executar-se en tot moment.
Per exemple : Els fitxers de funcions relacionats amb la prova de fum no necessiten executar-se tot el temps. Per tant, si esmenta una etiqueta sense fum a cada fitxer de funcions relacionada amb la prova de fum i que fa una prova de cogombre amb l’etiqueta @SmokeTest. Cucumber només executarà aquells fitxers de característiques específics per a determinades etiquetes. Seguiu l'exemple següent. Podeu especificar diverses etiquetes en un fitxer de funcions.
Exemple d'ús d'etiquetes individuals:
@FumTest
Funció : Funció de funcionalitat d'inici de sessió
Per garantir que la funcionalitat d’inici de sessió funcioni,
Vull fer la prova de cogombre per verificar que funciona
Esquema de l’escenari : Funcionalitat d'inici de sessió
Donat l'usuari navega a SOFTWARETESTINGHELP.COM
Quan l'usuari inicia sessió amb el nom d'usuari com a< nom d'usuari > i contrasenya< contrasenya >
Llavors l'inici de sessió hauria de tenir èxit
Exemples:
| nom d'usuari | contrasenya |
| Tom | contrasenya1 |
| Harry | contrasenya2 |
| Jerry | contrasenya3 |
Exemple d'ús de diverses etiquetes:
Com es mostra a l'exemple següent, es pot utilitzar el mateix fitxer de funcions tant per als escenaris de prova de fum com per a la prova d'inici de sessió. Quan tingueu intenció d'executar el vostre script per a una prova de fum, utilitzeu @SmokeTest. De la mateixa manera, quan vulgueu que el vostre script s’executi per a la prova d’inici de sessió, utilitzeu l’etiqueta @LoginTest.
Es pot esmentar qualsevol nombre d’etiquetes tant per a un fitxer de funcions com per a escenaris.
@SmokeTest @LoginTest
Funció : Funció de funcionalitat d'inici de sessió
Per garantir que la funcionalitat d’inici de sessió funcioni,
Vull fer la prova de cogombre per verificar que funciona
Esquema de l’escenari : Funcionalitat d'inici de sessió
Donat l'usuari navega a SOFTWARETETINGHELP.COM
Quan l’usuari inicia la sessió mitjançant el nom d’usuari com a i la contrasenya
Llavors l'inici de sessió hauria de tenir èxit
Exemples:
| nom d'usuari | contrasenya |
| Tom | contrasenya1 |
| Harry | contrasenya2 |
| Jerry | contrasenya3 |
De la mateixa manera, podeu especificar etiquetes per executar l'escenari específic en un fitxer de funcions. Consulteu l'exemple següent per executar un escenari específic.
Funció : Funció de funcionalitat d'inici de sessió
Per garantir que la funcionalitat d’inici de sessió funcioni,
Vull fer la prova de cogombre per verificar que funciona
@positiveScenario
Escenari : Funcionalitat d'inici de sessió
Donat l'usuari navega a SOFTWARETETINGHELP.COM
Quan l'usuari inicia sessió mitjançant el nom d'usuari com a 'USUARI' i la contrasenya 'CONTRASENYA'
Llavors l'inici de sessió hauria de tenir èxit
@negaviveScenario
Escenari : Funcionalitat d'inici de sessió
quin tipus de prova s’utilitza per verificar que el nou sistema funciona amb dades reals?
Donat l'usuari navega a SOFTWARETETINGHELP.COM
Quan l’usuari inicia la sessió mitjançant el nom d’usuari com a “USER1” i la contrasenya “PASSWORD1”
Llavors s'hauria de llançar un missatge d'error
# 6) Corredor JUnit:
Per executar el fitxer de característiques específiques, el cogombre utilitza JUnit Runner estàndard i especifiqueu etiquetes a @Cucumber. Opcions. Es poden donar diverses etiquetes mitjançant comes separades. Aquí podeu especificar el camí de l’informe i el tipus d’informe que voleu generar.
Exemple de Junit Runner:
import cucumber.api.junit.Cucumber;
importació org.junit.runner.RunWith; @RunWith (Cucumber.class) @ Cucumber.Options (format = {'SimpleHtmlReport: report / smokeTest.html'}, tags = {'@ smokeTest'}) Classe pública JUnitRunner {} De la mateixa manera, podeu donar instruccions al cogombre per executar diverses etiquetes. L'exemple següent il·lustra com utilitzar diverses etiquetes al cogombre per executar diferents escenaris.
import cucumber.api.junit.Cucumber; import org.junit.runner.RunWith; @RunWith(Cucumber.class) @Cucumber.Options(format={'SimpleHtmlReport:report/smokeTest.html'},tags={'@smokeTest',”@LoginTest”}) Public class JUnitRunner { }
# 7) Informe de cogombre:
El cogombre genera el seu propi format HTML. No obstant això, es poden fer millors informes mitjançant Jenkins o una eina de bambú. Els detalls dels informes es tracten al següent tema del cogombre.
Configuració del projecte Cucumber:
L'explicació detallada de la configuració del projecte de cogombre està disponible per separat al següent tutorial. Consulteu la part 2 del tutorial de cogombre per obtenir més informació sobre la configuració del projecte. Recordeu que no cal instal·lar programari addicional per al cogombre.
Implementació del fitxer de funcions:
Hem d’implementar aquests passos a Java per provar els fitxers de funcions. Cal crear una classe que contingui les declaracions donades, quan i després. El cogombre utilitza les seves anotacions i tots els passos estan incrustats en aquestes anotacions (donades, quan, llavors). Cada frase comença per '^' perquè el cogombre entengui l'inici del pas. De la mateixa manera, cada pas finalitza amb '$'. L'usuari pot utilitzar expressions regulars per passar diferents dades de prova. Les expressions regulars prenen dades dels passos de les funcions i passen a les definicions de passos. L'ordre dels paràmetres depèn de com es passin del fitxer de funcions. Consulteu el següent tutorial per a la configuració del projecte i l'assignació entre fitxers de funcions i classes de Java.
Exemple:
L'exemple següent és per il·lustrar com es poden implementar els fitxers de funcions.
En aquest exemple, no hem utilitzat cap API de seleni. Això és només per mostrar com funciona el cogombre com a marc independent. Seguiu el següent tutorial per a la integració de seleni amb cogombre.
public class LoginTest { @Given('^user navigates to SOFTWARETETINGHELP.COM$') public void navigatePage() { system.out.println(“Cucumber executed Given statement”); } @When('^user logs in using Username as '(.*)' and Password '(.*)'$') public void login(String usename,String password) { system.out.println(“Username is:”+ usename); system.out.println(“Password is:”+ password); } @When('^click the Submit button$') public void clickTheSubmitButton() { system.out.println(“Executing When statement”) } @Then('^Home page should be displayed$') public void validatePage() { system.out.println(“Executing Then statement”) } @Then('^login should be successful$') public void validateLoginSuccess() { system.out.println(“Executing 2nd Then statement”) } }
Quan executeu la classe de cucumber runner, el cogombre començarà a llegir els passos del fitxer de funcions. Per exemple, quan executeu @smokeTest, el cogombre llegirà Funció pas i Donat una declaració de escenari . Tan bon punt el cogombre trobi Atesa la declaració, el mateix Donat es farà una cerca dels vostres fitxers java. Si es troba el mateix pas al fitxer java, el cogombre executa la funció especificada per al mateix pas, en cas contrari el cogombre saltarà el pas.
Conclusió
En aquest tutorial, hem tractat les característiques de l'eina de cogombre i el seu ús en escenaris en temps real.
El cogombre és l'eina més preferida per a molts projectes, ja que és fàcil d'entendre, es pot llegir i conté funcions empresarials.
Al capítol següent , tractarem com configurar un projecte de cogombre - Java i com integrar Selenium WebDriver amb Cogombre.
Lectura recomanada
- Tutorial de Cogombre Selenium: Integració de Cogombre Java Selenium WebDriver
- 30+ millors tutorials sobre seleni: apreneu el seleni amb exemples reals
- Tutorial de la xarxa de seleni: configuració i exemple de proves de navegadors creuats
- Spock per a la integració i proves funcionals amb seleni
- Ús de l'eina d'automatització de Maven Build i la configuració del projecte Maven per a Selenium - Selenium Tutorial # 24
- Introducció a Selenium WebDriver - Tutorial Selenium # 8
- Tutorials Eclipse en profunditat per a principiants
- Tutorial de l'eina de proves d'accessibilitat WAVE