Sunday, December 13, 2009

Web Application Performance Testing tools

Highlights and lowlights of a few popular performance testing tools:

JMeter
  • Open source, active project
  • Supports HTTPs traffic via HTTPS spoofing (works quite well)
  • Supports various protocols other than HTTP, like JDBC to analyze SQL bottlenecks directly
  • Supports cookie and session management
  • Can be executed in distributed mode from remote host to prevent the host machine from throttling the test
  • Captures screen (if specified) to be used as functional test (capturing screen is not recommended during load/performance tests)

OpenSTA
  • OpenSource, not actively developed or maintained
  • Support for HTTPS is patchy/unreliable at best
  • Good scripting interface, better than JMeter for customization and parametrization
  • Falls apart easily under load even in distributed mode
  • Easy access for DOM objects to be accessed from scripts
  • Monitoring of servers possible

HTTPerf
  • Free, open source
  • Command line tool (not GUI based)
  • Granular support via command line options for inputs, delays, target throughput etc
  • SSL supported

Grinder
  • Very similar to Jmeter; Open source JAVA based record and playback tool
  • Supports HTTP and HTTPS
  • HTTP(S), JDBC, LDAP and more protocols supported

Mercury Load Runner
  • Not inexpensive
  • Method level Diagnostics on application
  • Monitoring of servers during test built in
  • Record and playback via GUI
IXIA and Avalanche
  • Not inexpensive :)
  • Large scale/higher concurrency use, loads that JMeter cannot handle well
  • More granular control over inputs and target throughput and output monitoring