Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

apmt_reports-0.1.8.tar.gz (92.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

apmt_reports-0.1.8-py3-none-any.whl (92.2 kB view details)

Uploaded Python 3

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

Hashes for apmt_reports-0.1.8.tar.gz
Algorithm Hash digest
SHA256 8cc5fe9827d5d04ef70a7ff41277e8ef69d96deac5937781da6b67c23ede84d6
MD5 a813c21de0f2634abb93a7f64475eff9
BLAKE2b-256 64fcbd9215e27bd54db236d2f49a19078d43f5045e29711a04a6de8349a01768

See more details on using hashes here.

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

Hashes for apmt_reports-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 0b22ac8687bb4a7083849e15310a86e668b61398a89d879ec2b98d035700ae51
MD5 fa8f754fc72d953d5219324fab7e4e55
BLAKE2b-256 5fd35832a8739700ef52971bdbc0771cb579033afa6d5c300754bf3e64ad6ef7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page