Allure Java is the JVM integration family for Allure Report. It helps Java, Groovy, Scala, Kotlin, and other JVM test suites write Allure result files that can be viewed in Allure Report.
- 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.
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-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 listeners | Karate runtime listener |
allure-citrus |
Citrus tests | Citrus listeners |
| Module | Use When | Captured Data |
|---|---|---|
allure-rest-assured |
REST Assured filters | HTTP requests and responses |
allure-httpclient5 |
Apache HttpClient 5 interceptors | HTTP requests and responses |
allure-httpclient |
Apache HttpClient 4 interceptors | HTTP requests and responses |
allure-okhttp3 |
OkHttp interceptors | HTTP requests and responses |
allure-spring-web |
Spring RestTemplate interceptors |
HTTP requests and responses |
allure-jax-rs |
Jakarta RESTful Web Services / JAX-RS client filters | HTTP requests and responses |
allure-servlet-api |
Jakarta Servlet request/response conversion | Servlet request and response data |
allure-grpc |
gRPC client interceptors | gRPC calls and 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, and test-plan filtering |
allure-model |
Serializable Allure result model |
allure-descriptions-javadoc |
Annotation processor for JavaDoc-based test descriptions |
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");
});For HTTP clients, browser tools, assertion libraries, and other integrations, add the matching module from the catalog above. Each module README shows the registration snippet for that tool.