嘟嘟社区

【必须收藏】网站压测工具合集,武器库


本帖最后由 3077 于 2024-10-27 11:37 编辑

转:https://clochat.com/t/topic/31

下面会列举所有比较有名气的压测工具,你可能听过其中的部分,我比较常用的有ab/wrk/webbenchmark

我的一些经验
搜索压测工具,大部分会回答用ab,ab成熟全面,但不支持https
webbenchmark基于go语言编写,没有依赖,安装方便,但有设计缺陷容易被反利用
wrk效率特别高,能够压出较高的数值

软件列表
ab 1 – slow in single-threaded can be made more efficient by taskset, written in C

ali – Generate HTTP load and plot the results in real-time, written in Go (golang)

apib – most of the features of ApacheBench (ab), also designed as a more modern replacement, written in C

autocannon – fast HTTP/1.1 benchmarking tool written in Node.js

baloo – Expressive end-to-end HTTP API testing made easy, written in Go (golang)

baton – HTTP load testing, written in Go (golang)

Bencher – A suite of continuous benchmarking tools designed to catch performance regressions in CI

bombardier – Fast crossplatform HTTP benchmarking tool, written in Go (golang)

cassowary – is a modern HTTP(S), intuitive & cross-platform load testing tool, written in Go (golang)

curl-loader – performance loading of various application services and traffic generation, written in C

ddosify – High-performance load testing tool, written in Go (golang)

drill – Drill is a HTTP load testing application inspired by Ansible syntax, written in Rust

fasthttploader – benchmark (kinda ab) with autoadjustment and charts based on fasthttp library, written in Go (golang)

fbender – A load-testing command line tool for generic network protocols (HTTP, DNS, DHCP, …), written in Go (golang)

fortio – load testing library and command line tool and web UI. Allows to specify a set query-per-second load and record latency histograms and other useful stats, written in Go (golang)

gatling – High performance load testing framework based on Scala, Akka and Netty, written in Scala

go-wrk – a HTTP benchmarking tool based in spirit on the excellent wrk tool (wg/wrk 3), written in Go (golang)

goad – Goad is an AWS Lambda powered, highly distributed, load testing tool, written in Go (golang)

gobench – HTTP/HTTPS load testing and benchmarking tool, written in Go (golang)

gohttpbench – ab-like benchmark tool run on multi-core cpu, written in Go (golang)

goloris – Slowloris for NGINX DoS attack, written in Go (golang)

goose – A modern, high-performance and flexible distributed HTTP(S) load testing tool, written in Rust

h2load – benchmarking tool for HTTP/2 and HTTP/1.1. It supports SSL/TLS and clear text for all supported protocols, written in C/C++

hey – HTTP(S) load generator, ApacheBench (ab) replacement, formerly known as rakyll/boom, written in Go (golang)

htstress – multithreading high-load bechmarking services (>5K rps), written in C/Linux

httperf – difficult configuration, slow and single threaded, written in C

httping – Ping with HTTP requests, see http://www.vanheusden.com/httping/, written in C

httpit – A rapid http(s) benchmark tool, written in golang

inundator – A simple and high-throughput HTTP flood program, written in C/Linux

jmeter – Apache JMeter™, pure application designed to load test performance both on static and dynamic resources, written in Java

k6 – A modern load testing tool scriptable in ES6 JS with support for HTTP/1.1, HTTP/2.0 and WebSocket, written in Go (golang)

locust – easy-to-use, distributed load testing tool with real-time web UI. Simulates a swarm of concurrent users, the behavior of each of them is defined by your python code. Written in Python

lor-axe – A multi-threaded, low-bandwidth HTTP Slowloris DoS tool that handles connections and sockets in parallel, written in Rust

mgun – A modern tool for load testing HTTP servers, written in Go (golang)

molotov – A simple Python 3.7+ tool to write load tests

NBomber – Modern and flexible load testing framework for Pull and Push scenarios, designed to test any system regardless a protocol (HTTP/WebSockets/AMQP etc) or a semantic model (Pull/Push), written in F# (F Sharp)

Netling – Netling is a load tester client for easy web testing., written in C# (C Sharp)

oha – HTTP load generator, inspired by rakyll/hey with tui animation, written in Rust

pewpew – Flexible HTTP command line stress testing tool for websites and web services, written in Go (golang)

plow – A high-performance HTTP benchmarking tool with real-time web UI and terminal displaying, written in Go (golang)

pounce – event-driven with a similar interface as wrk but with the ambition to potentially achieve lower latency and higher throughout, written in C

rewrk – A more modern http framework benchmarker supporting HTTP/1 and HTTP/2 benchmarks, written in Rust.

reqstress – a benchmarking&stressing tool that can send raw HTTP requests, written in Go (golang).

salvo – A simple HTTP(S) load testing tool like boom, but based on molotov. Python

siege – multithreaded concurrent connections and slow single-user, written in C

slapper – Simple load testing tool with real-time updated histogram of request timings, written in Go (golang)

slow_cooker – A load tester focused on lifecycle issues and long-running tests, service with a predictable load and concurrency level for a long period of time, written in Go (golang)

slowhttptest – Application Layer DoS attack simulator, written in C++

sniper – powerful & high-performance http load tester, written in Go (golang)

thrash – HTTP Micro Benchmarker, written in Go (golang)

tsung – Simulate stress users in order to test the scalability and performance of IP based client/server applications HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP and Jabber/XMPP servers, written in Erlang

vegeta – HTTP load testing tool and library, written in Go (golang)

weighttp – multithreaded, but slower than htstress without keepalive, written in C

welle – ab (Apache Benchmark) like tool, written in Rust

webBenchmark http benchmark tool to ran out your server bandwidth. golang

wrk 3 – multithreaded, but doesn’t offer concurrent connections and a keepalive switch, written in C/Lua

wrk2 1 – constant throughput, correct latency recording variant of wrk, written in C/Lua

  Concurrent connections are enabled with:
    -c, –connections <N>  Connections to keep open
  And keepalive (which is default) can be disabled using:
    -H "Connection: close"
yandex-tank – Load and performance benchmark tool, written in Python/C|C++|Asm (phantom)