Load Testing Toolkit Save

Collection of open-source tools for debugging, benchmarking, load and stress testing your code or services.

Project README

Load Testing Toolkit

“I have enough trouble with useful information, never mind being burdened with what is useless.”
― Erlend Loe, Naïve. Super

Collection of open-source tools for debugging, benchmarking, load and stress testing your code or services.

NOTE: Unfortunately I've found this original awesome collection too late: awesome-http-benchmark.
Feel free to follow and contribute to it instead of this collection, which remains my personal variation and working copy.

In alphabetical order.

Contents

Debugging & API testing

  • baloo - Expressive and versatile end-to-end HTTP API testing made easy in Go.
  • bat - A curl-like tool for humans, inspired by httpie, written in Go.
  • curl - A command line tool and library for transferring data with URL syntax. C
  • curlie - The power of curl, the ease of use of httpie. Go
  • curlx - Supercharge curl with history, collections and more. JavaScript
  • hitt - File based HTTP testing tool focused on speed and simplicity. Rust
  • hopp-cli - An HTTP CLI client for hoppscotch, an alternative to curl, httpie. Go
  • httpcat - A simple utility for constructing raw HTTP requests on the command line. Python
  • httpie - Modern command line HTTP client, user-friendly curl alternative with intuitive UI, JSON support, syntax highlighting, wget-like downloads, extensions, etc. Python
  • httpie-go - httpie-like HTTP client written in Go.
  • httping - A ping-like utility for HTTP requests. C
  • httpstat - curl statistics visualization in a way of beauty and clarity. Python
  • hurl - A command line tool to perform HTTP requests defined in a simple plain text format. Rust
  • wuzz - Interactive command line tool for HTTP inspection. Go
  • xh – Yet another httpie clone in Rust.

Benchmarking & load testing

