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

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

Built distribution (wheel)

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

Total release size: 11.4 MB

Release files / net_benchmark-0.5.2.tar.gz

Download URL net_benchmark-0.5.2.tar.gz
Size 5.7 MB
Tags Source
SHA-256 checksum
How to use checksums
ddc657395d50fc40504c5bb4b603bdac47bf93eb0ed3ce72d4b1aa65db81889b
BLAKE2b-256 checksum
How to use checksums
797f5784348ee83c4cd7e6e9a6761875be9cedb18a8e700c9324de250896cdd6
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 Aug 15, 2026.

Transparency log

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

Download URL net_benchmark-0.5.2-py3-none-any.whl
Size 5.7 MB
Tags Python 3
SHA-256 checksum
How to use checksums
23d83e46e51d011c8e2ba4e8d1aad40c8cf13a9126127abfc29c74bec4423f13
BLAKE2b-256 checksum
How to use checksums
13ff799e7a52250f4c88032b57493d584cb7072af20a73691fba43b1edc4ab6d
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 Aug 15, 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

0.5.3

2 release files

This release

0.5.2 This release

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