Apache JMeter is a free tool written in Java to perform load testing against client/server applications. In this context we will discuss about Load Testing as a whole. As can be understood from the name; Apache Software Foundation has developed this tool with Apache License, which is compatible with GNU GPL or Free Software License. Load Testing is a broader topic and Apache JMeter is one of the tools which we can use for Load Testing. As after publication of this article, in future we will discuss and provide guides on Apache JMeter on varied Cloud Platforms, it will better to discuss about Load Testing in this context.
Apache JMeter and Load Testing : Introduction
Web server benchmarking is the process of estimating a web server performance in order to find if the server can serve sufficiently high workload. The performance is usually measured in terms of :
- Number of requests that can be served per second
- Latency response time in milliseconds for each new connection or request
- Throughput in bytes per second
Understand it – Apache JMeter is also a tool for Web server benchmarking so as ApacheBench. ApacheBench is a simple command line computer program for measuring the performance of web servers. We can run it on our HomeBrew, OS X, iTerm 2 setup, out of the box :
the command is like this, kindly DO NOT RUN it unless you are the webmaster of the website :
ab -n 100 -c 10 https://freehealthfoundation.org
So, ApacheBench is fully different package. ApacheBench will only use one operating system thread regardless of the concurrency level. Load testing is the process of putting demand on a system or device and measuring its response. Load testing is performed to determine a system™s behavior under both normal and anticipated peak load conditions.
Load testing tools analyze the entire OSI protocol stack whereas most regression testing tools focus on GUI performance. Regression testing is a type of software testing that seeks to uncover new software bugs, or regressions, in existing functional and non-functional areas of a system after changes such as enhancements, patches or configuration changes, have been made to them. Load testing is legally important if the application, system or server is under a service level agreement (SLA).
In other words, for example; for Rackspace, you should open a support ticket and politely announce the time and date of such testing attempts, depending on your type of support level, usage, setup, what is limit of testing etc. Actually, we can not try to deliberately induce an event on multi tenant environment which can affect the other users. You must understand what you are doing with any such software.
Apache JMeter and Load Testing : Basics
Apache JMeter allows to specify which parts of the application (such as multi-threaded) to be passed through in order to get concrete results on the response time behavior using compiling a test plan. These are in the easy-to-use interface presented by JMeter. By logical components, listener, Sampler, timer and configuration elements; customized test plans can be created in every detail. JMeter can also act as a proxy for recording a series of test steps that can be used as a basis for test plans. A special feature is that, requests sent using Sampler are not only limited to HTTP and HTTPS, but also includes FTP, SOAP and JDBC.
Because Apache JMeter is 100% Java, it is available on every OS that supports Java 6 or higher. One can check the beautiful plugins :