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.


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow