cucumber
Sintaxis de pepinillo
Buscar..
Introducción
Gherkin es un lenguaje legible para negocios para la automatización de pruebas y la documentación de pruebas. Se entiende por pepino y en conjunto existe como una herramienta de desarrollo impulsada por el comportamiento.
Sintaxis
- Característica: esta palabra clave significa que lo que sigue es una descripción básica o el nombre de la característica que se está probando o documentando.
- Fondo: esta palabra clave indica los pasos que se ejecutarán antes de cada escenario en la función.
- Escenario: esta palabra clave representa el nombre o la descripción básica de un escenario particular que prueba la característica.
- Esquema del escenario: esta palabra clave significa que el escenario se ejecutará N veces para cada argumento enumerado en los ejemplos que se pasaron explícitamente por el nombre de la columna entre paréntesis angulares.
- Ejemplos: esta palabra clave anota la lista de argumentos estáticos que se pasarán a un esquema de escenario.
- Dado: esta palabra clave representa un paso dado, o condición previa que se supone antes de continuar. En el paradigma Organizar, Actuar, Asertar, dado representa "Organizar".
- Cuándo: esta palabra clave representa un paso cuándo, o el comportamiento contra el que se va a afirmar. En el paradigma Organizar, Actuar, Afirmar, dado representa "Actuar".
- Luego: esta palabra clave representa un paso en ese momento, o en otras palabras, el paso en el que se valida el resultado de un comportamiento. En el paradigma Organizar, Actuar, Asertar, dado representa "Afirmar".
- Y: esta palabra clave se utiliza junto con cualquiera de las palabras clave anteriores. Si tiene dos declaraciones dadas, en lugar de llamar explícitamente a Dadas dos veces, puede decir "Dado A y B".
Los basicos
Este ejemplo repasará la estructura básica de un archivo de características de Cucumber en Gherkin. Los archivos de características utilizan varias palabras clave en la sintaxis básica.
Veamos las palabras clave básicas:
- Característica: esta palabra clave significa que lo que sigue es una descripción básica o el nombre de la característica que se está probando o documentando.
- Escenario: esta palabra clave representa el nombre o la descripción básica de un escenario particular que prueba la característica.
- Dada esta palabra clave representa un paso dado, o condición previa que se asume antes de continuar. En el paradigma Organizar, Actuar, Asertar, dado representa "Organizar".
- Cuando esta palabra clave representa un paso cuándo, o el comportamiento contra el que se va a afirmar. En el paradigma Organizar, Actuar, Afirmar, dado representa "Actuar".
- Luego, esta palabra clave representa un paso en ese momento, o en otras palabras, el paso en el que se valida el resultado de un comportamiento. En el paradigma Organizar, Actuar, Asertar, dado representa "Afirmar".
- Y esta palabra clave se utiliza junto con cualquiera de las palabras clave anteriores. Si tiene dos declaraciones dadas, en lugar de llamar explícitamente a Dadas dos veces, puede decir "Dado A y B".
- Pero esta palabra clave se usa en conjunto Dadas , cuándo y luego para indicar que algo no debería suceder. Entonces A, pero no B.
Todas las palabras clave deben estar en una nueva línea y deben ser la primera palabra en una nueva línea para que el analizador Gherkin las reconozca. Las palabras clave Característica y Escenario deben tener dos puntos inmediatamente después, como se expresa en el siguiente ejemplo. Dado, cuándo, entonces y no requieren dos puntos.
Además de las palabras clave, puede escribir descripciones y comentarios. Las descripciones aparecen después de la palabra clave pero en la misma línea, mientras que los comentarios se producen en las líneas debajo de las palabras clave. Al escribir comentarios de características, es habitual proporcionar reglas explícitas que describan los bordes y las condiciones que conducen a diferentes resultados de los comportamientos.
Feature: Product Login
As a user, I would like to be able to use my credentials to successfully
login.
Rules:
- The user must have a valid username
- The user must have a valid password
- The user must have an active subscription
- User is locked out after 3 invalid attempts
- User will get a generic error message following
login attempt with invalid credentials
Scenario: The user successfully logs in with valid credentials
This scenario tests that a user is able to successfully login
provided they enter a valid username, valid password, and
currently have an active subscription on their account.
Given the user is on the login page
When the user signs in with valid credentials
Then the user should be logged in
Pasos parametrizados
Al escribir Gherkin, puede haber ocasiones en las que desee parametrizar sus pasos para que el ingeniero que está implementando los planes de prueba reutilice el proceso. Los pasos reciben parámetros a través de grupos de captura de expresiones regulares. ( Nota de ingeniería: si no tiene parámetros coincidentes para cada grupo de captura en su expresión regular, puede esperar que se genere una "Descepción de pepino: Desigualdad de aridad") En el siguiente ejemplo, también hemos decidido envolver los argumentos entre comillas dobles. como aceptar enteros como argumentos.
Feature: Product Login
As a user, I would like to be able to use my credentials to successfully
login.
Rules:
- The user must have a valid username
- The user must have a valid password
- The user must have an active subscription
- User is locked out after 3 invalid attempts
- User will get a generic error message following
login attempt with invalid credentials
Scenario: The user successfully logs in with valid credentials
This scenario tests that a user is able to successfully login
provided they enter a valid username, valid password, and
currently have an active subscription on their account.
Given the user is on the login page
When the user signs in with "valid" credentials
Then the user should be logged in
Scenario: The user attempts to log in with invalid credentials
This scenario tests that a user is not able to log in when
they enter invalid credentials
Given the user is on the login page
When the user signs in with "invalid" credentials
Then the user should be logged in
Scenario: The user is locked out after too many failed attempts
This scenario validates that the user is locked out
of their account after failing three consecutive
attempts to log in
Given the user is on the login page
When the user fails to log in 3 times
Then the user should be locked out of their account
Fondo de la característica
Como habrá notado en el ejemplo anterior, estamos reescribiendo el mismo paso varias veces:
Given the user is on the login page
Esto puede ser excepcionalmente tedioso, especialmente si tenemos más de un paso dado que se reutiliza. Gherkin proporciona una solución para esto al darnos otra palabra clave con la que trabajar: Fondo:.
La palabra clave de fondo sirve para ejecutar los pasos declarados debajo de ella antes de cada escenario en la Característica. Asegúrese de no agregar un paso de fondo a menos que esté seguro de que es necesario para cada escenario. Al igual que las otras palabras clave, el Fondo va seguido de una descripción o nombre y puede tener comentarios enumerados debajo. Al igual que Característica y Escenario, el fondo debe ser procesado por dos puntos.
Feature: Product Login
As a user, I would like to be able to use my credentials to successfully
login.
Rules:
- The user must have a valid username
- The user must have a valid password
- The user must have an active subscription
- User is locked out after 3 invalid attempts
- User will get a generic error message following
login attempt with invalid credentials
Background: The user starts out on the login page
Given the user is on the login page
Scenario: The user successfully logs in with valid credentials
This scenario tests that a user is able to successfully login
provided they enter a valid username, valid password, and
currently have an active subscription on their account.
When the user signs in with "valid" credentials
Then the user should be logged in
Scenario: The user attempts to log in with invalid credentials
This scenario tests that a user is not able to log in when
they enter invalid credentials
When the user signs in with "invalid" credentials
Then the user should be logged in
Scenario: The user is locked out after too many failed attempts
This scenario validates that the user is locked out
of their account after failing three consecutive
attempts to log in
When the user fails to log in 3 times
Then the user should be locked out of their account
Esquema del escenario
En algunos casos, es posible que desee volver a ejecutar el mismo escenario una y otra vez, sustituyendo los argumentos. En este caso, Gherkin proporciona varias palabras clave nuevas para adaptarse a esta situación, Esquema del escenario: y Ejemplo:. La palabra clave del esquema del escenario le dice a Cucumber que el escenario se ejecutará varias veces sustituyendo los argumentos de una lista. La palabra clave de ejemplos se llama antes de que la lista sea anotada explícitamente. Los argumentos para los contornos del escenario se deben envolver en corchetes angulares. En el ejemplo a continuación, tenga en cuenta que los nombres de argumento envueltos en los corchetes en ángulo corresponden a los nombres de columna enumerados en Ejemplos. Cada columna está separada por barras verticales, con nombres de columna en la primera fila.
Feature: Product Login
As a user, I would like to be able to use my credentials to successfully
login.
Rules:
- The user must have a valid username
- The user must have a valid password
- The user must have an active subscription
- User is locked out after 3 invalid attempts
- User will get a generic error message following
login attempt with invalid credentials
Background: The user starts out on the login page
Given the user is on the login page
Scenario Outline: The user successfully logs in with their account
This scenario outlines tests in which various users attempt
to sign in successfully
When the user enters their <username>
And the user enters their <password>
Then the user should be successfully logged on
Examples:
| username | password |
| frank | 1234 |
| jack | 4321 |
Etiquetas
Para los fines de la documentación, es posible que desee filtrar planes de prueba o escenarios por categorías. Los desarrolladores pueden querer ejecutar pruebas basadas en esas mismas categorías. Gherkin le permite clasificar las características, así como los escenarios individuales a través del usuario de etiquetas. En el ejemplo a continuación, observe que la palabra clave Característica anterior es la etiqueta "@Automation". Gherkin reconoce esto como una etiqueta del usuario del símbolo "@". En este ejemplo, el ingeniero desea dejar en claro que estas pruebas se utilizan para la automatización, donde no todas las pruebas se pueden automatizar, algunas pruebas deben realizarse mediante el control de calidad manual.
Observe también que la etiqueta @Production se ha agregado al bloqueo de usuario de prueba de escenario. En este ejemplo, esto se debe a que este escenario solo está activo en el entorno de producción de la aplicación. Los desarrolladores no quieren que sus cuentas de sandbox se bloqueen durante el desarrollo. Estas etiquetas les permiten imponer que esta prueba solo se ejecutará en el entorno de producción.
Por último, el esquema del escenario tiene la etiqueta @Staging. A los efectos de este ejemplo, esto se debe a que las cuentas que se utilizan son cuentas provisionales y no funcionarán en otros entornos. Al igual que la etiqueta @Production, esto garantiza que estas pruebas solo se ejecutarán en el entorno de ensayo.
Estos son solo algunos ejemplos de dónde, cómo y por qué puede usar etiquetas. En última instancia, estas etiquetas tendrán un significado para usted y para los desarrolladores, y pueden ser de cualquier tipo y se pueden utilizar para clasificarlas como mejor le parezca.
@Automation
Feature: Product Login
As a user, I would like to be able to use my credentials to successfully
login.
Rules:
- The user must have a valid username
- The user must have a valid password
- The user must have an active subscription
- User is locked out after 3 invalid attempts
- User will get a generic error message following
login attempt with invalid credentials
Background: The user starts out on the login page
Given the user is on the login page
Scenario: The user successfully logs in with valid credentials
This scenario tests that a user is able to successfully login
provided they enter a valid username, valid password, and
currently have an active subscription on their account.
When the user signs in with "valid" credentials
Then the user should be logged in
Scenario: The user attempts to log in with invalid credentials
This scenario tests that a user is not able to log in when
they enter invalid credentials
When the user signs in with "invalid" credentials
Then the user should be logged in
@Production
Scenario: The user is locked out after too many failed attempts
This scenario validates that the user is locked out
of their account after failing three consecutive
attempts to log in
When the fails to log in 3 times
Then the user should be locked out of their account
@Staging
Scenario Outline: The user successfully logs in with their account
This scenario outlines tests in which various users attempt
to sign in successfully
When the user enters their <username>
And the user enters their <password>
Then the user should be successfully logged on
Examples:
| username | password |
| frank | 1234 |
| jack | 4321 |
Consejos de pepinillo
- Cada escenario prueba un comportamiento.
- Los escenarios se escriben de forma declarativa.
- Evitar detalles incidentales dentro del escenario.
- Omitir lo obvio
- Evita los pasos conjuntivos.
- Mantenga sus escenarios cortos
- No tienes que tener muchos escenarios en la misma característica.
- Utilizar nombres de escenarios descriptivos.
- Tener solo uno cuando paso
- Usa el "debería" en los siguientes pasos.