AlignMinds Technologies logo

Performance Testing Using JMeter

If you’ve ever done performance testing on a website, you know that there is not really an effective way to manually create enough load on that website.

Getting actual users to execute web application operations over and again is nearly impossible. For that, we need virtual users that can open multiple connections in parallel.

When bulk users attempt to access a website (say commercial websites) at the same time, there are high chances that the website suffers slowness and poor usability. Speed is one of the most important attributes of an application. A slow running application will lose many of its potential users.

Performance testing is done to ensure that the web application performs well under their expected workload.

In today’s competitive world, support for features and functionalities are not the only priority, the speed with which the website responds is also of great concern. The goal of performance testing is not to find bugs, but to eliminate the performance bottlenecks. A web application attributes like its response time, reliability, source usage and scalability do matter a lot. So, in order to test different aspects of a web application, we must test it in different ways. Different performance testing types are as follows:

Different Types of Performance Testing


Load testing is performed to determine how a system behaves when multiple users access it simultaneously.


Stress Testing is done to ensure that the system would not crash in difficult situations.


Endurance testing is done to evaluate how the system behaves when a significant load is applied over a long period of time.


In Spike testing, the web application is tested with extreme increments and decrements in the load.

Volume and scalability

Volume testing describes the ability of an application to handle additional user loads without affecting the performance. Scalability test is done to find the minimum and maximum loads at software, hardware and database levels. This gives the idea that the system is scalable after a load.

There are many robust testing tools available in the market that are capable to handle the various types of performance testing. Few of them have become the industry standard. The recent trend shows that most of the big players in the industry have taken tools like JMeter for all their performance testing needs.


Apache JMeter is a load testing tool that is based on Java. This open source software is used for testing the performance of most of the web-based applications. Performance is an inevitable factor for both mobile and web application as the user strength is very huge.

Advantages of JMeter

  • Open source and built-in Java platform. It is highly extensible and platform-independent.
  • User-friendly- JMeter has got comprehensive GUI and it can easily create a test plan and configure the elements.
  • Support- Basically JMeter is designed for performance testing. But it can also be used for non-functional testing such as stress, distributed and web service testing by creating a test plan.

JMeter provides support for protocols such as FTP, SOAP, JDBC, HTTP

  • Documentation- Because of its robust documentation, user can have a clear idea on every step starting from the installation and configuration of test settings and generating the final report.
  • Recording- JMeter allows the user to record HTTP or HTTPS to create test plan using the recording facility. It uses a proxy server that allows JMeter to watch and record user actions while the user browses the web application with any normal browser. Once the recording is complete, we enter the number of threads, time and Start test. It is advisable to use the Non-GUI mode of JMeter if the user count is large.
  • Reporting- JMeter supports dashboard report generation. These reports help the user to understand test execution results.

Installation of JMeter

Before installing JMeter, it is essential to check that Java is installed in the system. JMeter is a pure Java desktop application. It needs fully compliant JVM 6 or higher to perform its tasks. User can download and install the latest version of the Java SE Development Kit.

The latest version of JMeter available is JMeter 5.1

JMeter can be downloaded from the official website Apache.

From this website, user can download JMeter PGP or zip file under the Binaries section and then unzip the zip file into the directory where JMeter is to be installed. JMeter directory structure includes the following directories and files.

  • Bin: holds JMeter script file to start JMeter
  • Docs: holds JMeter documentation files
  • Extras: related extra files
  • Lib: holds the required Java library for JMeter
  • Lib/ext: includes core jar files for JMeter and its protocols

A test plan is stored in XML format.

Elements of JMeter

Thread Group

Thread group is the collection of threads. Each thread represents 1 user using the application under test. Basically, each thread simulates 1 real user request to the server.


Samplers indicate which type of request is sent to the server. It can be HTTP, FTP, JDBC requests.


Listeners display the result of test execution. It can show the result in different formats such as tree, table, summary report, log files and graphs.

Configuration Elements

Config elements in JMeter are used to configure the sampler requests sent to the server. Commonly used config elements are CSV data set config, HTTP Cookie Manager, Login Config Element HTTP Request Defaults and FTP Request Defaults.


It is used to validate the response of the request that the user sent to the server. Here user can verify the expected result with the actual result. If a user wants to check assertion of a sampler, then assertion must be added as child of that sampler. User can view Assertion result by adding Assertion Listener to the thread group.

Testing in non-GUI method

In non-GUI mode, JMeter can handle more requests per second. Increasing threads after a certain limit will result in JMeter crash in GUI mode. The following command is used to run the test plan in non-GUI mode.

jmeter -n -t -l -e -o

Report Generation

A result log file can be generated in CSV or JTL format after running the load test.

Hope this article gave a real insight into the importance of performance testing in today’s web world and how modern testing tools like JMeter helps you to execute performance testing efficiently.

Happy Performance testing!

Sneha Mohan

Not Sure About the Quality of Your Mobile App? 5 Key Considerations

The success of your app is directly proportional to its quality. If a user’s initial experience is positive, then they’ll want to use the app again. Here are a few major points that if taken care of can help your app stand out from the crowd:

Visual Design and User Interaction

Few key areas that your app must have:

  • Alignment of buttons, labels, text etc.
  • Color combination used in header, footer, various elements, links etc.: Color combination can be used to focus user’s attention to important or actionable elements. Make sure not to highlight too many elements otherwise important elements might lose focus.
  • Spelling: Ensure that your app does not have any spelling mistakes. This is something that can also adversely affect your search ranking. Spelling and grammar play an important role in the evaluation of the quality of a site and its content.
  • Auto Focus on Input: This will speed up things because the user does not have to click on individual input fields to type. This may be implemented in input submission, search forms etc.


Does your app load quickly? Everybody expects a fast web experience. A fast site increases the overall quality of the app and increases user satisfaction.


A major reason that can severely affect the performance of your app is:

  • Size of individual files and images: Huge files and high-resolution images can take double the time to load and can drastically affect the performance of the app. Ensure that your high-resolution images are first compressed using default compressor and re-load these compressed images instead of uncompressed ones.


Ask yourself following questions

  • How many visitors are accessing my app every day?
  • What is the peak number of visits that my app can support?
  • What areas of my app are most accessed by visitors?
  • What is the average response time of most popular pages of my app?
  • How efficiently can my hardware/software support the current volume of visitors?
  • How much infrastructure (hardware/software requirements) is required to handle these volumes?

Slow apps will frustrate the customer tempting them to leave soon.


Is your app built on provided standards? You have to understand who would be using your app. Identify their key tasks and key priorities that they want to accomplish through your site. Find out their goals and focus on how it relates to your business’ goals. Interacting with end users by conducting Surveys, User Testing sessions etc. can help you understand how closely user’s needs have been met by the app.

Also, your app must be built on a platform that is supported by standard skill sets across the organization and in the public domain. It must be flexible enough that is capable of integrating various systems for development and also the common set of functions and features must be sharable by different applications.


Since mobile apps are running outside the security of your internal networks, you always have to make sure that the app is not vulnerable to security threats. One basic thing you can do is to encrypt traffic to the backend—at a minimum, by using Secure Socket Layer (SSL) encryption. However, SSL by itself isn’t enough because of the nature of how mobile devices connect. One solution would be to rely on WebKit to handle SSL.

Susan B. John