http/s

  • ab - ApacheBench, single-threaded Apache HTTP server benchmarking tool. C
  • ali - A load testing tool capable of performing real-time analysis, inspired by vegeta, written in Go.
  • apachebench-ab - Standalone version of ab, Apache HTTP server benchmarking tool. C
  • apib - A simple, fast HTTP and API benchmarking tool. C++
  • autocannon - Fast HTTP/1.1 benchmarking tool written in Node.js, greatly inspired by wrk and wrk2, with support for HTTP pipelining and HTTPS.
  • baton - HTTP load testing written in Go.
  • beast - Stress testing for RESTful APIs. Go
  • beeswithmachineguns - An utility for arming (creating) many bees (micro EC2 instances) to attack (load test) targets (web applications). Python
  • benchttp - HTTP server benchmarking tool, implements the most commonly used features of ab. Go
  • bender - An easy-to-use library for creating load testing applications. Go
  • bfg - A modular tool and framework for load generation with HTTP/2 support. Python
  • blast - A simple, protocol agnostic tool for API load testing and batch jobs. Go
  • bombardier - Fast cross-platform HTTP benchmarking tool written in Go.
  • boom - A replacement for ab, written in Python.
  • carrot - Distributed WebSocket and HTTP load testing framework in Go.
  • cassowary - Modern cross-platform HTTP load testing tool written in Go.
  • chaperon - HTTP service performance & load testing framework. Elixir
  • clobbr - A tool to check the speed and resilience of API endpoints against multiple parallel or sequence requests. JavaScript
  • curl-loader - A load generating tool written in C, simulating HTTP/S, FTP/S and TLS/SSL clients each with own IP-address.
  • drill - A HTTP load testing application, written in Rust, inspired by Ansible syntax.
  • encarno - Load generator for HTTP with high throughput and high precision. Go
  • f1 - A flexible load testing framework using Go for test scenarios.
  • fasthttploader - HTTP benchmark (kinda ab) with autoadjustment and charts based on fasthttp library. Go
  • fbender - A load testing command line tool for generic network protocols, originally based on bender library. Go
  • fortio - Load testing library, command line tool, advanced echo server and web UI in Go.
  • freeloader - Super easy load testing framework, with load scenarios in JavaScript.
  • go-meter - A HTTP benchmark tool written in Go.
  • go-wrk - A small heavy duty HTTP/S benchmark tool, similar to wrk, but written in Go.
  • goad - An AWS Lambda powered, highly distributed, load testing tool. Go
  • gobench - HTTP/S load testing and benchmarking tool. Go
  • gocannon - A lightweight HTTP benchmarking tool, intended to measure changes in backend application performance over time. Go
  • gohttpbench - An ab-like benchmark tool run on multi-core cpu. Go
  • goku - HTTP load testing application written in Rust.
  • goku-bench - An HTTP load testing tool built out of a need to drill HTTP services inspired by drill and vegeta. Rust
  • goose - A Rust load testing tool inspired by locust.
  • gopayloader - HTTP/S benchmark/load testing cross-platform tool with optional JWT generation, inspired by bombardier. Go
  • goperf - Go based load tester with a simple intuitive command line syntax.
  • hargo - Go library and command line utility that parses HAR files, can convert to curl format, and serve as a load test driver.
  • hey - HTTP load generator, ab replacement. Go
  • htstress - Fast HTTP benchmarking tool, similar to ab but provides multithreading support. C
  • http_bench - An HTTP(/1/2/3) and WebSockets stress testing tool, with both single and distributed modes. Go
  • httperf - A tool for measuring web server performance. C
  • httpit - A rapid HTTP/S benchmark tool, written in Go.
  • httpress - High performance HTTP server stress & benchmark utility, inspired by weighttp. C
  • hulken - Stress testing tool for everything speaking HTTP. JavaScript
  • hurl - HTTP server load test and parallel curl utilities. C++
  • iago2 - A load generator, built for engineers. Scala
  • jbender - A port of bender to the JVM platform with Quasar lightweight threads (fibers) and channels. Java
  • jetty-load-generator - An API for load testing HTTP servers, based on Jetty's HttpClient and Java 11+.
  • legion - A JavaScript-based load testing tool for HTTP servers and other kinds of software.
  • loadtest - A JavaScript package for load testing with HTTP/S and WebSockets support and API for easy integration.
  • loadtesttoolbox - Lightweight tools for load testing web applications, written in C#.
  • mgun - A modern tool for load testing HTTP servers, written in Go.
  • minigun - Simple Kubernetes native HTTP benchmark tool, written in Go.
  • molotov - Simple Python 3.7+ tool to write load tests.
  • nbomber - Very simple load testing framework for Pull and Push scenarios, written in F# and targeting .NET Core and full .NET Framework.
  • netling - Load testing client for easy web testing. C#
  • node-ab - A command line tool to test the performance of HTTP services. Node.js
  • node-vegeta - Node.js bindings for the vegeta load testing library.
  • oha - HTTP load generator, inspired by hey with tui animation. Rust
  • pandora - A load generator in Go, with built-in HTTP/S and HTTP/2 support and load scenarios in Go.
  • pewpew - Flexible HTTP command line stress tester for websites and web services. Go
  • plow - A high-performance HTTP benchmarking tool with real-time web UI and terminal displaying. Go
  • ponos - Simple yet powerful load generator written in Erlang.
  • pounce – HTTP benchmark utility, written in C.
  • pronk - A small command line application for load testing web servers. Haskell
  • reqstress - A benchmarking & stressing tool that can send raw HTTP requests, written in Go.
  • rewrk - A modern HTTP framework benchmarking utility supporting HTTP/1 and HTTP/2 benchmarks. Rust
  • salvo - Like boom, but based on molotov. Python
  • sb - SuperBenchmarker, ApacheBench (ab) on steroids. C#
  • siege - A HTTP load tester and benchmarking utility. C
  • slapper - Simple load testing tool with real-time updated histogram of request timings. Go
  • slow_cooker - A load tester focused on lifecycle issues and long-running tests. Go
  • sniper - Powerful and high-performance HTTP load tester, written in Go.
  • stress - Simple Node.js tool for stress testing HTTP services.
  • terjang - Scalable HTTP load testing tool built on vegeta. Go
  • thrash - Go HTTP micro benchmarker.
  • vegeta - HTTP load testing tool and library. Go
  • vex - A small PHP app that sends some load to a web application.
  • weighttp - A lightweight and simple webserver benchmarking tool. C
  • welle - An ab-like benchmarking tool written in Rust.
  • wrk - Modern HTTP benchmarking tool. C
  • wrk2 - A constant throughput, correct latency recording variant of wrk. C

