Skip to content
Allure report logoAllure Report
Main Navigation MódulosDocumentaciónStart

Español

English

Español

English

Appearance

Sidebar Navigation

Introducción

Instalación y Actualización

Instalación para Windows

Instalación para macOS

Instalación para Linux

Instalación para Node.js

Actualización

Primeros pasos

Cómo ver un informe

Mejorar la legibilidad de informes

Mejorar la navegación en informe

Funcionalidades

Pasos de prueba

Adjuntos

Estados de prueba

Ordenar y filtrar

Categorías de defectos

Análisis visual

Análisis de estabilidad de prueba

Historial y reintentos

Cronología

Exportar a CSV

Exportar métricas

Guías

Parametrización JUnit 5

JUnit 5 & Selenide: capturas de pantalla y adjuntos

JUnit 5 & Selenium: capturas de pantalla y adjuntos

Configurar JUnit 5 con GitHub Actions

Parametrización en Pytest

Pytest & Selenium: capturas de pantalla y adjuntos

Pytest & Playwright: capturas de pantalla y adjuntos

Pytest & Playwright: videos

Parametrización en Playwright

Cómo funciona

Visión general

Archivo de resultados de prueba

Archivo de contenedor

Archivo de categorías

Archivo de entorno

Archivo de ejecutor

Archivos de historial

Integraciones

Azure DevOps

Bamboo

GitHub Actions

Jenkins

IDEs de JetBrains

TeamCity

Visual Studio Code

Frameworks

Behat

Empezando

Configuración

Referencia

Behave

Empezando

Configuración

Referencia

Codeception

Empezando

Configuración

Referencia

CodeceptJS

Empezando

Configuración

Referencia

Cucumber.js

Empezando

Configuración

Referencia

Cucumber-JVM

Empezando

Configuración

Referencia

Cucumber.rb

Empezando

Configuración

Referencia

Cypress

Empezando

Configuración

Referencia

Jasmine

Empezando

Configuración

Referencia

JBehave

Empezando

Configuración

Referencia

Jest

Empezando

Configuración

Referencia

JUnit 4

Empezando

Configuración

Referencia

JUnit 5

Empezando

Configuración

Referencia

Mocha

Empezando

Configuración

Referencia

Newman

Empezando

Configuración

Referencia

NUnit

Empezando

Configuración

Referencia

PHPUnit

Empezando

Configuración

Referencia

Playwright

Empezando

Configuración

Referencia

pytest

Empezando

Configuración

Referencia

Pytest-BDD

Empezando

Configuración

Referencia

Reqnroll

Empezando

Configuración

Referencia

REST Assured

Empezando

Configuración

Robot Framework

Empezando

Configuración

Referencia

RSpec

Empezando

Configuración

Referencia

SpecFlow

Empezando

Configuración

Referencia

Spock

Empezando

Configuración

Referencia

TestNG

Empezando

Configuración

Referencia

Vitest

Empezando

Configuración

Referencia

WebdriverIO

Empezando

Configuración

Referencia

xUnit.net

Empezando

Configuración

Referencia

On this page

Referencia de Allure JBehave ​

Estas son las funciones que puedes usar para integrar tus pruebas de JBehave con Allure.

Metadatos ​

Asigna la descripción, enlaces y otros metadatos de una prueba.

Title ​

  • Allure.getLifecycle().updateTestCase(Consumer<TestResult> update)

Establece el título de la prueba.

java
import io.qameta.allure.Allure;
import org.jbehave.core.annotations.Then;

public class JBehaveSteps {

    @When("I open labels page")
    public void openLabelsPage() {
        Allure.getLifecycle().updateTestCase(result ->
                result.setName("Some modified scenario name"));
        // ...
    }
}

Description ​

  • Allure.description(String description)

Establece la descripción de la prueba.

Puedes comenzar un archivo de historia con una descripción o llamar a los métodos para actualizar los valores dinámicamente.

Se permite el formato Markdown. Cualquier formato HTML, si está presente, será eliminado por motivos de seguridad.

gherkin
This test attempts to create a label with specified title

Scenario: Create new label for authorized user
When I open labels page
And I create label with title "hello"
Then I should see label with title "hello"
java
import io.qameta.allure.Allure;
import org.jbehave.core.annotations.Then;

public class JBehaveSteps {

    @When("I open labels page")
    public void openLabelsPage() {
        Allure.description("This test attempts to create a label with specified title");
        // ...
    }
}

