Create a gist now

Instantly share code, notes, and snippets.

Embed
HTTP(S) Benchmark Tools / Toolkit for testing/debugging HTTP(S) and restAPI (RESTful)

Moved to git-repository: https://github.com/denji/awesome-http-benchmark

Tools

Located in alphabetical order (not prefer)

  • ab – slow and single threaded, written in C

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

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

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

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

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

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

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

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

  • gohttpbenchab-like benchmark tool run on multi-core cpu, write in Go (golang)

  • 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

  • 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

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

  • pounce – evented, but results fluctuate, it's sometimes faster than htstress, written in C

  • siege – slow and single threaded, written in C

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

  • sniper – powerful & high-performance http load tester, 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

  • wrk – multithreaded~~, but doesn't offer concurrent connections and a keepalive switch~~, written in C/Lua

  • wrk2 – 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)

Toolkit for testing/debugging HTTP(S) and restAPI (RESTful)

  • bat – Go implement CLI, cURL-like tool for humans, written in Go (golang)
  • curl – Powerful features command-line tool for transferring data specified with URL syntax, written in C
  • curlconverter – convert curl commands to python, javascript, php
  • httpie – client, user-friendly curl replacement with intuitive UI, JSON support, syntax highlighting, wget-like downloads, extensions, written in Python
  • jq – is a lightweight and flexible command-line JSON processor, written in C

SaaS/PaaS

  • blitz.io – an easy solution to load and performance testing from the Cloud. Test scaliability on websites, mobile, web apps and REST APIs.
  • BlazeMeter – offers a cross-enterprise test automation framework for the entire technical team (developers, devops, ops and QA) throughout the product development lifecycle. Run continuous or ‘on demand’ testing for APIs, mobile apps and websites. Run from the cloud, on-premise or as a hybrid solution. Use with JMeter & Selenium WebDriver & integrate with your existing CI, CD & APM tools.
  • NewRelic – software analytics tool suite used by developers, ops, and software companies to understand how your applications are performing in development and production
  • NGINX Amplify – Visually identify performance bottlenecks, overloaded servers, or potential DDoS attacks. Improve and optimize NGINX performance with intelligent advice and recommendations. Get alerts when something is wrong with the delivery of your application. Plan capacity and performance for web applications. Keep track of systems running NGINX 1

Links

@RnbWd

This comment has been minimized.

Show comment
Hide comment
@RnbWd

RnbWd Apr 18, 2015

vegeta is pretty cool

RnbWd commented Apr 18, 2015

vegeta is pretty cool

@Vanuan

This comment has been minimized.

Show comment
Hide comment

Vanuan commented Feb 11, 2016

http://newrelic.com/ is quite good too

@gstrauss

This comment has been minimized.

Show comment
Hide comment
@gstrauss

gstrauss Feb 29, 2016

A fork of weighttp can be found at https://github.com/gstrauss/weighttp/tree/rewrite. This branch is at least as fast as pounce and htstress for the single-threaded, no-keep-alive case, and can be must faster when multiple threads, keep-alive and HTTP pipelining are enabled.

A fork of weighttp can be found at https://github.com/gstrauss/weighttp/tree/rewrite. This branch is at least as fast as pounce and htstress for the single-threaded, no-keep-alive case, and can be must faster when multiple threads, keep-alive and HTTP pipelining are enabled.

@hho

This comment has been minimized.

Show comment
Hide comment
@hho

hho Jun 8, 2016

Gatling is written in Scala

hho commented Jun 8, 2016

Gatling is written in Scala

@melnikaite

This comment has been minimized.

Show comment
Hide comment

melnikaite commented Aug 11, 2016

@msaldivar1

This comment has been minimized.

Show comment
Hide comment
@denji

This comment has been minimized.

Show comment
Hide comment
@denji

denji Sep 3, 2016

@msaldivar1 It went beyond consideration of the HTTP benchmark/tools (browser based analyzers), but you can find here https://github.com/davidsonfellipe/awesome-wpo#analyzers

Owner

denji commented Sep 3, 2016

@msaldivar1 It went beyond consideration of the HTTP benchmark/tools (browser based analyzers), but you can find here https://github.com/davidsonfellipe/awesome-wpo#analyzers

@origliante

This comment has been minimized.

Show comment
Hide comment
@origliante

origliante May 15, 2017

What do you think about locust.io ?

What do you think about locust.io ?

@vladfr

This comment has been minimized.

Show comment
Hide comment
@vladfr

vladfr Feb 14, 2018

+1 for locust.io

vladfr commented Feb 14, 2018

+1 for locust.io

@kirkins

This comment has been minimized.

Show comment
Hide comment
@kirkins

kirkins Feb 26, 2018

@Vanuan hey I remember you, you made the Ukrainian postal lookup for DuckDuckGo.

Here is another tool that might be good for the list https://github.com/tsenart/vegeta

(My mistake, already listed)

kirkins commented Feb 26, 2018

@Vanuan hey I remember you, you made the Ukrainian postal lookup for DuckDuckGo.

Here is another tool that might be good for the list https://github.com/tsenart/vegeta

(My mistake, already listed)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment