allure
Introduction
Installation
Windows
On Windows Allure can be installed via scoop
scoop install allure
Installing 'allure' (2.35.1) [64bit] from 'main' bucket allure-2.35.1.zip (23.8 MB) [==============================] 100% Checking hash of allure-2.35.1.zip ... ok. Extracting allure-2.35.1.zip ... done. Linking ~\scoop\apps\allure\current => ~\scoop\apps\allure\2.35.1 Creating shim for 'allure'. 'allure' (2.35.1) was installed successfully!
Allure requires Java. You can read about installing Java
here
.
Add
Java
to PATH with the help of
PowerShell
$Env:Path += ';C:\Program Files\jdk-25.0.1\bin'
jdk-25.0.1 must be replaced with the JDK version you downloaded.
Version check
allure --version
2.35.1
Start the web server
To view the reports you need to start the web server. This is done with the serve command, specifying the directory that contains the reports of interest.
allure serve allure-results
allure serve S:\allure-results
Generating report to temp directory... Report successfully generated to C:\Users\A\AppData\Local\Temp\2968957035864493555\allure-report Starting web server... Server started at <http://127.0.0.1:50188>. Press <Ctrl+C> to exit
Report example
Once the web server is started, you can study the reports by opening them in the browser
http://127.0.0.1:50188
if it did not open automatically
History
Let us talk about what happens when allure is launched in various ways.
We will pay special attention to preserving the history of test runs.
Let us start with the fact that we have already written a test and specified the directory in which the results should be saved
In
PyTest
this can be done with
pytest.ini
[pytest] addopts = --alluredir=S:\allure-results
Let us make sure that there is nothing on the disk yet.
ls S:\
Now let us run the demo_test.py file, which contains three tests: test_a, test_b and test_c
python -m pytest -vv .\tests\demo_test.py
ls S:\
allure-results
The allure-results directory has appeared
ls S:\allure-results\
Directory: S:\allure-results Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 4/14/2026 7:37 PM 759 3a9a67f8-27b5-4830-a830-0724c1ce2fb0-result.json -a--- 4/14/2026 7:37 PM 582 75dd9c66-94c7-4850-9b8e-e944b1c8edf8-result.json -a--- 4/14/2026 7:37 PM 582 e25b2c13-901b-41de-bbdf-5b9a2d822560-result.json
There are now three files in the directory. Each corresponds to one test. Since the names are generated, the order may not match.
Let us open the first file, 3a9…
notepad S:\allure-results\3a9a67f8-27b5-4830-a830-0724c1ce2fb0-result.json
{"name": "test_b", "status": "failed", "statusDetails": {"message": "AssertionError: assert 1 == 2", "trace": "def test_b():\n> assert 1 == 2\nE assert 1 == 2\n\ntests\demo_test.py:14: AssertionError"}, "start": 1776184411795, "stop": 1776184411811, "uuid": "c166a217-75cf-4cbc-b72f-aeaf48168360", "historyId": "ade4eb11ee464ffee49775014f5f7d46", "testCaseId": "ade4eb11ee464ffee49775014f5f7d46", "fullName": "tests.demo_test#test_b", "labels": [{"name": "parentSuite", "value": "tests"}, {"name": "suite", "value": "demo_test"}, {"name": "host", "value": "ANDREI_HOST"}, {"name": "thread", "value": "5240-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.demo_test"}]}
You can immediately see that this file contains data about the test test_b
Article author: Arthur Isaev