Performance Test of Web Application using Apache JMeter

Apache JMeter is one of the best open source tools for Load and Performance testing. It can be widely used for a variety of applications. In this blog, I would like to share how to do the performance and load testing of a web application using JMeter Recording Tests (GUI mode) on Windows Operating System. Before that, I would like to share about Apache JMeter features and installation process.

Apache JMeter Features:

  1. It has the ability to load and performance test many different applications, server, and protocol types such us HTTP, HTTPS, FTP, TCP, Web Services, etc.
  2. It allows to recording scripts, building, and debugging.
  3. It has compatibility with Windows, Linux, Mac OS, etc.
  4. Complete portability and 100% Java purity.

Downloading and Running Apache JMeter:


JMeter is a pure java application. It requires the system that is compatible with java and a fully compliant JVM 7 or higher version. Download and install Java Development Kit (JDK 7 or higher) from here.

Downloading JMeter:

  1. Download the latest version of Apache JMeter x.x from here.
  2. Choose Binaries file and either zip or tag file to download the JMeter

Configure JMeter

Running JMeter:

There are three modes to start JMeter

GUI Mode: It can be used for recording test script and running their script to JMeter itself. Run the Jmeter.bat file for Windows system and JMeter file for Linux. These files are found in the bin folder. After that, JMeter GUI will appear.

Command Line Mode (Non-GUI): For load testing, use this mode to get optimal results.

Server Mode: For distributed testing, use this mode to run JMeter in Sever on the remote node and control the servers from GUI.

Test Script Recording of Web Applications

Steps to Configure JMeter:

#1. Go to apache-jmeter-3.1/bin folder and start the jmeter.bat (Batch) file.

Jmeter configuration

#2. Select “Test plan” on the Tree

JMeter Proxy

#3. Right click on Test Plan and go to Add > Threads (Users) > Thread Group

Once Thread Group is added, configure the JMeter.

Jmeter configuration

Above figure shows JMeter configuration for 10 users, 5 seconds ramp-up and 1 Loop count.

Number of Threads: The number of users going to hit the server. Ramp-Up Period: Time given for each user to hit the server. For Example:

  • 100 users, 50 seconds ramp-up – start with 1 user, each second 2 users added
  • 100 users, 100 seconds ramp-up – start with 1 user, each second 1 user added

Loop count: Execute the same process ‘N’ number of times continuously and increase the loop count value.

#4. Right click on Thread Group and go to: Add > Config Element > HTTP Request Defaults

Configure JMeter

Add the following three things to this window.

Server Name or IP: Server Name or IP is nothing but URL of the website on which you have to perform the load test.

Port Number: Add the default port number 8080 to the Port Number field. To change the number, edit it under Global settings.

Protocol: Here you can mention your required Protocol, http or https. Don’t mention as in Caps.

#5. Right click on Thread Group and go to Add > Logic Controller > Recording Controller

JMeter Proxy

You can watch recorded samples of your actions while you are browsing the web applications. Each Https request will be recorded.

#6. Right click on Thread Group and go to Add > Config Element > HTTP Cookie Manager

To use cookies on your web application, add HTTP Cookie Manager to the Thread group. Test Script Recorder #7. Next, select Workbench. Right click on Workbench and add the Recorder: Add > Non Test Elements > HTPP(S) Test Script Recorder

JMeter Proxy

Check whether the port 8080 is open or busy in your system. If it is busy, you should change to the other port number that is always open in your system. On HTTP(s) Test Script Recorder, click the Add button in “URL Patterns Include.” Enter “*”. It has to record everything.

To restrict any image types and web pages while recording the scripts, we need to enter the pattern in “URL Patterns Exclude” which is not being recorded in JMeter.

Example patterns: .*\.png .*\.html .*\.jpg

#8. Right click on “HTTP(S) Test Script Recorder” and Listener: Add > Listener > View Results in Tree.

JMeter Proxy

We need to add at least one Listener in the workbench so that we could see results of JMeter while recording. In JMeter, there are many listeners to view results. We can generate the report in Graph or Table.

Add Listeners: Right click on “Recording Controller” > Add > Listener > View Results in Table. Right click on “Recording Controller” > Add > Listener > Summary Report. Right click on “Recording Controller” > Add > Listener > Graph Results.

#9. Finally, click the “Start” button in the Script recorder window. Then the JMeter Proxy server will start on your system. When the JMeter starts, ApacheJMeterTemporaryRootCA.crt certificate will be created in the bin directory. Click OK and continue.


Configure JMeter

Note: If you are testing from behind a firewall/proxy server, you may need to run the jmeter.bat file from a command line mode to use following parameters (If you are working under proxy network in office, use this method.)

Go to jmeter/bin directory and enter this:

jmeter.bat -H <Hostname or ip address> -P <Server port> -N <Non proxy hosts> -u <Username for proxy – If required> -a <Password for proxy – if required>

Example: jmeter.bat -H my.proxy.server -P 9090  -u username -a password -N localhost

Configure Browser to use the JMeter Proxy:

We will use Firefox to test the application. For this, we need to do the following proxy setup in the browser.

Steps to Configure Mozilla Firefox with JMeter Proxy:

  1. Open the browser. At that time, don’t close the JMeter window.
  2. Click Menu button from the Navigation bar.
  3. Choose “Options” menu.
  4. Click “Advanced” tab on the left and then select “Network” tab.
  5. Click on “Settings” button in the Connection section.
  6. Choose “Manual Proxy Configuration.”
  7. Type HTTP Proxy as localhost or enter IP Address of your system and then set port as 8080 (Check whether this port is free. If not change the port)
  8. Check “Use this proxy server for all protocols” option.
  9. Click “OK” button
  10. Click “OK” button again.

Now your browser is configured with JMeter Proxy server. Refer the below image to configure the Firefox browser.

JMeter Proxy

Now everything is configured and ready to start recording the user actions in JMeter.

Record the Script:

Before starting the recording, ensure that JMeter was started in your system.

  1. Open Firefox browser and type the URL of your application then hit enter.
  2. Do the actions whatever you want to test in the application.
  3. Now go to JMeter and click “Recording Controller” in the Thread Group. Here you can see the script for whatever actions you did in the browser.

X Configure JMeter

          4. Once you are done with the actions in the browser, click on “Stop” button of the HTTP(S) Test Script Recorder window in JMeter.

Run the Script:

We are ready to run the recorded script. Save the test plan. Run the Test Plan:  Press Ctrl + R (or) Click “Start” button.

While running the script, at the top right corner, a green color square box will display. Once it is completed, the box will change to Grey.

 JMeter Proxy

View Results:

Click on “View Results” in Tree under the Recording Controller.


Click on View Results in Table.

Configure JMeter

Click on Aggregate Graph > Graph

JMeter Proxy

Click on Summary Report.

Configuring JMeter

In JMeter, we have to save recorded scripts in different formats like JMX, CSV, etc. We can upload the recorded script files to third party online load testing tools and get detailed and optimal results from there.

Online tools for load testing:

  1. Blaze meter  ->
  2. Redline13  ->
About Uday Kiran

Uday Kiran is an Senior software engineer at Vmoksha Technologies. He is passionate about exploring new automation technologies for cloud,mobile and web application . He loves reading novels, traveling, and trekking. He has done Master's at Andhra University.

18 comments on “Performance Test of Web Application using Apache JMeter

  1. Ritesh Singh

    Hi Alagappa,
    I need your help to fix below issue in JMeter:
    I have recorded a web application (Angular 7) in JMeter as well as VSTS.
    I am logging in using Win Auth and doing some transaction like navigation, button click, Update field etc.
    VSTS script working very fine but JMeter script showing 401 Unauthorized issue.
    I have explored a lot but no solution of above problem.
    Please cjeck if you can help me to find out the issue.

  2. Online Software Testing Course

    I am a regular visitor to your blog and I found your post full of new information which help us . The blog you have written on Performance Test of Web Application using Apache J Meter is great. Keep writing..!!

  3. kamini Prajapati

    I have done load testing for My website using apache jmeter.
    But i can’t understand Listener results and how to know that which thing is good and bad through results from Listener results.
    how to know from results that website load is Proper??

  4. simha

    Yous is an exams based application. In this in need to test the load and performance of our application as:
    how fast the exam paper is been loaded when we increase the load
    And how the Application is performing while increasing the load.

    plsss help me

  5. Sandeep

    I want to do testing on Qlik sense reports by jmeter would it be helpfull or not please suggest me and how I can use this tool

  6. sateesh

    Your article is very helpful. Great work. good and thank you..!

  7. subbu

    Hi ,

    I need to do benchmark testing for eCommerce website. i have few questions on this.

    How many users we need to run initially,is it concurrent users? or normal users?
    Ramp up time
    duration of test
    How many scenarios we need run for bench mark testing

  8. software testing

    Great post! your article would help me to understand the concept clearly.Thanks for sharing the article regarding Performance Test of Web Application using Apache J Meter. keep it up!

  9. siddu

    Hi sir i want to test our web application performance its like campaign project its works on server i am facing problem that is whatever action i am performing that is only storing in local server it should pull to our main server how i can do this action by jmeter please help….advance thank you

  10. Chetan

    Thank you Alagappan Narayanan

    Its really useful and clear information about Apache JMeter.

  11. windows 10 audio crackling

    The key store must have the proper way of the information which is going to help the user to perform the test of the web application while using the apache jmeter for that you have to be alert or but centred while working on it.

  12. Chris

    Hi Alagappan – thanks for the shoutout for RedLine13. I just thought that you’d like to know that we continue to get even more referrals from this blog post than we used to. Chris

  13. Ramakrishnan Ramar

    After did all thing struck with The proxy server is refusing connections. Even I enable manual proxy configuration. After that also am getting the same error. Help to fix this problem. Advance thanks.

  14. Irfan

    You explained the use of Apache JMeter in web application testing very nicely..Really impressed!! Keep posting..Thank you..

  15. Bhavanisankar M

    Your article is very excellent and very helpful. Great work.
    Need one help regarding SSL Certificates.
    Currently i am trying to Login into one of the secured Https web sites using JMeter Tool, but unfortunately i am not able to Logged into the application due to Client Side certificates. I have downloaded those certificates and converted into “.jks” but still throwing one error – Problem loading jks: No Key(s) found

    Can you please assist me in resolving this issue since i don’t know where to go from here.


    1. Alagappan

      Hi Bhavanisankar M

      Thank you for appreciate and feedback!
      Sure i will help you.
      I’m not familiar about to use a client side certificate on jmeter load test, but getting below information from internet when research your issue.

      “The key store must have at the least one x509 certificate and private key.”

      You may get the “NO key(s) found” problem due to this. You can check your created key store certificate, which has a private key.
      Ensure to check your browser should have a valid ‘ApacheJmeterTemporaryRootCA.crt’ file.
      If you need any help let me know.

  16. kavita

    excellent article.
    very helpfull

  17. Ram Lakshmanan

    Very good step-by-step introductory article for Apache JMeter.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>