HTTP Load testing with JMeter
The Performance Zone is presented by AppDynamics. Scalability and better performance are constant concerns for the developer and operations manager. Try AppDynamics' fully-featured performance tool for Java, .NET, PHP, & Node.js.
In previous post I wrote that for high availability load balancing with HAProxy and CARP on FreeBSD I used JMeter as a testing tool. In this post I will show some basics and how to use it for HTTP load testing. JMeter is an Java application that can be used to simulate a heavy load on a server to test its strength or to analyze overall performance under different load types. For full set of features please visit official site here.
In this post I will describe how to setup most basic load test plan in JMeter. Basically with load testing you want to answer on two questions:
- Can your application support expected number of users?
- At what load does the application break?
So to get started first you need to add a thread group (users):
Now go to thread group you added and define:
- Number of users
- Ramp-Up period (time between user group will hit the requests)
- Loop count (how many times to run this thread)
Next you need to add sampler (HTTP request) to this group:
Once you added HTTP request sampler you will see a lot of options. At the moment pay attention to those:
- Server Name or IP
When you define this, test is basically ready, but we need some reporting. In JMeter that component we call Listener. So go to test plan and add one listener:
Your results will be shown here with all request and response details. To run test do: Ctrl + R. You can follow status in real time if you go to View Results Tree. When it’s finished you can rerun it by Ctrl + E to clean old results and Ctrl + R to run it again. At the end you will get something like this:
As I said at beginning this is the most basic HTTP load testing plan, JMteter is far away from that and to be able to create more realistic test cases you will need to learn more advanced options that are available. I Highly recommend this tool for any kind of testing. Also the tool can be easily extended through custom plugins.Set of JMeter extensions developed by AtlantBH currently includes:
- OAuth Sampler
- REST Sampler
- JMS Tools (Java Request Sampler)
- JSON to XML Converter
- XML Format Post-processor
- HDFS Operations Sampler
- HBase Scan Sampler
- HBase RowKey Sampler
- Hadoop Job Tracker Sampler
- HBase CRUD Sampler
- JSON utils (JSON Path Assertion, JSON Path Extractor, JSON Formatter)