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

Español

English

Español

English

Appearance

Sidebar Navigation

Allure 3

Instalación y Actualización

Instalación

Actualización

Configurar

Trabajando con Reportes

Cómo generar un reporte

Cómo ver un reporte

Mejorar la legibilidad de reportes

Mejorar la navegación en reporte

Lectura de los gráficos de Allure

Migrar desde Allure 2

Allure 2

Instalación y Actualización

Instalación para Windows

Instalación para macOS

Instalación para Linux

Instalación para Node.js

Actualización

Trabajando con Reportes

Cómo generar un reporte

Cómo ver un reporte

Mejorar la legibilidad de reportes

Mejorar la navegación en reporte

Funcionalidades

Agent Mode

Pasos de prueba

Adjuntos

Estados de prueba

Diferencias de aserciones

Ordenar y filtrar

Entornos

Construcciones Multietapa

Categorías

Análisis visual

Análisis de estabilidad de prueba

Historial y reintentos

Almacenamiento autohospedado

Quality Gate

Resoluciones

Errores y Adjuntos Globales

Línea de tiempo

Métricas de rendimiento

Exportar a CSV

Exportar métricas

Guías

Migración a Allure Java 3

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

Publicando Reportes en GitHub Pages

Desplegando almacenamiento autohospedado con Docker

Desplegando almacenamiento autohospedado en Cloudflare Workers

Allure Report 3: XCResults Reader

Cómo funciona

Visión general

Glosario

Archivo de resultados de prueba

Archivo de contenedor

Archivo de categorías

Archivo de entorno

Archivo de ejecutor

Archivos de historial

Identificadores de Prueba

Integraciones

Azure DevOps

Bamboo

GitHub Action

Gradle

Jenkins

IDEs de JetBrains

Maven

Slack

TeamCity

Visual Studio Code

Xray

Frameworks

AVA

Empezando

Configuración

Referencia

Axios

Primeros pasos

Configuración

Referencia

Behat

Primeros pasos

Configuración

Referencia

Behave

Primeros pasos

Configuración

Referencia

Bun

Primeros pasos

Configuración

Referencia

Chai

Primeros pasos

Referencia

Codeception

Primeros pasos

Configuración

Referencia

CodeceptJS

Primeros pasos

Configuración

Referencia

Cucumber.js

Primeros pasos

Configuración

Referencia

Cucumber-JVM

Primeros pasos

Configuración

Referencia

Cucumber.rb

Primeros pasos

Configuración

Referencia

Cypress

Primeros pasos

Configuración

Referencia

Dart y Flutter

Primeros pasos

Configuración

Referencia

Diesel

Primeros pasos

Configuración

Referencia

Fetch

Primeros pasos

Configuración

Referencia

Go

Primeros pasos

Configuración

Referencia

gRPC

Primeros pasos

Configuración

Jasmine

Primeros pasos

Configuración

Referencia

Java HTTP Client

Primeros pasos

JBehave

Primeros pasos

Configuración

Referencia

Jest

Primeros pasos

Configuración

Referencia

JUnit 4

Primeros pasos

Configuración

Referencia

JUnit Jupiter

Primeros pasos

Configuración

Referencia

Kotlin

Primeros pasos

Referencia

Mocha

Primeros pasos

Configuración

Referencia

Newman

Primeros pasos

Configuración

Referencia

Node.js Test Runner

Empezando

Configuración

Referencia

NUnit

Primeros pasos

Configuración

Referencia

OkHttp

Primeros pasos

PHPUnit

Primeros pasos

Configuración

Referencia

Playwright

Primeros pasos

Configuración

Referencia

Playwright Java

Empezando

Configuración

Referencia

pytest

Primeros pasos

Configuración

Referencia

Pytest-BDD

Primeros pasos

Configuración

Referencia

Reqnroll

Primeros pasos

Configuración

Referencia

Reqwest

Primeros pasos

Configuración

Referencia

REST Assured

Primeros pasos

Configuración

Robot Framework

Primeros pasos

Configuración

Referencia

Rust Cargo Test

Primeros pasos

Configuración

Referencia

RSpec

Primeros pasos