Owner ​

Establece el propietario de la prueba.

java
import io.qameta.allure.Allure;
import org.jbehave.core.annotations.Then;

public class JBehaveSteps {

    @When("I open labels page")
    public void openLabelsPage() {
        Allure.label("owner", "John Doe");
        // ...
    }
}

Tag ​

Establece los tags de la prueba.

java
import io.qameta.allure.Allure;
import org.jbehave.core.annotations.Then;

public class JBehaveSteps {

    @When("I open labels page")
    public void openLabelsPage() {
        Allure.label("tag", "ui");
        Allure.label("tag", "labels");
        // ...
    }
}

Severity ​

Establece la severidad de la prueba.

Los valores permitidos son: “trivial”, “minor”, “normal”, “critical”, y “blocker”.

java
import io.qameta.allure.Allure;
import org.jbehave.core.annotations.Then;

public class JBehaveSteps {

    @When("I open labels page")
    public void openLabelsPage() {
        Allure.label("severity", "critical");
        // ...
    }
}

Label ​

  • Allure.label(String name, String value)

Las etiquetas de Allure son pares clave-valor utilizados para agregar información adicional sobre tus pruebas. Se pueden considerar como una forma de categorizar, organizar y buscar casos de prueba dentro de tus informes de Allure. Las etiquetas se pueden utilizar para especificar cosas como el ID del caso de prueba, la gravedad de la prueba, la característica que se está probando o la historia relacionada con la prueba. Esta información adicional ayuda a crear informes más detallados y estructurados.

java
import io.qameta.allure.Allure;
import org.jbehave.core.annotations.Then;

public class JBehaveSteps {

    @When("I open labels page")
    public void openLabelsPage() {
        Allure.label("layer", "web");
        Allure.label("owner", "eroshenkoam");
        Allure.label("page", "/{org}/{repo}/labels");
        Allure.label("severity", "critical");
        Allure.label("jira", "AE-2");
        // ...
    }
}

Allure ID (Allure TestOps) ​

Establece el ID de la prueba.

java
import io.qameta.allure.Allure;
import org.jbehave.core.annotations.Then;

public class JBehaveSteps {

    @When("I open labels page")
    public void openLabelsPage() {
        Allure.label("ALLURE_ID", "123");
        // ...
    }
}

Link ​

  • Allure.link(String url)
  • Allure.link(String name, String url)
  • Allure.link(String name, String type, String url)
  • Allure.issue(String name, String url)
  • Allure.tms(String name, String url)

Añade un enlace relacionado con la prueba.

El nombre se usará como el texto del enlace. Si se omite, se utilizará la URL completa en su lugar.

El tipo afecta el ícono que se muestra junto al enlace en el informe de prueba. Para mayor comodidad, Allure proporciona dos funciones abreviadas con tipos de enlace preseleccionados: issue y tms.

java
import io.qameta.allure.Allure;
import org.jbehave.core.annotations.Then;

public class JBehaveSteps {

    @When("I open labels page")
    public void openLabelsPage() {
        Allure.link("Website", "https://dev.example.com/");
        Allure.issue("AUTH-123", "https://example.com/issues/AUTH-123");
        Allure.tms("TMS-456", "https://example.com/tms/TMS-456");
        // ...
    }
}

Jerarquía basada en comportamiento ​

Siendo un marco orientado a BDD, JBehave organiza las pruebas según los archivos de historias. En el informe de prueba, Allure JBehave muestra esta jerarquía en la pestaña Behaviors. Los nombres de los grupos corresponden a los nombres de los archivos. No se necesita configuración especial.

Jerarquía basada en suite ​

  • Allure.suite(String value)

Asigna el nombre de la suite, como parte de la jerarquía basada en suite de Allure.

java
import io.qameta.allure.Allure;
import org.jbehave.core.annotations.Then;

public class JBehaveSteps {

    @When("I open labels page")
    public void openLabelsPage() {
        Allure.label("parentSuite", "Tests for web interface");
        Allure.suite("Tests for essential features");
        Allure.label("subSuite", "Tests for labels");
        // ...
    }
}

