Skip to main content

net-benchmark

fast, extensible network benchmarking — dns, http, ssl, and distributed load testing from a single cli.

PyPI version Python License

CI Downloads Docs Discussions PyPI - Wheel GitHub Stars

pip install net-benchmark
pip install net-benchmark[pdf]   # with pdf export

successor to dns-benchmark-tool — fully backward compatible. dns-benchmark command still works as an alias.


tools

dns benchmark — resolver performance, dnssec, doh/dot
net-benchmark dns benchmark --use-defaults
net-benchmark dns benchmark --use-defaults --doh
net-benchmark dns benchmark --use-defaults --dot --dnssec-validate
net-benchmark dns compare Cloudflare Google Quad9 --dnssec-validate
net-benchmark dns monitoring --use-defaults --interval 30
flag description default
--use-defaults built-in resolvers and sample domains
--resolvers name, ip, or file
--domains comma-separated or file
--iterations queries per resolver 1
--doh dns-over-https false
--doh-url comma-separated urls, one per resolver
--dot dns-over-tls false
--dnssec-validate fail if ad flag absent false
--formats csv, excel, pdf, json csv,excel,pdf

full documentation: github.com/net-benchmark/net-benchmark

http benchmark — latency, ttfb, security headers, tls certs
net-benchmark http benchmark --use-defaults
net-benchmark http benchmark --use-defaults --iterations 5
net-benchmark http benchmark --targets "https://api.example.com" --method POST --body '{}'
net-benchmark http compare api.example.com api2.example.com --iterations 3
net-benchmark http top --use-defaults --limit 5
net-benchmark http monitoring --use-defaults --interval 30
flag description default
--use-defaults built-in target urls
--targets comma-separated urls or file
--method http verb (get, post, etc.) get
--headers "key:value,key2:value2"
--body inline request body (e.g. json)
--body-file path to body file
--auth basic:user:pass or bearer:token
--cert / --cert-key mtls client certificate
--proxy proxy url
--assert repeatable: status=200, body_contains=ok, max_latency=500, etc.
--iterations requests per target 1
--no-http2 force http/1.1 false
--no-verify-ssl skip tls verification false
--formats csv, excel, pdf, json csv,excel,pdf

full documentation: github.com/net-benchmark/net-benchmark

http load test — sustained traffic, thresholds, distributed workers
net-benchmark http load-test -t https://api.example.com/health --mode throughput --duration 30
net-benchmark http load-test -t https://api.example.com --mode sustained --rps 150 --duration 300
net-benchmark http load-test -t https://api.example.com --mode ramp-up --ramp-concurrency 500
net-benchmark http load-test -t https://api.example.com --threshold 'p95_latency<500' --threshold 'dropped_rate<1'
net-benchmark http load-test -t https://api.example.com --workers 4 --emit-summary node-a.json
net-benchmark http merge-load-test ./nodes/*.json -o ./merged
flag description default
--targets / -t comma-separated urls or file
--mode throughput, sustained, ramp-up throughput
--duration seconds (throughput/sustained) 10
--rps target requests/sec — required for sustained
--max-concurrency max in-flight requests (throughput) 200
--ramp-concurrency peak concurrency to ramp to 200
--max-total-rps safety ceiling on aggregate rps during ramp-up ramp-concurrency × 50
--expected-status codes treated as expected, e.g. 200-299,401
--threshold repeatable pass/fail, e.g. p95_latency<500
--workers generate load from n processes on this machine 1
--target-distribution replicate (every worker hits every target) or shard replicate
--start-at / --start-delay synchronised start across machines
--warmup requests per target before the start barrier 0
--emit-summary write this run's summaries as json, for merging
--region label for where this generator runs, e.g. hel1
--live print each interval as it completes false
--formats csv, excel, pdf, json csv,excel

since 0.5.2, load can be generated from several parallel workers — separate processes on one machine, or separate machines entirely — with a synchronised start and a statistically correct merge. merge-load-test recomputes p95_latency and p99_latency from the merged latency histogram rather than averaging per-worker percentiles; std_latency, jitter, consistency_score and the phase p95s do not survive a merge and are rejected as unknown metrics, so evaluate those per worker.

full documentation: http load testing

ssl check — certificate expiry and chain validation (coming 0.6.0)
net-benchmark ssl check --hosts "example.com,api.example.com"

full documentation: github.com/net-benchmark/net-benchmark


export formats

format flag notes
csv --formats csv raw results + summary
excel --formats excel charts, dnssec sheet, colour coding
pdf --formats pdf requires pip install net-benchmark[pdf]
json --formats json full payload including protocol stats; per-worker summaries and latency histogram on merged runs

links


license

mit © frankovo

Release files for net-benchmark 0.5.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for net-benchmark 0.5.3
File Size Uploaded
net_benchmark-0.5.3.tar.gz 5.7 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for net-benchmark 0.5.3
File Interpreter ABI Platform
net_benchmark-0.5.3-py3-none-any.whl Python 3 none any Details

Total release size: 11.4 MB

Release files / net_benchmark-0.5.3.tar.gz

Download URL net_benchmark-0.5.3.tar.gz
Size 5.7 MB
Tags Source
SHA-256 checksum
How to use checksums
d024b465af6358748970f72afbfba557af2f99bdca627162f39fa411234de069
BLAKE2b-256 checksum
How to use checksums
9c96a7ddb927853d0baf23f331ad2073e204477341933b66ae1031ad97244f24
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 Sep 2, 2026.

Transparency log

Release files / net_benchmark-0.5.3-py3-none-any.whl

Download URL net_benchmark-0.5.3-py3-none-any.whl
Size 5.7 MB
Tags Python 3
SHA-256 checksum
How to use checksums
7e38482215c002c091f0fb397a5c4a2e49d3110cf609e02351e66922ea14085d
BLAKE2b-256 checksum
How to use checksums
b3c9388147821396989367dc8f4d515ba9995aa7a5ee519454570cc0f1d1d11c
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 Sep 2, 2026.

Transparency log

Release history Release notifications | RSS feed

0.6.1

2 release files

0.6.0

2 release files

0.5.6

2 release files

0.5.5

2 release files

0.5.4

2 release files

This release

0.5.3 This release

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.3

2 release files

0.4.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page