Skip to content
Allure report logoAllure Report
Main Navigation ModulesDocumentationStarter Project

English

Español

English

Español

Appearance

Sidebar Navigation

Allure 3

Install & Upgrade

Install Allure

Upgrade Allure

Configure

Create Reports

How to generate a report

How to view a report

Improving readability of your test reports

Improving navigation in your test report

Migrate from Allure 2

Allure 2

Install & Upgrade

Install for Windows

Install for macOS

Install for Linux

Install for Node.js

Upgrade Allure

Create Reports

How to generate a report

How to view a report

Improving readability of your test reports

Improving navigation in your test report

Features

Test steps

Attachments

Test statuses

Sorting and filtering

Defect categories

Visual analytics

Test stability analysis

History and retries

Quality Gate

Timeline

Export to CSV

Export metrics

Guides

JUnit 5 parametrization

JUnit 5 & Selenide: screenshots and attachments

JUnit 5 & Selenium: screenshots and attachments

Setting up JUnit 5 with GitHub Actions

Pytest parameterization

Pytest & Selenium: screenshots and attachments

Pytest & Playwright: screenshots and attachments

Pytest & Playwright: videos

Playwright parameterization

Publishing Reports to GitHub Pages

Allure Report 3: XCResults Reader

How it works

Overview

Test result file

Container file

Categories file

Environment file

Executor file

History files

Integrations

Azure DevOps

Bamboo

GitHub Action

Jenkins

JetBrains IDEs

TeamCity

Visual Studio Code

Frameworks

Behat

Getting started

Configuration

Reference

Behave

Getting started

Configuration

Reference

Codeception

Getting started

Configuration

Reference

CodeceptJS

Getting started

Configuration

Reference

Cucumber.js

Getting started

Configuration

Reference

Cucumber-JVM

Getting started

Configuration

Reference

Cucumber.rb

Getting started

Configuration

Reference

Cypress

Getting started

Configuration

Reference

Jasmine

Getting started

Configuration

Reference

JBehave

Getting started

Configuration

Reference

Jest

Getting started

Configuration

Reference

JUnit 4

Getting started

Configuration

Reference

JUnit 5

Getting started

Configuration

Reference

Mocha

Getting started

Configuration

Reference

Newman

Getting started

Configuration

Reference

NUnit

Getting started

Configuration

Reference

PHPUnit

Getting started

Configuration

Reference

Playwright

Getting started

Configuration

Reference

pytest

Getting started

Configuration

Reference

Pytest-BDD

Getting started

Configuration

Reference

Reqnroll

Getting started

Configuration

Reference

REST Assured

Getting started

Configuration

Robot Framework

Getting started

Configuration

Reference

RSpec

Getting started

Configuration

Reference

SpecFlow

Getting started

Configuration

Reference

Spock

Getting started

Configuration

Reference

TestNG

Getting started

Configuration

Reference

Vitest

Getting started

Configuration

Reference

WebdriverIO

Getting started

Configuration

Reference

xUnit.net

Getting started

Configuration

Reference

On this page

History files ​

WARNING

This page describes a data format used by Allure. Understanding this format is not necessary for using Allure in your project. For a more high-level description of working with history, see Tests history.

The history directory in Allure Report 2 and the history JSONL file, which replaced it in Allure Report 3, are used for transferring simplified information between consecutive test reports.

Historical data populates the History tab in the test details and various graphs.

Allure Report 3 ​

Allure report 3 stores all historical data in a single JSONL file, its location determined by the historyPath configuration parameter.

History File Format ​

File: JSONL (JSON Lines) format - one JSON object per line

Location: Configured via historyPath (default: undefined)

Structure: Each line represents one complete test run

Example:

jsonl
{"uuid":"abc-123","name":"Allure Report","timestamp":1697020800000,"knownTestCaseIds":["tc1","tc2"],"testResults":{...},"metrics":{},"url":""}
{"uuid":"def-456","name":"Allure Report","timestamp":1697107200000,"knownTestCaseIds":["tc1","tc2","tc3"],"testResults":{...},"metrics":{},"url":""}

Each history entry contains:

  • uuid (string) — unique ID for this report run.
  • name (string) — report name.
  • timestamp (integer) — when this run happened, in the UNIX timestamp format.
  • knownTestCaseIds (array of strings) — array of test case IDs.
  • testResults (object) — object keyed by historyId containing test results.
  • url (string) — remote URL (e.g., CI job URL).

Each test result in the testResults object contains:

  • id (string) — the unique identifier of this history item.
  • name (string) — the title of the test. Copied from name in the test result file.
  • fullName (string) — a unique identifier based on the file name and the test name. Copied from fullName in the test result file.
  • environment (string) — environment name. Set by matching labels via rules defined in the configuration file.
  • status (string) — the status with which the test or step finished. Copied from status in the test result file.
  • start (integer) — the time when the execution started, in the UNIX timestamp format. Copied from start in the test result file.
  • stop (integer) — the time when the execution finished, in the UNIX timestamp format. Copied from stop in the test result file.
  • duration (integer) — the difference between the start and stop values.
  • labels (array) — array of test labels. Copied from labels in the test result file.
  • url (string) — currently unused.
  • historyId (string) — the historyId for this history item.
  • reportLinks (array) — currently unused.

Failed tests also contain the following fields populated with error data copied from statusDetails in the test result file:

  • message (string) — a brief description of why the test failed.
  • trace (string) — the complete stack trace showing where in the code the failure occurred.

Single test result object example:

json
{
  "9b448b5eff623519556020f329494163.d41d8cd98f00b204e9800998ecf8427e": {
    "id": "74364e3f7162027e8e10fe7f3af56b5e",
    "name": "Creating new issue authorized user",
    "fullName": "io.qameta.allure.IssuesWebTest.shouldCreateIssue",
    "environment": "default",
    "status": "passed",
    "start": 1748616059263,
    "stop": 1748616060376,
    "duration": 1113,
    "labels": [
      {
        "name": "framework",
        "value": "junit-platform"
      },
      {
        "name": "language",
        "value": "java"
      },
      {
        "name": "package",
        "value": "io.qameta.allure.IssuesWebTest"
      },
      {
        "name": "testClass",
        "value": "io.qameta.allure.IssuesWebTest"
      },
      {
        "name": "testMethod",
        "value": "shouldCreateIssue"
      },
      {
        "name": "suite",
        "value": "io.qameta.allure.IssuesWebTest"
      }
    ],
    "url": "",
    "historyId": "9b448b5eff623519556020f329494163.d41d8cd98f00b204e9800998ecf8427e",
    "reportLinks": []
  }
}

Configuration ​

javascript
{
  historyPath: "./.allure/history.jsonl",
  appendHistory: true
}

Allure Report 2 ​

Allure Report 2 generates its history directory during test report generation. It can then be copied to the test results directory for the new report, either manually or by a CI integration plugin.

The directory contains the following files:

  • history.json
  • history-trend.json
  • duration-trend.json
  • retry-trend.json
  • categories-trend.json

history.json ​

The history/history.json file stores general information about runs of each test.

In the root JSON object in the file, each key is some test's historyId. Each value is an object containing:

  • statistic — the statistics related to the test (used for the Test statuses graph).
  • items — information about specific runs of the test (used for the History tab in the test details).

Example:

json
{
  "4da3226ec9761b158ba5f826fc8f8289": {
    "statistic": {
      "failed": 1,
      "broken": 0,
      "skipped": 0,
      "passed": 0,
      "unknown": 0,
      "total": 1
    },
    "items": [
      {
        "uid": "74556baed1daf783",
        "reportUrl": "https://reports.example.com/1234",
        "status": "failed",
        "statusDetails": "AssertionError: Some fail reason\nassert False",
        "time": {
          "start": 1682358404995,
          "stop": 1682358404995,
          "duration": 0
        }
      }
    ]
  }
}

