Allure Java is the JVM integration family for Allure Report. It contains test framework adapters, runtime APIs, HTTP exchange integrations, browser tooling, assertion integrations, and internal support modules used to write Allure result files from Java, Groovy, Scala, Kotlin, and other JVM test suites.
- Allure Java 3.x targets Java 17 and newer.
- Use one framework adapter per test runtime, for example
allure-jupiter,allure-testng, orallure-cucumber7-jvm. - Prefer
allure-bomto keep Allure module versions aligned. allure-junit5andallure-junit5-assertare no longer published aliases; useallure-jupiterandallure-jupiter-assert.- HTTP client integrations now write a single structured HTTP exchange attachment with content type
application/vnd.allure.http+json.
Gradle:
dependencies {
testImplementation(platform("io.qameta.allure:allure-bom:<allure-version>"))
testImplementation("io.qameta.allure:allure-jupiter")
}
tasks.test {
useJUnitPlatform()
}Maven:
<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-jupiter</artifactId>
<scope>test</scope>
</dependency>
</dependencies>Run your tests, then generate or serve the report from the produced Allure results directory, usually build/allure-results for Gradle or target/allure-results for Maven.
| Module | Use When | Registration |
|---|---|---|
allure-jupiter |
JUnit Jupiter on JUnit 5 or 6 | JUnit Platform service loader |
allure-junit-platform |
Building a custom JUnit Platform integration | JUnit Platform listener and filter services |
allure-junit4 |
JUnit 4 runner where listeners can be configured | Register io.qameta.allure.junit4.AllureJunit4 |
allure-junit4-aspect |
Gradle built-in JUnit 4 execution | Enable AspectJ weaver |
allure-testng |
TestNG 7 suites | TestNG service loader or listener registration |
allure-spock2 |
Spock 2 specifications | Spock global extension service |
allure-spock |
Legacy Spock 1 specifications | Spock global extension service |
allure-scalatest |
ScalaTest suites | ScalaTest reporter |
allure-cucumber7-jvm |
Cucumber JVM 7 | Cucumber plugin |
allure-jbehave5 |
JBehave 5 stories | JBehave story reporter |
allure-karate |
Karate runtime hooks | Karate runtime hook |
allure-citrus |
Citrus tests | Citrus listeners |
| Module | Use When | Output |
|---|---|---|
allure-rest-assured |
REST Assured filters | HTTP exchange attachment |
allure-httpclient5 |
Apache HttpClient 5 interceptors | HTTP exchange attachment |
allure-httpclient |
Apache HttpClient 4 interceptors | HTTP exchange attachment |
allure-okhttp3 |
OkHttp 3 or 4 interceptors | HTTP exchange attachment |
allure-spring-web |
Spring RestTemplate interceptors |
HTTP exchange attachment |
allure-jax-rs |
Jakarta RESTful Web Services / JAX-RS client filters | HTTP exchange attachment |
allure-servlet-api |
Jakarta Servlet request/response conversion | HTTP exchange request/response model |
allure-grpc |
gRPC client interceptors | HTTP exchange attachment with gRPC stream metadata |
allure-selenide |
Selenide UI tests | UI steps, screenshots, page source, logs |
allure-selenium-bidi |
Selenium WebDriver BiDi sessions | Browser logs and network attachments |
allure-playwright |
Playwright Java actions | AspectJ action steps and screenshots |
allure-jooq |
jOOQ execution listener | SQL execution steps |
| Module | Use When | Notes |
|---|---|---|
allure-assertj |
AssertJ assertions should appear as Allure steps | Requires AspectJ |
allure-hamcrest |
Hamcrest assertions should appear as Allure steps | Requires AspectJ |
allure-jupiter-assert |
JUnit Jupiter assertions should appear as Allure steps | Requires AspectJ |
allure-awaitility |
Awaitility polling should appear as Allure steps | Register condition listener |
allure-jsonunit |
JsonUnit diffs should be attached to Allure | Provides JSON matcher/listener helpers |
| Module | Purpose |
|---|---|
allure-bom |
Maven/Gradle dependency alignment |
allure-java-commons |
Runtime API, lifecycle, annotations, aspects, HTTP exchange model, test-plan filtering |
allure-model |
Serializable Allure result model |
allure-descriptions-javadoc |
Annotation processor for JavaDoc-based test descriptions |
allure-java-commons-test |
Internal test utilities for Allure Java modules |
Most adapters depend on allure-java-commons, which provides the high-level API:
import io.qameta.allure.Allure;
Allure.step("Create order", () -> {
Allure.attachment("request-id", "42");
});It also provides the HTTP exchange model:
import io.qameta.allure.Allure;
import io.qameta.allure.http.HttpExchange;
var exchange = HttpExchange.builder()
.redactHeader("X-Api-Key")
.redactCookie("SESSION")
.setMaxBodySize(64 * 1024)
.request("GET", "https://example.test/orders", request -> request
.addHeader("X-Api-Key", "secret"))
.response(response -> response
.setStatus(200))
.build();
Allure.addHttpExchange("HTTP exchange", exchange);