JMeter may actually be a good solution for you, in spite of the pop-ups. JMeter is not actually aware of what is happening -- in essence, it replays a "script" of URL requests. This can be programmed into JMeter using the recorder, or you can also generate Apache-format access logs from your Web server and replay those Apache logs. So you could stage the scenarios you wish to performance test by manually walking through them, and then importing the Apache access logs associated with your test scenario.
Alternatively (and in some tests, preferably) you can replay actual customer access logs. Using JMeter, you can replace the URL requested with a target URL and maintain the rest of the request (or do the replacement in your text editor of choice).
Other available open source load generation tools include Grinder, httperf, OpenSTA and Microsoft's Web Application Stress Tool. Research your tool first, but most load generation tools simply replay http requests, and therefore no tool is better (or worse) for testing J2EE-based Web applications versus .NET or PHP Web applications.
There are commercial alternatives, as well. Some commercial load generation tools are rather expensive, such as LoadRunner. These tools may or may not provide you with the functionality needed to justify their added expense. My experience with commercial tools has led me to standardize on WAPT (Web Application Performance Test tool). This is a relatively inexpensive tool with provides a very robust user experience. It is focused on the client side of performance testing, so it doesn't include any monitoring of the server.
However, it offers great real-time insight into what's going on from a client perspective. The biggest drawback to WAPT is that it does not replay Apache access logs.
Tools all have trade-offs and there is no one "right" tool for every team, project or test. As an engineer, you should take your time to review several tools and pick the one that meets the highest number of your most important requirements.
This was first published in April 2009