Pasos de prueba ​

  • Allure.step(String name)
  • Allure.step(String name, Status status)
  • Allure.step(String name, ThrowableRunnableVoid runnable)
  • Allure.step(String name, ThrowableRunnable<T> runnable)
  • Allure.step(ThrowableContextRunnableVoid<StepContext> runnable)
  • Allure.step(String name, ThrowableContextRunnableVoid<StepContext> runnable)
  • Allure.step(String name, ThrowableContextRunnable<T, StepContext> runnable)
  • Allure.step(ThrowableContextRunnable<T, StepContext> runnable)

Define un sub-paso de prueba con el name dado.

Hay tres formas de definir un sub-paso.

  • Un sub-paso anotado: define un método que contenga un paso de prueba y decóralo con @Step().
  • Un sub-paso lambda: escribe un sub-paso de prueba en una función lambda y pásalo a Allure.step().
  • Un sub-paso no operativo (no-op): simplemente pasa un nombre y un status opcional a Allure.step() para agregar inmediatamente una entrada correspondiente a los resultados como un sub-paso del paso actual.

Cuando implementas una función para un sub-paso lambda, puede aceptar o bien ningún argumento o un único argumento de la clase StepContext. Este objeto proporciona los siguientes métodos:

  • name() — sobrescribe el nombre del sub-paso durante su ejecución.
  • parameter() — indica parámetros arbitrarios usados para el sub-paso. Las firmas disponibles de este método son las mismas que para la implementación a nivel global de prueba, consulta Pruebas parametrizadas.
java
import io.qameta.allure.Step;
import org.jbehave.core.annotations.Then;

public class JBehaveSteps {

    @When("I open labels page")
    public void openLabelsPage() {
        step1();
        step2();
    }

    @Step("Step 1")
    public void step1() {
        subStep1();
        subStep2();
    }

    @Step("Sub-step 1")
    public void subStep1() {
        // ...
    }

    @Step("Sub-step 2")
    public void subStep2() {
        // ...
    }

    @Step("Step 2")
    public void step2() {
        // ...
    }
}
java
import io.qameta.allure.Allure;
import org.jbehave.core.annotations.Then;

public class JBehaveSteps {

    @When("I open labels page")
    public void openLabelsPage() {

        Allure.step("Step 1", (step) -> {
            // ...
            Allure.step("Sub-step 1");
            // ...
            Allure.step("Sub-step 2");
        });

        Allure.step("Step 2", (step) -> {
            // ...
        });
    }
}

Pruebas parametrizadas ​

Allure JBehave admite dos formas de implementar el patrón de pruebas parametrizadas:

  • escenarios parametrizados,
  • parámetros en tiempo de ejecución.

Escenarios parametrizados ​

En los archivos de historias de JBehave, un escenario parametrizado (a veces llamado un esquema de escenario o una plantilla de escenario) implementa el patrón de pruebas parametrizadas. Un escenario parametrizado debe contener una tabla Examples, de la cual JBehave carga conjuntos de parámetros, fila por fila. Cada conjunto de parámetros se coloca en las declaraciones de pasos de acuerdo con los marcadores de posición, generando así una nueva iteración del escenario basada en la fila. Los datos pueden capturarse utilizando la sintaxis de inyección de parámetros y pasarse como argumentos separados al código Java.

Allure JBehave reconoce automáticamente este patrón. No se requiere configuración adicional.

El ejemplo a continuación muestra un archivo de historia y un archivo de implementación en Java de una prueba. En este ejemplo, los cuatro parámetros para el paso "I enter my details..." se mostrarán en ambas instancias del escenario en el informe de prueba.

Scenario: Registration
When I go to the registration form
And I enter my details: <login>, <password>, <name>, <birthday>
Then the profile should be created

Examples:
| login   | password | name     | birthday   |
| johndoe | qwerty   | John Doe | 1970-01-01 |
| janedoe | 123456   | Jane Doe | 1111-11-11 |
java
import io.qameta.allure.Allure;
import org.jbehave.core.annotations.Then;
import org.jbehave.core.annotations.When;

public class JBehaveSteps {

    @When("I go to the registration form")
    public void goToRegistrationForm() {
        // ...
    }

    @When("I enter my details: $login, $password, $name, $birthday")
    public void enterMyDetails() {
        // ...
    }

    @Then("the profile should be created")
    public void profileShouldBeCreated() {
        // ...
    }
}

Parámetros en tiempo de ejecución ​

  • Allure.parameter(String name, T value)
  • Allure.parameter(String name, T value, Boolean excluded)
  • Allure.parameter(String name, T value, Parameter.Mode mode)
  • Allure.parameter(String name, T value, Boolean excluded, Parameter.Mode mode)

