Load Testing your Applications with Apache JMeter
by Keld H. Hansen
Preface
JMeter from the Apache
Jakarta project is a tool for load testing client/server applications. There are
many other such tools for load testing on the market, but you will probably find
that the professional ones like WinRunner are expensive to purchase. Thus, the
benefits from using a simple tool like JMeter are:
- It’s free!
- It’s easy to use. It has a simple and intuitive GUI. This encourages you
to use it from the start while you’re developing your application
- It’s open source. You may modify it or add new features--if you have the
time and skills
The drawbacks are
- It’s open source! There’s no guarantee of support or further development.
However, I don’t consider this a real problem with a tool like JMeter, which
easily can be replaced by another tool.
- Getting "correct" response times from JMeter forces you to understand how
to make a realistic client/server setup. If you’re not careful you might end
up measuring some incidental bottleneck, like your own workstation’s capacity.
On the other hand, I guess that you’d have to consider things like this with
any tool!
If you’re interested in load testing or software testing tools in general
then a good place to start is ApTest (try
the "links" link for example).
Introduction
In this article we will take a quick look into JMeter’s capabilities in the web
application and web service area, but, let me mention that JMeter can also
handle FTP and JDBC requests. If you need more than this, and you’re a
skilled Java programmer, it’s possible to build and add your own "samplers" to
JMeter.
Our first step will be to give you a quick introduction on how to use JMeter.
Then we’ll put JMeter to work on a couple of applications, where it will be quite
interesting to compare the results. The setup I’ll show includes letting JMeter
create a test script by picking up the communication between a browser and the
web server. Finally I’ll show how to run JMeter remotely, which means that you
split JMeter into a client part and a server part and run them on separate
computers.
I can’t possibly cover all features in JMeter. There is a very nice User’s Manual
in the JMeter download, covering all the tools and features (including a couple more
features that aren’t fully implemented!). This is where I’d recommend digging for more
information if you’re interested.
Introduction
The Applications
JMeter Installation
Enhancing the Test Plan
Recording a Use Case
Measuring Web Services Response Times
The Third Application
Conclusion
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|