venom-report
A static HTML report for any venom run, like coverage html:
every suite, testcase and step, the HTTP call made (method, URL, headers, body), the
response, the assertions (the failing one in red), and why a testcase was skipped.
pipx install venom-report # or: uv tool install venom-report
venom-report path/to/output # -> path/to/output/report/index.html
venom-report output --open # and open it
No dependency (Python ≥ 3.10); pip install 'venom-report[yaml]' adds PyYAML for --expected-reds. The page is one self-contained file that opens over file://.
What it reads
| venom writes | when | gives |
|---|---|---|
test_results_*.xml |
format: xml (default) |
suites, testcases, pass/fail/skip, failure messages |
test_results_*.json |
format: json |
same, plus every step with its request/response, no dump needed |
*.dump.json |
-vvv / verbosity: 3 |
each step: the request sent and the full response |
Without dumps (xml, no -vvv), the report falls back on the JUnit system-out and says so.
venom never cleans output/: dumps from older runs sit next to fresh ones. A dump is
used only if it was written during the run that produced the report (from its mtime).
If the same suite was reported twice (e.g. venom run tests/ then venom run tests/x.yml),
the newest report wins.
Options
| option | default | |
|---|---|---|
-o FILE |
OUTPUT_DIR/report/index.html |
where to write |
--title T |
venom · <parent dir> |
page title |
--expected-reds FILE |
none | YAML list of reds that are known and accepted, shown apart from regressions (needs PyYAML) |
--redact REGEX |
authorization|token|secret|passw(or)?d|cookie|api[-_]?key|credential |
keys and headers whose values are masked |
--max-body N |
100000 |
bodies longer than N chars are truncated |
--open |
open the report in a browser |
--expected-reds accepts a list, or a mapping with an expected_reds: list, of entries
{testcase, suite?, divergence?, why?} or bare testcase names. Names match loosely
(TC8 foo bar = TC8-foo-bar).
Secrets
Values under a sensitive key (in dumps, headers, venom vars, venom secrets) are masked,
then every other occurrence of those values is masked too (URLs, bodies, logs), as is
any Bearer … / Basic …. The venom variables block is never embedded. Still, check a
report before sharing it outside your team.
Tests
uv run pytest
The fixtures are real venom v1.3.0 outputs of tests/fixtures/suite_a.yml.
Release
Publish a GitHub release with a vX.Y.Z tag: the version comes from the tag, and the
Release workflow uploads to PyPI (trusted publishing, no token).
License
Metadata
Release files for venom-report 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| venom_report-0.1.0.tar.gz | 27.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| venom_report-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 50.2 kB
Release files / venom_report-0.1.0.tar.gz
| Download URL | venom_report-0.1.0.tar.gz |
|---|---|
| Size | 27.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a4edbe66990beaa82f7dab19c43d4c514b2821890fb811ee185be0006ef0fa3b
|
|
BLAKE2b-256 checksum How to use checksums |
8bc57c9575cf2a67768621a91bdcb7705d8807a4f76f9d587a325ea0af372701
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.
Transparency logRelease files / venom_report-0.1.0-py3-none-any.whl
| Download URL | venom_report-0.1.0-py3-none-any.whl |
|---|---|
| Size | 22.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b110ad196a7a9795bcd5cec0c8a5d22c8a7247de0160a6204dc02822ac29feef
|
|
BLAKE2b-256 checksum How to use checksums |
b5187e34fa77a2891956a77d8fa287d92a2fb4740f0ca70ccd5ef7bcb4cd4874
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.
Transparency log