non-http/s

  • amoc - A simple framework for running massively parallel XMPP tests in a distributed environment. Erlang
  • bench - A generic latency benchmarking library. Go
  • bomberman - SMTP performance and load testing tool. Go
  • dhammer - DHCP stress tester and benchmark tool. Go
  • massive-attack - Load testing Thrift, made simple. Scala
  • rpc-perf - A tool for benchmarking RPC services. Rust
  • rtmp_load - A load testing tool for RTMP servers. C
  • srs-bench - A HTTP/RTMP/HLS load testing and benchmarking tool. C++
  • ssh-hammer - A SSH load testing tool. Go
  • tcpkali - Fast multi-core TCP and WebSockets load generator. C

dns

  • dnsblast - A DNS performance testing utility. Go
  • dnsblast - A simple and stupid load testing tool for DNS resolvers. C
  • dnsmeter - A tool for testing performance of nameservers and the infrastructure around it. C++
  • dnsperf - DNS performance testing tools. C
  • dnstress - A DNS stress testing tool. C
  • flamethrower - A DNS performance and functional testing utility, originally built as an alternative to dnsperf. C++

grpc

  • ghz - Simple gRPC benchmarking and load testing tool. Go
  • strest-grpc - A load tester for stress testing gRPC intermediaries. Go

kafka

mq

  • emqtt-bench - A simple MQTT v5.0 benchmark tool written in Erlang.
  • flotilla - Automated message queue orchestration for scaled-up benchmarking. Go
  • mqperf - A benchmark of message queues with data replication and at-least-once delivery guarantees. Scala
  • mqtt-benchmark - A simple MQTT (broker) benchmarking tool. Go
  • mqtt-stresser - Load testing tool to stress MQTT message broker. Go
  • mqttloader - Load testing tool for MQTT, capable of benchmark test for both MQTT v5.0 and v3.1.1 brokers. Java
  • mqttwrk - A wrk/wrk2-inspired tool for scale and performance testing MQTT brokers. Rust
  • rabbitmq-perf-test - RabbitMQ performance testing tool. Java

multi-protocol

  • artillery - A modern load and functional testing toolkit written in Node.js, with test scenario scripting in JavaScript.
  • ddosify - High-performance load testing and DDOS attack simulation tool, written in Go.
  • gatling - A load and performance testing framework based on Scala, Akka and Netty.
  • grinder - A distributed load testing framework written in Java, with test scenario scripting in Jython and Clojure.
  • jagger - An open-source framework for Continuous Performance Testing written in Java.
  • jmeter - A Java tool designed to load test functional behavior and measure performance of a variety of services, with a focus on web applications.
  • k6 - A modern load testing tool, using Go and JavaScript.
  • locust - Scalable distributed load testing tool written in Python.
  • multi-mechanize - Performance and load testing framework written in Python.
  • mzbench - Expressive, scalable load testing tool, with multiple protocols support. Erlang
  • ngrinder - Enterprise level performance testing solution based on The Grinder. Java
  • predator - A distributed open-source platform for load testing APIs using custom version of artillery as load testing engine. Node.js
  • tank - A cloud native load testing platform. Java
  • tsung - A multi-protocol distributed load testing tool, developed in Erlang.
  • yandex-tank - An extendable load testing tool which is especially good as a part of an automated load testing suite. Python, C

nosql

  • memtier_benchmark - A high-throughput benchmarking tool for Redis & Memcached. C++
  • redisbench - Redis & Redis cluster benchmarking tool. Go

storage

