Bombardier - fast cross-platform, written in Go. https://github.com/codesenberg/bombardier
WCAT - quite a manual process to craft requests, but great to orchestrate several clients to hammer your server if needed. https://www.iis.net/downloads/community/2007/05/wcat-63-x64
West Wind WebSurge - Excellent tool, Very GUI focused (but has a command-line option) very easy to copy/create requests from fiddler. Approx $900USD site license. https://websurge.west-wind.com/
Netling - Very nice open source project with gui/console. https://github.com/hallatore/Netling
If you need quick and dirty this is THE tool to use. I can think of 1/2 a dozen times where this has literally saved the day.
Besides that, artillery also looks promising https://github.com/shoreditch-ops/artillery
For quick tests we use loadimpact.com
- Gatling: https://gatling.io/ - Great tool. Fast, full-featured, flexible, well documented. Main drawback is that you script it in Scala... UX for automation purposes could be better also.
- Tsung: http://tsung.erlang-projects.org/ - Also great. Very fast, scalable, many features. Main drawback is the XML-based DSL (Domain Specific Language) that is somewhat of a pain to use.
- Vegeta: https://github.com/tsenart/vegeta - Good for simple testing of API end points with a fixed RPS rate. No scripting capability.
- Apachebench: https://httpd.apache.org/docs/2.4/programs/ab.html - Single-threaded but very, very fast so will outperform many tools that can use multiple CPU cores. Best tool around if all you want to do is hit one single, static URL and get results printed on screen. Lacks scripting.
- Jmeter: http://jmeter.apache.org/ - Very fast, tons of features, but painful UX (especially for an automation workflow). Biggest community with the most plugins/extensions/whatnot.
- Siege: https://www.joedog.org/siege-home/ - Moderately fast but doesn't scale. Buggy and will crash regularly. Large measurement error. Inconsistent UI. Only reason to use is that it is an alternative to Apachebench if you want to hit a list of URLs, rather than just a single URL.
- Artillery: https://artillery.io/ - Great UX for automation. However, it lacks scripting capabilities, is slow and single-threaded and introduces a large measurement error.
- Locust: https://locust.io/ - Great scripting capabilities (in pure Python), with a very nice API. However, it is the slowest tool I have seen and introduces the most measurement error of any tool also.
- Wrk: https://github.com/wg/wrk - Fastest tool in the universe. About 25x faster than Locust. 3x faster than Jmeter. Scriptable in Lua. Drawbacks are limited output options/reporting and a scripting API that is callback-based, so painful to use for scripting user scenario flows.
- The Grinder: http://grinder.sourceforge.net/ - Fast, scriptable in Jython (Python dialect) with a nice API. Main drawback is that it is an almost dead open source project - very few updates in recent years.
- If you're a Java-centric shop, take a look at Jmeter or Gatling, or perhaps Siege (all are Java apps) and you'll feel at home. You should probably start with Gatling, because it is more modern than Jmeter, with better UX, and Siege is kind of on its way out.
- If you want to run complex, manual load tests of a web site (e.g. record user interactions and then simulate the same behaviour in a load test) you should look at Gatling or Jmeter primarily. Perhaps Tsung.