Configuración

Referencia

Selenide

Primeros pasos

Configuración

Referencia

Selenium BiDi

Primeros pasos

Configuración

Referencia

SpecFlow

Primeros pasos

Configuración

Referencia

Spock

Primeros pasos

Configuración

Referencia

TestCafe

Empezando

Configuración

Referencia

TestNG

Primeros pasos

Configuración

Referencia

Tinybench

Primeros pasos

Referencia

Vitest

Primeros pasos

Configuración

Referencia

WebdriverIO

Primeros pasos

Configuración

Referencia

xUnit.net

Primeros pasos

Configuración

Referencia

On this page

Primeros pasos con Allure OkHttp ​

Allure OkHttp latest version

Enriquece tus reportes de prueba de Allure Report con información detallada sobre las solicitudes HTTP realizadas mediante OkHttp.

Esta página describe Allure OkHttp 3.0.0 y versiones posteriores, que requieren Java 17 o posterior. Funciona con OkHttp 3, 4 y 5.

Allure OkHttp es compatible con todas las integraciones de Allure basadas en JVM, incluyendo Allure JUnit Jupiter, Allure TestNG, Allure Cucumber-JVM y más.

Para habilitar la integración en tu proyecto:

  1. Asegúrate de tener habilitada la integración de Allure Report para el framework de pruebas que utilizas.

    Consulta las instrucciones en la documentación de la integración en Frameworks.

  2. Agrega la integración de Allure OkHttp a las dependencias de tu proyecto.

    xml
    <!-- 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>
    
    <dependencies>
        <dependency>
            <groupId>io.qameta.allure</groupId>
            <artifactId>allure-okhttp3</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    kts
    val allureVersion = "VERSION"
    
    dependencies {
        testImplementation(platform("io.qameta.allure:allure-bom:$allureVersion"))
        testImplementation("io.qameta.allure:allure-okhttp3")
    }
    groovy
    def allureVersion = "VERSION"
    
    dependencies {
        testImplementation platform("io.qameta.allure:allure-bom:$allureVersion")
        testImplementation "io.qameta.allure:allure-okhttp3"
    }
  3. Registra una instancia de AllureOkHttp3 como interceptor del cliente OkHttp que usan tus pruebas.

    El ejemplo siguiente muestra el uso de Allure OkHttp en una prueba de JUnit Jupiter.

    java
    import io.qameta.allure.okhttp3.AllureOkHttp3;
    import okhttp3.OkHttpClient;
    import okhttp3.Request;
    import okhttp3.Response;
    import org.junit.jupiter.api.Test;
    
    import static org.junit.jupiter.api.Assertions.assertEquals;
    
    class TestMyWebsite {
    
        static OkHttpClient client = new OkHttpClient.Builder()
                .addInterceptor(new AllureOkHttp3())
                .build();
    
        @Test
        void testSomeRequest() throws Exception {
            Request request = new Request.Builder()
                    .url("https://jsonplaceholder.typicode.com/todos/1")
                    .build();
    
            try (Response response = client.newCall(request).execute()) {
                assertEquals(200, response.code());
            }
        }
    }
  4. Ejecuta tus pruebas y genera un reporte de prueba de la forma habitual.

Qué muestra el reporte ​

Cada solicitud realizada durante una prueba o un fixture, incluidas las realizadas con enqueue(), se agrega a los resultados de prueba como un único adjunto de intercambio HTTP llamado “HTTP exchange”. Contiene:

  • el método, la URL, los encabezados y el cuerpo de la solicitud;
  • el estado, los encabezados y el cuerpo de la respuesta;
  • la hora de inicio y fin de la solicitud;
  • los detalles del error, si la solicitud falla, por ejemplo, porque no se puede alcanzar el servidor.

Las solicitudes realizadas mientras no se está ejecutando ninguna prueba o fixture no se agregan al reporte.

En Allure OkHttp 2.x, la solicitud y la respuesta se agregan como dos adjuntos HTML separados.

Eventos enviados por el servidor ​

