All Projects → aliesbelik → load-testing-toolkit

aliesbelik / load-testing-toolkit

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

Projects that are alternatives of or similar to load-testing-toolkit

Locust
Scalable user load testing tool written in Python
Stars: ✭ 17,763 (+27227.69%)
Mutual labels:  benchmarking, load-testing, performance-testing
mzbench
Distributed Benchmarking
Stars: ✭ 39 (-40%)
Mutual labels:  benchmarking, load-testing, performance-testing
Gatling Dubbo
A gatling plugin for running load tests on Apache Dubbo(https://github.com/apache/incubator-dubbo) and other java ecosystem.
Stars: ✭ 131 (+101.54%)
Mutual labels:  benchmarking, load-testing, performance-testing
awesome-locust
A collection of resources covering different aspects of Locust load testing tool usage.
Stars: ✭ 40 (-38.46%)
Mutual labels:  benchmarking, load-testing, performance-testing
Shadowreader
Serverless load testing for replaying website traffic. Powered by AWS Lambda.
Stars: ✭ 138 (+112.31%)
Mutual labels:  benchmarking, load-testing, performance-testing
k6-action
k6 is now available as a GitHub Action
Stars: ✭ 64 (-1.54%)
Mutual labels:  load-testing, performance-testing
jagtester
Express server load tester with middleware level data reporting
Stars: ✭ 57 (-12.31%)
Mutual labels:  load-testing, stress-testing
ezab
A suite of tools for benchmarking (load testing) web servers and databases
Stars: ✭ 16 (-75.38%)
Mutual labels:  benchmarking, load-testing
benchmark-thrift
An open source application designed to load test Thrift applications
Stars: ✭ 41 (-36.92%)
Mutual labels:  benchmarking, load-testing
Rabbitmq Perf Test
A load testing tool
Stars: ✭ 197 (+203.08%)
Mutual labels:  benchmarking, load-testing
hornet
Hornet is a simple library for stress testing
Stars: ✭ 33 (-49.23%)
Mutual labels:  stress-testing, performance-testing
benchmark-trend
Measure performance trends of Ruby code
Stars: ✭ 60 (-7.69%)
Mutual labels:  benchmarking, performance-testing
Bombardier
Fast cross-platform HTTP benchmarking tool written in Go
Stars: ✭ 2,952 (+4441.54%)
Mutual labels:  benchmarking, load-testing
esperf
ElasticSearch Performance Testing tool
Stars: ✭ 50 (-23.08%)
Mutual labels:  benchmarking, load-testing
Ali
Generate HTTP load and plot the results in real-time
Stars: ✭ 3,055 (+4600%)
Mutual labels:  benchmarking, load-testing
apistress
Very simple stress testing tool for API
Stars: ✭ 22 (-66.15%)
Mutual labels:  load-testing, stress-testing
eat
Json based scenario testing tool(which can have test for functional and non-functional)
Stars: ✭ 41 (-36.92%)
Mutual labels:  load-testing, stress-testing
postman-to-k6
Converts Postman collections to k6 script code
Stars: ✭ 269 (+313.85%)
Mutual labels:  load-testing, performance-testing
ultron
new repository: https://github.com/wosai/ultron
Stars: ✭ 15 (-76.92%)
Mutual labels:  load-testing, performance-testing
k6-example-data-generation
Example repository showing how to utilise k6 and faker to load test using generated data
Stars: ✭ 32 (-50.77%)
Mutual labels:  load-testing, performance-testing

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
  • 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
  • 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.
  • 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
  • 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.
  • 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
  • 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.
  • 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-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
  • 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
  • dnsblast - A DNS performance testing utility. Go
  • dnsperf - DNS performance testing tools. C
  • dnstress - A DNS stress testing tool. C
  • 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
  • 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

grpc

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

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
  • 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

  • cosbench - A benchmark tool for cloud object storage service. Java
  • 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
  • go-ycsb - A Go port of Yahoo! Cloud Serving Benchmark (YCSB). Go
  • ioarena - Embedded storage benchmarking tool. C
  • mongoose - Distributed storage performance testing tool. Java
  • ndbench - Netflix Data Store Benchmark, a pluggable cloud-enabled benchmarking tool that can be used across any data store system. Java
  • tsbs - Time Series Benchmark Suite, a tool for comparing and evaluating databases for time series data. Go
  • 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

k8s

  • 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

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

Contribute

Contributions are welcome!
Read the CONTRIBUTING guidelines first.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].