data store

  • go-ycsb - A Go port of Yahoo! Cloud Serving Benchmark (YCSB). Go
  • ndbench - Netflix Data Store Benchmark, a pluggable cloud-enabled benchmarking tool that can be used across any data store system. Java
  • ycsb - Yahoo! Cloud Serving Benchmark (YCSB), a framework and common set of workloads for evaluating the performance of different "key-value" and "cloud" serving stores. Java

io

  • diskspd - A storage performance testing tool from the Windows, Windows Server and Cloud Server Infrastructure engineering teams at Microsoft. C++
  • fio - Flexible I/O tester. C
  • ioarena - Embedded storage benchmarking tool. C

object storage

  • cosbench - A benchmark tool for cloud object storage service. Java
  • gosbench - Distributed S3 performance benchmark tool with Prometheus exporter, Go reimplementation of cosbench.
  • mongoose - Distributed storage performance testing tool. Java
  • os-benchmark - Handy tool for object storage performance benchmarking. Python
  • ostorebench - A benchmark tool for distributed object storage systems. Go
  • s3-benchmark - S3 benchmarking tool. Go
  • warp - S3 benchmarking tool. Go

time-series

  • prometheus-benchmark - Benchmark for Prometheus-compatible systems on production-like workload. Go
  • tsbs - Time Series Benchmark Suite, a tool for comparing and evaluating databases for time series data. Go

k8s

  • k8s-bench-suite - Simple scripts to benchmark Kubernetes cluster features. Shell
  • k8s-netperf - Running networking performance tests against Kubernetes. Go
  • k-bench - Workload benchmark for Kubernetes. Go
  • kboom - The Kubernetes scale & soak load tester, equivalent of boom, written in Go.
  • kube-burner - A tool aimed at stressing Kubernetes clusters by creating or deleting a high quantity of objects. Go
  • kubestr - A collection of tools to discover, validate and evaluate Kubernetes storage options. Go
  • perf-tests - Kubernetes-related performance testing tools and benchmarks. Go

graphql

  • easygraphql-load-tester - A Node.js library created to make load testing on GraphQL based on the schema.
  • graphql-bench - A versatile tool for benchmarking and load testing GraphQL services, as a CLI application or via programmatic API. TSQL

blockchain

  • caliper - A blockchain benchmark framework to measure performance of multiple blockchain solutions. JavaScript
  • gohammer - A blockchain test tool designed to get performance metrics of the nodes and operation system by deploying a smart contract and calling smart contract's methods. Go

DoS/DDoS penetration testing

For educational and security/stress testing (as part of development) purposes only.

  • finshir - A coroutines-driven Low & Slow traffic sender, written in Rust.
  • golden-eye - HTTP DoS test tool using HTTP Keep Alive + NoCache as attack vector. Python
  • goloris - Slowloris implementation for nginx DoS written in Go.
  • hulk - Original HULK web server DoS attack tool ported to Go with some additional features.
  • hulk-v3 - Python 3 compatible async HULK script for DDoS attacks.
  • lor-axe - A multi-threaded, low-bandwidth HTTP DoS tool, written in Rust.
  • rip - An HTTP load testing and UDP flood attack tool. Go
  • slowhttptest - A highly configurable application layer DoS attack simulator. C++
  • slowloris - Low bandwidth DoS tool, rewrite in Python.
  • wreckuests - Yet another one hard-hitting tool to run DDoS attacks with HTTP-flood. Python

Traffic replay

  • goreplay - A network monitoring tool which can record live traffic, and use it for shadowing, load testing, monitoring and detailed analysis. Go
  • ripley - HTTP traffic replay tool at multiples of the original rate. Go
  • tcpcopy - A TCP stream replay tool to support real testing of server applications. C

Contribute

Contributions are welcome!
Read the CONTRIBUTING guidelines first.

Open Source Agenda is not affiliated with "Load Testing Toolkit" Project. README Source: aliesbelik/load-testing-toolkit
Stars
146
Open Issues
0
Last Commit
1 month ago
License
MIT

Open Source Agenda Badge

Open Source Agenda Rating