Reputation: 7654
I'm searching for a good way to stress test a web application. I'm searching for something like ab with a scriptable interface. Ideally, I want to define some tasks, that simulate different actions on the web app (register an account, log in, search, etc.) and the tool runs a whole bunch of processes that execute these tasks*. As a result, I would like something like "average request time", "slowest request (per URI)", etc.
*: To be independent of the client bandwidth I will run these tests from some EC2 instances so that in a perfect world the tool will already support this - otherwise I will script using boto.
Upvotes: 2
Views: 9280
Reputation: 12873
You can maybe look onto these tools:
palb (Python Apache-Like Benchmark Tool) - HTTP benchmark tool with command line interface resembles ab.
It lacks the advanced features of ab, but it supports multiple URLs (from arguments, files, stdin, and Python code).
Multi-Mechanize - Performance Test Framework in Python
Multi-Mechanize is an open source framework for performance and load testing.
Pylot (Python Load Tester) - Web Performance Tool
Pylot is a free open source tool for testing performance and scalability of web services.
It runs HTTP load tests, which are useful for capacity planning, benchmarking, analysis, and system tuning.
Pylot generates concurrent load (HTTP Requests), verifies server responses, and produces reports with metrics.
Tests suites are executed and monitored from a GUI or shell/console.
( Pylot on GoogleCode )
The Grinder
Default script language is Jython.
Pretty compact how-to guide.
Tsung
Maybe a bit unusual for the first use but really good for stress-testing.
Step-by-step guide.
+1 for locust.io in answer above.
Upvotes: 3
Reputation: 423
If you're familiar with the python requests package, locust is very easy to write load tests in.
I've used it to write all of our perf tests in it.
Upvotes: 11
Reputation: 1893
I would recommend JMeter.
See: http://jmeter.apache.org/
You can setup JMeter as proxy of your browser to record actions like login and then stress test your web application. You can also write scripts to it.
Upvotes: 1