Skip to content

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

License

Notifications You must be signed in to change notification settings

iandriyanov/load-testing-toolkit

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 

Repository files navigation

Load testing toolkit

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

  • 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
  • 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
  • httping - A ping-like utility for HTTP requests. C
  • httpstat - curl statistics visualization in a way of beauty and clarity. Python
  • xh – Yet another httpie clone in Rust.

Benchmarking & load testing

http/s

  • ali - A load testing tool capable of performing real-time analysis, inspired by vegeta, written in Go.
  • apachebench (ab) - Standalone apachebench (ab), Apache HTTP server 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 witten in Go.
  • beeswithmachineguns - An utility for arming (creating) many bees (micro EC2 instances) to attack (load test) targets (web applications). Python
  • 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
  • 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
  • drill - A HTTP load testing application, written in Rust, inspired by Ansible syntax.
  • f1 - A flexible load testing framework using Go for test scenarios.
  • 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-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
  • gohttpbench - An ab-like benchmark tool run on multi-core cpu. Go
  • goku - HTTP load testing application written in Rust.
  • goose - A Rust load testing tool inspired by locust.
  • 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
  • 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
  • hurl - HTTP server load test and parallel curl utilities. C++
  • iago2 - A load generator, built for engineers. Scala
  • jetty-load-generator - An API to load-test HTTP servers, based on Jetty's HttpClient and Java 11+.
  • kboom - The Kubernetes scale & soak load tester, equivalent of boom, written in Go.
  • legion - A JavaScript-based load testing tool for HTTP servers and other kinds of software.
  • mgun - A modern tool for load testing HTTP servers, written in Go.
  • molotov - Simple Python 3.5+ 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-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.
  • phantomas - PhantomJS-based web performance metrics collector and monitoring tool. JavaScript
  • 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
  • salvo - Like boom, but based on molotov. Python
  • 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.
  • 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 - 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
  • flotilla - Automated message queue orchestration for scaled-up benchmarking. Go
  • massive-attack - Load testing Thrift, made simple. Scala
  • memtier_benchmark - NoSQL Redis and Memcache traffic generation and benchmarking tool. C++
  • mqperf - A benchmark of message queues with data replication and at-least-once delivery guarantees. Scala
  • rabbitmq-perf-test - RabbitMQ performance testing tool. Java
  • rpc-perf - A tool for benchmarking RPC services. Rust
  • rtmp_load - A load testing tool for RTMP servers. C
  • sangrenel - Apache Kafka load testing. Go
  • 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

multi-protocol

  • artillery - A modern load and functional testing toolkit written in Node.js, with test scenario scripting in Javascript.
  • 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.
  • 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
  • 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

storage

  • ioarena - Embedded storage benchmarking tool. C
  • cosbench - A benchmark tool for cloud object storage service. Java
  • go-ycsb - A Go port of Yahoo! Cloud Serving Benchmark (YCSB). Go
  • mongoose - Distributed storage performance testing tool. 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

Stress testing

http/s

  • hulken - Stress testing tool for everything speaking HTTP. JavaScript
  • pewpew - Flexible HTTP command line stress tester for websites and web services. Go

non-http/s

  • dhammer - DHCP stress tester and benchmark tool. Go
  • dnstress - A DNS stress testing tool. C
  • mqtt-stresser - Load testing tool to stress MQTT message broker. Go

DoS/DDoS penetration testing

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

  • finshir - A coroutines-driven Low & Slow traffic sender, written in Rust.
  • 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.
  • 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

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published