JMeter is a tool for testing the performance of web resources. The product is completely open source. It has some user documentation, which the average user may find helpful. For the more advanced developer, JMeter provides an extensibility tutorial on writing one’s own plug-ins. It is written 100% in java, making it extremely portable from system to system, with bat and sh scripts provided. For a full description of JMeter, please visit their site.
Capabilities:
Test Recording HTTP (no executable javascript) HTTPS (simulated) FTP LDAP SOAP JMS POP3 JAVA JDBC JNDI LDAP TCP
Extendable
Testing Modes:
Functional Load
Monitoring
User GUI:
The user interface is an optional component. Test plans can be written and run directly from the command line using an XML file. The interface is rather simple.
Logic structure is provided on the left. The various components are samplers, logic controllers, assertions, request configuration, timers, pre/post processors, and reports. Additionally, an advanced developer can write their own components/plug-ins. The components do not immediately lend themselves as easy to use, but the tutorial will introduce the user to the basic functionality quickly. Once a user is familiar with basic functional parameters, a script can be easily written given a little time.
Distributed Load Testing:
In the User GUI or the XML test script, the distributed test nodes must be specified by IP. Additionally, the distributed testing tutorial requires that no firewalls exist between the nodes and master systems and that all systems exist on the same sub-net. Each one of the nodes must have a copy of the node binary and must be running before the test is began. The master system carrying the User GUI or XML test scripts will make RMI calls to each of the nodes. Each node will receive a mirror of the Test Plan. In this manner, each node will perform identical actions on a target Web service. This means more nodes = more load. The setup process is fairly simple, involving installation of the binaries and node start-up. I believe the tutorial suggests a max virtual user per node is approximately 100-300 depending on the system and Test Plan. XML and HTML parsing is very CPU intensive and would restrict the max users per node greatly(4-10x).