I have been a longtime fan of JMeter from the Apache Jakarta project. It is a Java-based tool that allows for Web (HTTP) server testing and in addition can be used to test applications over other protocols such as JDBC, FTP and LDAP. In fact, by extending the tool and creating your own Sampler classes you can test any protocol that can be implemented in Java. By default it will write out comma-separated variable (CSV) files that can easily be imported into a database or otherwise processed. It can also write out information into XML files and these files can provide even more information than CSV.
JMeter has been around for a number of years so the documentation for the package is very good. Also because of the tool's longevity there are a number of other online resources available to help get new users started as well as address more esoteric or specialized issues. For starters there is the User Manual and the FAQ Wiki. Load testing and performance testing can be challenging to get right so be sure to check out some advice on getting started.
This was first published in October 2007