In the statistic object, there is a key corresponding to each possible test status. The value for each of these keys represents the number of times the test got this status. Additionally, there is the total key, with the value representing the total number of reports that include this test.

The items array represents the test's data from different test reports. Each object in the array has the following properties:

  • uid (string) — the unique identifier of this history item.
  • reportUrl (string) — the URL of the test report from which this data is extracted.
  • status (string) — the status with which the test or step finished. Copied from status in the test result file.
  • statusDetails (string) — the short text message with which the test finished. Copied from statusDetails.message in the test result file.
  • time (object):
    • start (integer) — the time when the execution started, in the UNIX timestamp format. Copied from start in the test result file.
    • stop (integer) — the time when the execution finished, in the UNIX timestamp format. Copied from stop in the test result file.
    • duration (integer) — the difference in seconds between the start and stop values.

history-trend.json ​

The history/history-trend.json file stores data for the Trend graph.

Example:

json
[
  {
    "buildOrder": 1234,
    "reportName": "Report #1234",
    "reportUrl": "https://reports.example.com/1234",
    "data": {
      "failed": 0,
      "broken": 0,
      "passed": 32,
      "skipped": 0,
      "unknown": 0,
      "total": 32
    }
  }
]

Each object in the array has the following properties:

  • buildOrder (integer) — the identifier provided by the build's executor.json.
  • reportUrl (string) — the URL of the test report from which the data is extracted.
  • reportName (string) — the title of the report from which the data is extracted.
  • data (object) — in this object, there is a key corresponding to each category (see Defect categories). The value for each of these keys represents the number of tests in this category. The value for the total key indicates the total number of tests.

duration-trend.json ​

The history/duration-trend.json file stores data for the Duration trend graph, see Trend graphs.

Example:

json
[
  {
    "buildOrder": 1234,
    "reportName": "Report #1234",
    "reportUrl": "https://reports.example.com/1234",
    "data": {
      "duration": 78
    }
  }
]

Each object in the array has the following properties:

  • buildOrder (integer) — the identifier provided by the build's executor.json.
  • reportUrl (string) — the URL of the test report from which the data is extracted.
  • reportName (string) — the title of the report from which the data is extracted.
  • data (object):
    • duration (integer) — number of seconds it took to run all the tests.

retry-trend.json ​

The history/retries-trend.json file stores data for the Retries trend graph, see Trend graphs.

Example:

json
[
  {
    "buildOrder": 1234,
    "reportName": "Report #1234",
    "reportUrl": "https://reports.example.com/1234",
    "data": {
      "run": 39,
      "retry": 15
    }
  }
]

Each object in the array has the following properties:

  • buildOrder (integer) — the identifier provided by the build's executor.json.
  • reportUrl (string) — the URL of the test report from which the data is extracted.
  • reportName (string) — the title of the report from which the data is extracted.
  • data (object):
    • run (integer) — number of test runs that did not cause a retry.
    • retry (integer) — number of test runs that caused a retry.

categories-trend.json ​

The history/categories-trend.json file stores data for the Categories trend graph, see Trend graphs.

Example:

json
[
  {
    "buildOrder": 1234,
    "reportName": "Report #1234",
    "reportUrl": "https://reports.example.com/1234",
    "data": {
      "Product defects": 2,
      "Test defects": 1
    }
  }
]

Each object in the array has the following properties:

  • buildOrder (integer) — the identifier provided by the build's executor.json.
  • reportUrl (string) — the URL of the test report from which the data is extracted.
  • reportName (string) — the title of the report from which the data is extracted.
  • data (object) — in this object, there is a key corresponding to each category (see Defect categories). The value for each of these keys represents the number of tests in this category.
Pager
Previous pageExecutor file
Next pageIntegrations
Powered by

Subscribe to our newsletter

Get product news you actually need, no spam.

Subscribe
Allure TestOps
  • Overview
  • Why choose us
  • Cloud
  • Self-hosted
  • Success Stories
Company
  • Documentation
  • Blog
  • About us
  • Contact
  • Events
© 2026 Qameta Software Inc. All rights reserved.