Especifica un name y un value de un parámetro que se utilizó durante esta prueba. Consulta Pruebas parametrizadas para más detalles.

WARNING

Allure JBehave identifica las pruebas únicamente en función de sus nombres y parámetros pasados desde el archivo de historia. Si tienes múltiples pruebas que solo se diferencian en parámetros dinámicos (es decir, las llamadas a Allure.parameter()), se tratarán como una sola prueba a efectos de historial y reintentos.

Si el argumento excluded se establece en true, Allure no usará el parámetro al comparar el resultado actual de la prueba con uno anterior en el historial. Este argumento solo lo utiliza Allure TestOps.

El argumento mode afecta cómo se mostrará el parámetro en el informe. Las opciones disponibles están definidas en la enumeración Parameter.Mode:

  • Parameter.Mode.DEFAULT (igual que no especificar ningún modo): el parámetro y su valor se mostrarán en una tabla junto con otros parámetros.
  • Parameter.Mode.MASKED: el parámetro se mostrará en la tabla, pero su valor estará oculto. Usa este modo para contraseñas, tokens y otros parámetros sensibles.
  • Parameter.Mode.HIDDEN: el parámetro y su valor no se mostrarán en el informe de prueba. Sin embargo, es posible extraer el valor desde el directorio allure_results si lo publicas.
Scenario: Registration
When I go to the registration form
And I enter my details
Then the profile should be created
java
import io.qameta.allure.Allure;
import org.jbehave.core.annotations.Then;
import org.jbehave.core.annotations.When;

public class JBehaveSteps {

    @When("I go to the registration form")
    public void goToRegistrationForm() {
        // ...
    }

    @When("I enter my details")
    public void enterMyDetails() {
        Allure.parameter("login", "johndoe");
        Allure.parameter("password", "qwerty");
        Allure.parameter("name", "John Doe");
        Allure.parameter("birthday", "1970-01-01");
        // ...
    }

    @Then("the profile should be created")
    public void profileShouldBeCreated() {
        // ...
    }
}

Adjuntos ​

  • Allure.addAttachment(String name, String content)
  • Allure.addAttachment(String name, String type, String content)
  • Allure.addAttachment(String name, String type, String content, String fileExtension)
  • Allure.addAttachment(String name, InputStream content)
  • Allure.addAttachment(String name, String type, InputStream content, String fileExtension)
  • Allure.attachment(String name, String content)
  • Allure.attachment(String name, InputStream content)

Agrega content como un adjunto al resultado de la prueba bajo el name dado (por defecto, un string pseudoaleatorio único).

TIP

Puedes usar datos producidos por cualquier función, no necesariamente leídos de un archivo real.

Para asegurarte de que el navegador web del lector muestre los adjuntos correctamente, se recomienda especificar el tipo de cada adjunto. Para ello, pasa el tipo de contenido como type y, opcionalmente, una extensión de archivo como fileExtension. El tipo de contenido afecta cómo se mostrará la información en el informe de prueba, mientras que la extensión del archivo se agrega al nombre del archivo cuando el usuario desea guardarlo.

java
import io.qameta.allure.Allure;
import org.jbehave.core.annotations.Then;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

public class JBehaveSteps {

    @When("I open labels page")
    public void openLabelsPage() throws IOException {
        // ...
        Allure.attachment("data.txt", "This is the file content.");
        Allure.attachment("img.png", Files.newInputStream(Paths.get("/path/img.png")));
    }
}

INFO

Adicionalmente, Allure ofrece una manera de generar hilos que agregarán adjuntos a los resultados de prueba de manera asíncrona sin bloquear el ejecutor de pruebas. Aunque no se recomienda para la mayoría de los casos, este enfoque puede mejorar pruebas que, de otro modo, tendrían que esperar el procesamiento de archivos muy grandes, como videos de más de 1 GB. Consulta el código fuente de Allure.addByteAttachmentAsync() y Allure.addStreamAttachmentAsync() para obtener más información.

Pager
Previous pageConfiguración
Next pageEmpezando
Powered by

Únete a nuestro boletín

Allure TestOps
  • Visión general
  • Por qué elegirnos
  • Nube
  • Autoalojado
  • Historias de éxito
Compañía
  • Documentación
  • Blog
  • Sobre nosotros
  • Contacto
  • Eventos
© 2025 Qameta Software Inc. All rights reserved.