k6 - recommended by the fly.io team as the best web perf tester they know of
ab (aka apachebench) - the classic, there seem to be better tools these days though
wrk is a modern HTTP benchmarking tool capable of generating significant load when run on a single multi-core CPU. It combines a multithreaded design with scalable event notification systems such as epoll and kqueue.
wrk2 is wrk modifed to produce a constant throughput load, and accurate latency details to the high 9s (i.e. can produce accurate 99.9999%'ile when run long enough). In addition to wrk's arguments, wrk2 takes a throughput argument (in total requests per second) via either the --rate or -R parameters (default is 1000).
hey is a tiny program that sends some load to a web application.
Vegeta is a versatile HTTP load testing tool built out of a need to drill HTTP services with a constant request rate. It can be used both as a command line utility and a library.
(ed: a go library)
Define user behaviour with Python code, and swarm your system with millions of simultaneous users.
we used this to good success on MCT
Summary of the options as of 2020, by an author of k6 - still a good reasonably fair article
- I like Hey in the "I need a simple command-line tool to hit a single URL with some traffic" use case.
- I like Vegeta in the "I need a more advanced command-line tool to hit some URLs with traffic" use case.
- I like k6 (obviously) in the "automated testing for developers" use case.
- I like Locust in the "I'd really like to write my test cases in Python" use case.
- I like Wrk in the "just swamp the server with tons of requests already!" use case.