Generate a modern, interactive HTML report from Robot Framework output.xml
Project description
Robotframework ReportLens
ReportLens turns Robot Framework XML output (output.xml) into a single, self-contained HTML report with a modern, interactive UI.
Sample Report
View generated reports here
Installation
pip install robotframework-reportlens
Requires Python 3.10+. No extra dependencies (stdlib only).
Usage
After running Robot Framework tests (e.g. robot test/), generate a report from output.xml:
reportlens output.xml -o report.html
Arguments:
xml_file– Path to Robot Framework XML output (e.g.output.xml)-o,--output– Output HTML path (default:report.html)--external-data– Store report data inreportlens-data/and fetch it lazily (recommended for huge suites)
Examples:
# Default output (report.html in current directory)
reportlens output.xml
# Custom output path
reportlens output.xml -o docs/report.html
# External-data mode (lazy loading + smaller HTML)
reportlens output.xml -o report.html --external-data
Open the generated .html file in a browser.
External-data mode note When using
--external-data, open the report via a local web server (e.g.python -m http.server). Opening the file directly withfile://will show a banner with a helpful link to the hosted report.
You can also run the module directly:
python -m robotframework_reportlens output.xml -o report.html
Features
- Suite/test tree – Navigate suites and tests with pass/fail/skip counts
- Search & filters – Filter by status and tags; search test names
- External-data mode – Optional
--external-dataoutput for lazy loading and smaller HTML files - Keyword tree – Expand SETUP, keywords, and TEARDOWN; select a keyword to see its logs
- Logs panel – Log level filter (All, ERROR, WARN, INFO, etc.); copy button on each log message (shown on hover)
- Failed-tests summary – Quick access to failed tests from the sidebar
- Dark/light theme – Toggle in the report header
- Batch rendering – Large suites render tests in batches for smoother UI performance
- Fixed layout – Same layout on all screens; zoom and scroll as needed
How it works
ReportLens reads output.xml, parses suites, tests, keywords, and messages, then builds one HTML file from a bundled template. The report is data-driven: all content is embedded as JSON and rendered by JavaScript in the browser. No server required.
Development / source layout
├── robotframework_reportlens/
│ ├── __init__.py
│ ├── cli.py # reportlens entry point
│ ├── generator.py # XML → report data → HTML
│ └── template/
│ └── template.html
├── tests/
│ ├── conftest.py # pytest fixtures
│ ├── test_cli.py # CLI tests
│ ├── test_generator.py # report generator tests
│ └── fixtures/ # minimal Robot output.xml for tests
├── pyproject.toml
└── README.md
Running tests
Install with dev dependencies and run pytest:
pip install -e ".[dev]"
pytest tests/ -v
License
Apache License 2.0 - See LICENSE file for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
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
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 robotframework_reportlens-0.1.6.tar.gz.
File metadata
- Download URL: robotframework_reportlens-0.1.6.tar.gz
- Upload date:
- Size: 49.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7c469b04cb9f7129b799af3128d5d197118a618971375529b1bc6604b3dea1da
|
|
| MD5 |
cf0fb421c89c63db154804eff3b2e44a
|
|
| BLAKE2b-256 |
0a8dfa9158d6389df6baa9be6fd963054b65839cdc12f5ce6b9c07b30df0e9ae
|
File details
Details for the file robotframework_reportlens-0.1.6-py3-none-any.whl.
File metadata
- Download URL: robotframework_reportlens-0.1.6-py3-none-any.whl
- Upload date:
- Size: 44.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
919341d2d58f246ec9711edf6d22f91b796b073d6310e38631fed7677514f0a2
|
|
| MD5 |
c931eba04bd75e50904c21214f39b401
|
|
| BLAKE2b-256 |
1235f4095cd621ca53aca30938097d1970f86d2ea31e013d6d34023a41303e09
|