A premium, feature-rich, and beautiful automated testing HTML reporter for pytest, python, and playwright.
Project description
⚡ pytest-apmt-reporter
pytest-apmt-reporter is a premium, feature-rich, and visually stunning automated testing HTML reporter for Python, Pytest, and Playwright. Designed as a modern, high-fidelity alternative to Allure and Robot Framework, it features responsive layouts, a glowing glassmorphic dark-mode dashboard, interactive charts, nested execution steps, failure tracebacks, and automatically embedded screenshots.
🎨 Premium Visual Preview
(A sleek, glassmorphic dark-mode UI with vibrant neon colors, dynamic transitions, and interactive SVG status charts)
🚀 Easy & Beautiful Step-by-Step Guide
Step 1: 🔌 Installation
Install the package directly into your virtual environment:
pip install pytest-apmt-reporter
[!NOTE] By hooking directly into standard Pytest entry points, the reporter is automatically active immediately upon installation. No extra setup or config files are required!
Step 2: ✍️ Write Your Tests
Organize your test cases using step decorators, custom logs, metadata, and screenshots:
import pytest_apmt_reporter as apmt
@apmt.step("1. Authenticate with credentials")
def login(username, password):
apmt.attach("Connecting to authorization endpoint...", name="Network Handshake")
# ... login logic ...
def test_purchase_flow(page):
"""Verify purchase process end-to-end"""
apmt.set_environment_info("Environment", "Staging-US-East")
with apmt.step("2. Populate Shopping Cart"):
apmt.attach('{"item_id": 102, "qty": 1}', name="API Request Payload", attachment_type=apmt.AttachmentType.JSON)
login("demo_user", "secure_pass")
with apmt.step("3. Navigate to checkout and confirm"):
page.goto("https://shop.dev.local/checkout")
# If any assertion fails below, a screenshot is automatically captured!
assert page.locator("#confirm-btn").is_visible()
Step 3: 🛠️ Run & Generate
Simply run pytest as you normally would. The reporter will auto-detect and generate a beautiful self-contained HTML dashboard.
# Run pytest (generates report.html by default)
pytest
# Customize output filename and location
pytest --apmt-html=reports/e2e_dashboard.html
# Set a custom title for the dashboard header
pytest --apmt-title="US Staging E2E Suite"
Step 4: 📊 View the Report
Open the generated HTML file in any browser of your choice.
- Windows (PowerShell):
Start-Process report.html - macOS/Linux:
open report.html
⚖️ Why pytest-apmt-reporter?
| Feature | pytest-apmt-reporter |
pytest-html (Default) |
Allure |
|---|---|---|---|
| Design Aesthetics | 🌟 Glowing Premium Dark Mode | 📄 Basic XML-like Table | 📊 Good (Requires Server) |
| Self-Contained | Yes (100% Offline-First) | Yes (when configured) | No (Requires Java Server) |
| Zero Config Setup | Yes (Plug-and-Play) | Yes | No (Complex CLI install) |
| Auto Screenshots | Yes (Auto Playwright hooks) | No | No |
| Interactive Charts | Yes (SVG, Vanilla JS) | No | Yes |
[!TIP] Since the report is 100% offline-first, all styles, execution metrics, and images are compiled into a single HTML file. No external CDNs or network connections are used, making it perfectly secure and portable for email sharing or CI/CD build artifacts.
📝 Advanced Features
1. Programmatic Attachments
Attach raw console stdout, logs, JSON objects, or custom screenshots directly to steps:
apmt.attach("Some text log content", name="Log Name")
apmt.attach('{"status": "success"}', name="API Output", attachment_type=apmt.AttachmentType.JSON)
apmt.attach_screenshot(page, name="Post-Login Screen")
2. Custom Environment Properties
Inject metadata dynamically in the header summary cards:
apmt.set_environment_info("Execution Mode", "Pytest Automation Suite")
apmt.set_environment_info("CI Build Run ID", "90123")
📈 Try the Repository Demo
To quickly see how exceptions, nested steps, and failure banners render, execute:
pytest demo/test_playwright_demo.py --apmt-html=demo_report.html
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file apmt_reports-0.1.8.tar.gz.
File metadata
- Download URL: apmt_reports-0.1.8.tar.gz
- Upload date:
- Size: 92.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8cc5fe9827d5d04ef70a7ff41277e8ef69d96deac5937781da6b67c23ede84d6
|
|
| MD5 |
a813c21de0f2634abb93a7f64475eff9
|
|
| BLAKE2b-256 |
64fcbd9215e27bd54db236d2f49a19078d43f5045e29711a04a6de8349a01768
|
File details
Details for the file apmt_reports-0.1.8-py3-none-any.whl.
File metadata
- Download URL: apmt_reports-0.1.8-py3-none-any.whl
- Upload date:
- Size: 92.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b22ac8687bb4a7083849e15310a86e668b61398a89d879ec2b98d035700ae51
|
|
| MD5 |
fa8f754fc72d953d5219324fab7e4e55
|
|
| BLAKE2b-256 |
5fd35832a8739700ef52971bdbc0771cb579033afa6d5c300754bf3e64ad6ef7
|