Para trabajar con eventos enviados por el servidor, OkHttp proporciona la biblioteca okhttp-sse. Su listener de origen de eventos se ejecuta en los propios hilos de OkHttp, que no saben qué prueba se está ejecutando. Así que, si tu listener agrega pasos o adjuntos, por ejemplo, para cada evento recibido, estos se pierden o pueden terminar en una prueba distinta.

Para mantenerlos en la prueba que abre el origen del evento, crea la fábrica de origen de eventos mediante AllureEventSources.createFactory() en lugar de EventSources.createFactory(). AllureEventSources requiere OkHttp 5 o posterior.

java
import io.qameta.allure.Allure;
import io.qameta.allure.okhttp3.AllureEventSources;
import io.qameta.allure.okhttp3.AllureOkHttp3;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.sse.EventSource;
import okhttp3.sse.EventSourceListener;
import org.junit.jupiter.api.Test;

import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;

class TestOrderEvents {

    static OkHttpClient client = new OkHttpClient.Builder()
            .addInterceptor(new AllureOkHttp3())
            .build();

    static EventSource.Factory eventSourceFactory = AllureEventSources.createFactory(client);

    @Test
    void testOrderEvents() throws Exception {
        CountDownLatch closed = new CountDownLatch(1);

        EventSource eventSource = eventSourceFactory.newEventSource(
                new Request.Builder().url("https://example.com/orders/events").build(),
                new EventSourceListener() {
                    @Override
                    public void onEvent(EventSource source, String id, String type, String data) {
                        Allure.step("Evento recibido " + type);
                        Allure.attachment("Evento " + id, data);
                    }

                    @Override
                    public void onClosed(EventSource source) {
                        closed.countDown();
                    }
                });

        closed.await(10, TimeUnit.SECONDS);
        eventSource.cancel();
    }
}

La fábrica recuerda la prueba o fixture en ejecución cada vez que se llama a newEventSource(). Esto significa que puedes crear el cliente y la fábrica una sola vez y compartirlos entre pruebas, como se muestra en el ejemplo anterior.

El adjunto de intercambio HTTP de un origen de eventos contiene los encabezados de la solicitud y la respuesta, pero no los eventos en sí. Para ver los eventos en el reporte, agrégalos desde tu listener, como se muestra arriba.

Configuración ​

Configurar el adjunto de intercambio HTTP ​

  • configureHttpExchange(Consumer<HttpExchange.Builder> exchangeCustomizer)

Usa configureHttpExchange() para controlar qué contiene el adjunto de intercambio HTTP. El método devuelve el interceptor, por lo que puedes llamarlo justo después de new AllureOkHttp3(). Si lo llamas de nuevo, la nueva configuración reemplaza a la anterior.

Los siguientes métodos están disponibles en el builder:

  • redactHeader(String name) - reemplaza el valor del encabezado de solicitud o respuesta dado con un marcador de posición. El nombre no distingue mayúsculas y minúsculas.
  • redactCookie(String name) - reemplaza el valor de la cookie dada con un marcador de posición. Allure muestra las cookies de los encabezados Cookie y Set-Cookie por separado de los demás encabezados.
  • setMaxBodySize(long maxBodySize) - el número máximo de bytes de un cuerpo de solicitud o respuesta que se conserva. Los cuerpos más largos se truncan y se marcan como truncados en el reporte. El valor predeterminado es 1 MiB.

De forma predeterminada, los valores de los encabezados Authorization y Proxy-Authorization se reemplazan con un marcador de posición.

java
import io.qameta.allure.okhttp3.AllureOkHttp3;
import okhttp3.OkHttpClient;

static OkHttpClient client = new OkHttpClient.Builder()
        .addInterceptor(new AllureOkHttp3()
                .configureHttpExchange(exchange -> exchange
                        .redactHeader("X-Api-Key")
                        .redactCookie("SESSION")
                        .setMaxBodySize(64 * 1024)))
        .build();
Esta página ha sido traducida automáticamente. Si notas algún error, te agradeceríamos mucho que nos lo hicieras saber.
Pager
Previous pageReferencia
Next pagePrimeros pasos
Powered by

Suscríbete a nuestro boletín

Recibe noticias del producto que realmente necesitas, sin spam.

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