Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Load / Performance tests (HTTP and Web)

I'm looking for a load test tool, the main features that I need is:

  1. Distribution (very important) - I need to be able to run something like 20,000 - 30,000 request per seconds (and more), so one machine is not enough. It should be able to communicate on Amazon EC2 (jMeter for example, can not do it)
  2. Collecting data - It doesn't matter if it can produce graphs or complex data or not, but I should be able to know what was the Throughput of the client and the server, how many errors occured etc. Since it will run on multiple computers, the data should be collected by the tool itself (again jMeter does it, but it has a lot of problems), I'm trying to avoid from fetching data from different machines and merging it "manually".
  3. Graphs or more complex data are nice to have (for example: http://code.google.com/p/multi-mechanize/), but if the tool doesn't provide it, I should be able to get this data from the logs of the tests.

I didn't find good reviews on load testing tools (and that's why I'm asking here), and currently the main tool that I'm want to check is Grinder, if you've worked with good tools please share :)

I've worked with jMeter, and I've decided to look for a better tool. jMeter is old, it works with old protocols (So I can't work with it distributed on EC2), it slow and hard to work with, and its graphs make it very slow.

BTW, It doesn't have to be free / open source, if it costs up to tens or hundreds of dollars its OK.

Thanks.

like image 892
Standard Toaster Avatar asked Sep 17 '26 17:09

Standard Toaster


1 Answers

Locust is a great load testing tool and it meets all of the OP's requirements.

As far as meeting the OP's requirements, some Locust features:

  • can run in master/slave mode for distributed load generation
  • gives you access to raw and summarized result data in simple/parseable formats
  • integrates nicely with graphite/grafana for your visualization needs

Locust is open source and written in Python... virtual users are also written in Python code. The power and ease of using Python to develop complex workloads is really nice (compare that to JMeter's clunky declarative XML style).

Locust development is hosted on Github and has several active committers.


on the Locust website, the tagline is:

"Define user behaviour with Python code, and swarm your system with millions of simultaneous users."


screenshot of optional web UI:

Screenshot of Locust Web UI


Note: I've worked with all the other tools recommended in other answers, and Locust is far superior

like image 64
Corey Goldberg Avatar answered Sep 20 '26 02:09

Corey Goldberg



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!