Configuración de Allure REST Assured
Esta página describe los métodos que afectan el comportamiento de la integración de Allure REST Assured. Todos los métodos son encadenables.
Los ejemplos aquí asumen que usas JUnit Jupiter para tus pruebas.
Configurar el adjunto de intercambio HTTP
configureHttpExchange(Consumer<HttpExchange.Builder> exchangeCustomizer)
A partir de Allure Java 3.0, Allure REST Assured registra cada solicitud y su respuesta como un único adjunto de intercambio HTTP. Usa configureHttpExchange() para controlar lo que contiene este adjunto. Los siguientes métodos están disponibles en el constructor:
redactHeader(String name): reemplaza el valor de la cabecera de solicitud o respuesta indicada por un marcador de posición.redactCookie(String name): reemplaza el valor de la cookie indicada por un marcador de posición.redactQueryParameter(String name): reemplaza el valor del parámetro de consulta indicado por un marcador de posición.redactFormParameter(String name): reemplaza el valor del parámetro de formulario indicado por un marcador de posición.setMaxBodySize(long maxBodySize): establece el número máximo de bytes que se conservarán del cuerpo de una solicitud o respuesta. Los cuerpos más largos se truncan y se marcan como truncados en el reporte. El valor predeterminado es 1 MiB.
Las cabeceras Authorization, Proxy-Authorization, Cookie y Set-Cookie siempre se ocultan, al igual que las cabeceras incluidas en la configuración de lista negra propia de REST Assured.
import io.qameta.allure.restassured.AllureRestAssured;
import org.junit.jupiter.api.Test;
import static io.restassured.RestAssured.*;
import static org.hamcrest.Matchers.*;
class TestMyWebsite {
static AllureRestAssured allureFilter = new AllureRestAssured()
.configureHttpExchange(exchange -> exchange
.redactHeader("X-Api-Key")
.redactCookie("SESSION")
.redactQueryParameter("token")
.setMaxBodySize(64 * 1024));
@Test
void testSomeRequest() {
given()
.filter(allureFilter)
.queryParam("token", "my-secret-token")
.get("https://jsonplaceholder.typicode.com/todos/1")
.then()
.body("userId", equalTo(1));
}
}Limitar el tamaño de embellecimiento del cuerpo
setMaxAllowedPrettifyLength(int maxAllowedPrettifyLength)
Establece el número máximo de caracteres de un cuerpo de respuesta que se embellecerán antes de adjuntarlo al reporte. Los cuerpos que superen este umbral se adjuntan tal cual, sin ningún formato. El valor predeterminado es 1_048_576 (1 MB).
Utiliza esto para evitar errores de falta de memoria al probar APIs que devuelven cargas JSON o XML muy grandes.
import io.qameta.allure.restassured.AllureRestAssured;
static AllureRestAssured allureFilter = new AllureRestAssured()
.setMaxAllowedPrettifyLength(512_000); // solo embellece cuerpos de hasta 512 KBPersonalizar nombres de adjuntos
setAttachmentName(final String attachmentName)
Especifica el nombre con el que Allure REST Assured creará el adjunto de intercambio HTTP para el reporte de prueba. De forma predeterminada, el adjunto se llama “HTTP exchange”.
import io.qameta.allure.restassured.AllureRestAssured;
import org.junit.jupiter.api.Test;
import static io.restassured.RestAssured.*;
import static org.hamcrest.Matchers.*;
class TestMyWebsite {
static AllureRestAssured allureFilter = new AllureRestAssured()
.setAttachmentName("Get the first todo");
@Test
void testSomeRequest() {
given()
.filter(allureFilter)
.get("https://jsonplaceholder.typicode.com/todos/1")
.then()
.body("userId", equalTo(1));
}
}Allure Java 2.x
En Allure Java 2.x, la solicitud y la respuesta son adjuntos independientes, cuyos nombres se definen mediante setRequestAttachmentName() y setResponseAttachmentName(). De forma predeterminada, cada solicitud se llama “Request”, mientras que cada respuesta recibe un nombre basado en su código HTTP, por ejemplo, “HTTP/1.1 200 OK”.
En Allure Java 3.x, ambos métodos se conservan por compatibilidad, pero establecen el nombre del mismo adjunto único, por lo que prevalece la última llamada.
Personalizar plantillas (solo Allure Java 2.x)
setRequestTemplate(final String templatePath)setResponseTemplate(final String templatePath)
WARNING
Estos métodos se eliminaron en Allure Java 3.0, junto con los adjuntos HTML basados en FreeMarker. Consulta Migración a Allure Java 3.
Especifica las rutas a las plantillas personalizadas que Allure REST Assured utilizará para dar formato a las solicitudes y respuestas HTTP.
Las plantillas deben estar escritas en el lenguaje de Apache Freemarker. Al procesar una solicitud o una respuesta, se pasa un objeto con todos sus detalles a la plantilla correspondiente como data. Puedes encontrar las plantillas predeterminadas en el repositorio de Allure Java.
Las rutas se interpretan como relativas al directorio tpl en los recursos de tu proyecto. Por ejemplo, el siguiente código usa las plantillas ubicadas en tpl/my-http-request.ftl y tpl/my-http-response.ftl.
import io.qameta.allure.restassured.AllureRestAssured;
import org.junit.jupiter.api.Test;
import static io.restassured.RestAssured.*;
import static org.hamcrest.Matchers.*;
class TestMyWebsite {
static AllureRestAssured allureFilter = new AllureRestAssured()
.setRequestTemplate("my-http-request.ftl")
.setResponseTemplate("my-http-response.ftl");
@Test
void testSomeRequest() {
given()
.filter(allureFilter)
.get("https://jsonplaceholder.typicode.com/todos/1")
.then()
.body("userId", equalTo(1));
}
}