I usually use Apache bench:<p><a href="https://httpd.apache.org/docs/2.4/programs/ab.html" rel="nofollow">https://httpd.apache.org/docs/2.4/programs/ab.html</a>
wrk is pretty awesome for non-distributed testing. It supports lua scripting so it actually can be used to do tests that bust caches or run other custom logic.<p>If you need a more sophisticated product, I've used jmeter before. It is distributed, supports all kinds of protocols, scenarios, etc. If you want to stress test a checkout flow it can be good. It's kind of an ugly mess though.
I've had a lot of success using Bees With Machine Guns<p><a href="https://github.com/newsapps/beeswithmachineguns/" rel="nofollow">https://github.com/newsapps/beeswithmachineguns/</a><p>(Also, the name is awesome)
The only thing about these 2 tools is that they can only ran on Windows. Which can be a barrier for most developers. We run mac ubuntu and redhat everyday. Sometimes it's even hard to get a windows machine inside company.
Locust is really good, allows custom scripts for user behaviour, and works well spun up on multiple cloud instances <a href="http://locust.io/" rel="nofollow">http://locust.io/</a>
I had a need to test random requests, so I built this: <a href="http://loadme.socialtalents.com/" rel="nofollow">http://loadme.socialtalents.com/</a><p>Enter something like:
<a href="http://domain.com/article/$RND(1000,9999)" rel="nofollow">http://domain.com/article/$RND(1000,9999)</a>} to get random urls every time.<p>Please note, that website needs to be public accessible.
I also like Siege. A very simple tool:
<a href="https://www.joedog.org/siege-home/" rel="nofollow">https://www.joedog.org/siege-home/</a>