allure-python-commons
Contains the API for end users as well as helper functions and classes to build Allure adapters for Python test frameworks
What it is and what it does
allure-python-commons is the foundational library for Allure Report integration in Python. It provides the object model, lifecycle management, and common API that both end users and framework adapter developers rely on. End users import it to decorate test functions with metadata (title, severity, epic, feature, story, tags, links) and to attach runtime information like parameters and files. Adapter developers use internal APIs—the model classes, file/memory loggers, and lifecycle implementations—to build test framework plugins that emit Allure report data.
The package is lightweight, with only attrs and pluggy as runtime dependencies, and maintains active development with support for Python 3.8 through 3.13. It sits between test frameworks and the Allure reporting engine, translating test metadata into the structured format Allure Report consumes. Most users install it indirectly as a dependency of an Allure adapter, though it can be used directly to build custom adapters.
Use it for:
- Decorate test functions with allure.title, allure.severity, and allure.epic to organize and prioritize reports
- Attach screenshots, logs, or JSON payloads to test results at runtime using allure.attach for debugging
- Build a custom Allure adapter using the model2 and lifecycle APIs for non-standard test frameworks
- Dynamically add test metadata (description, tags, links) during test execution via allure.dynamic.*
- Emit test results and containers to Allure Report format for integration with CI/CD dashboards
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides the common API and object model for Allure Report, enabling test framework adapters and end users to enhance test reports with metadata, attachments, and structured test information.
Yes. This is a stable, actively maintained library in production use (top 5000 PyPI packages) with no known vulnerabilities, permissive licensing, and minimal dependencies. Install it if you are building an Allure adapter or using an Allure-integrated test framework.
Install
allure-python-commons on PyPI
pip
pip install allure-python-commonsuv
uv add allure-python-commonspoetry
poetry add allure-python-commonsInstalling allure-python-commons
Before you install
Low friction install with only two runtime dependencies (attrs, pluggy). Actively maintained with recent commits and stable production status.
License in practice
Licensed under Apache-2.0 (permissive), allowing free use, modification, and distribution with minimal restrictions—suitable for both open-source and commercial projects.
Quickstart
pip install allure-python-commons
import allure
@allure.title("My test")
def test_example():
allure.attach("test data", name="info")
Requires Python 3.6 or later. Typically used as a dependency of an Allure adapter rather than standalone.
Verify before relying
- Whether the package works effectively in multithreaded scenarios beyond what AllureReporter currently supports
- Specific async/await concurrency support status relative to the open issues mentioned in the description
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.6) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — attrs, pluggy |
| Maintenance | actively maintained — 109 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 8,935,381/month — #1,574 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: allure_python_commons-2.16.0-py3-none-any.whl
Keywords: allure, reporting, report-engine
Tags
More Testing packages
Pluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
virtualenvvirtualenv creates isolated Python environments…
permissive · top 100 on PyPI
coverageCoverage.py measures which lines of Python code…
permissive · top 1,000 on PyPI
pytest-asynciopytest-asyncio is a pytest plugin that enables…
permissive · top 1,000 on PyPI
pytest-json-ctrfA pytest plugin that generates test reports in…
permissive · top 1,000 on PyPI
allure-combineConverts an Allure test report folder into a…
permissive · top 15,000 on PyPI
allure-pytestIntegrates pytest with Allure Report to…
permissive · top 5,000 on PyPI
allure-robotframeworkIntegrates Robot Framework test execution with…
permissive · top 15,000 on PyPI
allure-pytest-bddIntegrates Allure Report with Pytest-BDD to…
permissive · top 15,000 on PyPI
allure-behaveIntegrates Behave BDD test execution with…
permissive · top 15,000 on PyPI
allure-pytest-default-resultsGenerates default "unknown" status results for…
unclear · top 15,000 on PyPI
behavexBehaveX extends Behave with parallel test…
unclear · top 15,000 on PyPI
qase-pytestA pytest plugin that reports test results to…
permissive · top 15,000 on PyPI
ansible-compatProvides compatibility utilities for working…
permissive · top 5,000 on PyPI
pytest-htmlGenerates HTML reports for pytest test results,…
copyleft · top 1,000 on PyPI