I have used Locust heavily in the past few month for loadtesting various apps and APIs. I've tried a couple different alternatives before settling with it, including ab and Vegeta.<p>Having the power of Python for scripting my loadtest was probably what sealed the deal for me. It allowed me to create a very powerful/reusable loadtesting framework that I can easily adapt very quickly to any app. Python scripting also allowed me to add features not build in to Locust's core itself like additional logging or metrics reporting and reading API endpoints from file/Redis/...<p>Also, being able to completely test all endpoints of an app at once is really useful. Most of the time, what I really want to know is can the whole backend handle the full traffic I'm expecting. Having clustering built-in helped a lot here. I was able to scale the loadtest to several thousands of RPS by just adding a couple more slaves...<p>The only feature I would like to see added is built-in Vegeta style graphs of latency/RPS over time. By default, Locust only gives you real time stat of the last second during the load test and a final average results in csv files. Combining metrics reporting with a graphing engine like Graphite can fix that though.<p>I highly recommend.
I've used locust before - had a good experience. The benefit here is that you can more easily script and simulate "real"ish looking traffic as opposed to hitting the same 20 random URLs - hopefully that'll give you a better idea of your projected real world performance than running ab on one URL that's cached after the first hit anyway.
Here's a list of tools and services for HTTP load testing and benchmarking. I added Locust to the list. Let me know if the list is missing anything important.<p><a href="https://github.com/simple10/guides/blob/master/load_testing.md" rel="nofollow">https://github.com/simple10/guides/blob/master/load_testing....</a>
I've compared using Locust to Gatling and the only downside is that Locust wasn't able to reach the same RPS I was getting with Gatling. It's a shame because Locust is much nicer to work with in comparison.