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.5

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.5
File Size Uploaded
net_benchmark-0.5.5.tar.gz 5.7 MB Details

Built distribution (wheel)

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

Total release size: 11.4 MB

Release files / net_benchmark-0.5.5.tar.gz

Download URL net_benchmark-0.5.5.tar.gz
Size 5.7 MB
Tags Source
SHA-256 checksum
How to use checksums
ba4ed1b0adc1bcbc25c6c0f849f4b73a8d23346fea8b054696cc34474ddb1ea0
BLAKE2b-256 checksum
How to use checksums
e16e3df908166117b9d135244ce922200bee48239359a1f47df6c63051503be5
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 3, 2026.

Transparency log

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

Download URL net_benchmark-0.5.5-py3-none-any.whl
Size 5.7 MB
Tags Python 3
SHA-256 checksum
How to use checksums
f0193f78bfa0e8b1a87814b7ef3343a8ab7315380a8c4d798668e90ff0cf68e1
BLAKE2b-256 checksum
How to use checksums
766b2543191a7f8f63d48f450bb6eaab2669cb3d4a49862a1b31ebc76a8e9f78
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 3, 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

This release

0.5.5 This release

2 release files

0.5.4

2 release files

0.5.3

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