Primeros pasos con Allure Selenide
Genera reportes HTML atractivos usando Allure Report y tus pruebas de Selenide.
Configuración
Allure Selenide funciona junto a tu framework de pruebas — primero configura JUnit 5 o TestNG, luego sigue los pasos a continuación.
Esta integración está dirigida a Selenide 7.x y requiere Java 17 o superior.
Para integrar Allure Selenide en tu proyecto, necesitas:
- Agregar las dependencias de Allure Selenide.
- Registrar el listener.
- Especificar una ubicación para el almacenamiento de resultados de Allure.
Agregar dependencias de Allure
<!-- Define la versión de Allure que deseas usar mediante la propiedad allure.version -->
<properties>
<allure.version>VERSION</allure.version>
</properties>
<!-- Agrega allure-bom a la gestión de dependencias para asegurar que se usen las versiones correctas de todas las dependencias -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-bom</artifactId>
<version>${allure.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!-- Agrega las dependencias necesarias de Allure en la sección de dependencias -->
<dependencies>
<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-selenide</artifactId>
<scope>test</scope>
</dependency>
</dependencies>val allureVersion = "VERSION"
dependencies {
testImplementation(platform("io.qameta.allure:allure-bom:$allureVersion"))
testImplementation("io.qameta.allure:allure-selenide")
}def allureVersion = "VERSION"
dependencies {
testImplementation platform("io.qameta.allure:allure-bom:$allureVersion")
testImplementation "io.qameta.allure:allure-selenide"
}Registrar el listener
Registra AllureSelenide como listener de Selenide antes de ejecutar cualquier acción del navegador. El nombre del listener ("allure") es un identificador usado por el registro de listeners de Selenide y puede ser cualquier cadena, siempre que sea única entre los listeners registrados.
import com.codeborne.selenide.logevents.SelenideLogger;
import io.qameta.allure.selenide.AllureSelenide;
SelenideLogger.addListener("allure", new AllureSelenide());Regístralo una vez antes de que comiencen tus pruebas — por ejemplo, en un @BeforeAll de JUnit 5, un @BeforeSuite de TestNG, o una clase de setup compartida:
@BeforeAll
static void setUpAllure() {
SelenideLogger.addListener("allure", new AllureSelenide());
}Los pasos y artefactos solo se registran cuando hay un contexto de prueba activo de Allure. Las acciones de Selenide que se ejecutan fuera de una prueba — por ejemplo, en un inicializador estático o antes de que el framework de pruebas inicie una prueba — se ignoran silenciosamente.
Especificar la ubicación de resultados de Allure
Allure guarda los resultados de prueba en el directorio raíz del proyecto por defecto. Se recomienda almacenar los resultados en el directorio de salida de la build.
Crea un archivo allure.properties en src/test/resources:
allure.results.directory=target/allure-resultsallure.results.directory=build/allure-resultsallure.results.directory=build/allure-resultsGenerar un reporte
Después de ejecutar tus pruebas, convierte los resultados en un reporte HTML usando uno de estos comandos:
allure generateprocesa los resultados de prueba y guarda un reporte HTML en el directorioallure-report. Para ver el reporte, usa el comandoallure open.allure servecrea el mismo reporte queallure generate, y luego abre automáticamente la página principal del reporte en un navegador web.
Acciones de Selenide como pasos
Una vez que el listener está registrado, Allure Selenide registra cada evento de log de Selenide como un paso en el reporte de prueba. No se requiere código adicional.
Los nombres de los pasos se generan a partir de los eventos de log de Selenide e incluyen el localizador del elemento, el nombre de la acción y cualquier argumento. El formato exacto lo determina Selenide. Un paso fallido obtiene el estado FAILED cuando la excepción subyacente es un error de aserción, o BROKEN para cualquier otra excepción.
Los pasos se anidan bajo cualquier paso de Allure que definas:
Allure.step("Iniciar sesión", () -> {
$("#email").setValue("[email protected]"); // aparece como subpaso de "Iniciar sesión"
$("#password").setValue("secret");
$(".login-btn").click();
});Por defecto, todos los eventos de log de Selenide se registran como pasos. Para excluir los pasos de interacción de elementos integrados de Selenide (los de tipo SelenideLog) del reporte, configura .includeSelenideSteps(false) al registrar el listener. Las capturas de pantalla, el código fuente de la página y los registros del navegador aún se capturan en caso de fallo incluso cuando los pasos están excluidos, y se adjuntan al paso de Allure o prueba correspondiente. Consulta la configuración para más detalles.
Captura de artefactos en caso de fallo
Por defecto, cuando un paso de Selenide falla, Allure Selenide captura automáticamente artefactos y los adjunta a ese paso en el reporte.
Por defecto, se capturan los siguientes:
- Captura de pantalla — una imagen PNG del estado actual del navegador (
image/png), adjunta con el nombreScreenshot. - Código fuente de la página — el HTML actual de la página (
text/html), adjunto con el nombrePage source.
Por defecto, estos se adjuntan al paso fallido en lugar de al resultado de prueba general.
Si el navegador no está abierto en el momento del fallo — por ejemplo, cuando un paso falla antes de que se lance el navegador — no se captura ni la captura de pantalla ni el código fuente de la página, y el paso aún se registra con su estado de fallo.
Para desactivar cualquiera de estos artefactos, configura el listener al registrarlo:
SelenideLogger.addListener("allure", new AllureSelenide()
.screenshots(false)
.savePageSource(false));Consulta la configuración para todas las opciones disponibles.
Registros del navegador
Allure Selenide puede capturar los registros del navegador de Selenium WebDriver y adjuntarlos a un paso fallido. La captura de registros está desactivada por defecto y debe habilitarse explícitamente para cada tipo de registro que desees recolectar.
import io.qameta.allure.selenide.LogType;
import java.util.logging.Level;
SelenideLogger.addListener("allure", new AllureSelenide()
.enableLogs(LogType.BROWSER, Level.SEVERE));Se pueden habilitar varios tipos de registro a la vez:
SelenideLogger.addListener("allure", new AllureSelenide()
.enableLogs(LogType.BROWSER, Level.ALL)
.enableLogs(LogType.PERFORMANCE, Level.ALL));Cada tipo de registro habilitado produce un adjunto separado con el nombre Logs from: <type> (por ejemplo, Logs from: browser). Cuando los pasos están incluidos (por defecto), el adjunto se agrega al paso de Selenide fallido. Cuando se configura includeSelenideSteps(false), se adjunta al paso de Allure o prueba correspondiente.
Los valores disponibles de LogType corresponden a los tipos de registro integrados de Selenium: BROWSER, CLIENT, DRIVER, PERFORMANCE, PROFILER y SERVER. No todos los navegadores soportan todos los tipos de registro — consulta la documentación de WebDriver de tu navegador para ver qué está disponible.
Información de entorno
Para agregar detalles del entorno (SO, versión de Java, navegador, versión de Selenide) a la página principal del reporte, consulta Archivo de entorno.