Site logo
Authors
  • avatar Nguyễn Đức Xinh
    Name
    Nguyễn Đức Xinh
    Twitter
Published on
Published on

How to Use Apache JMeter for Web Application Performance and Load Testing

In this comprehensive guide, you'll learn how to use Apache JMeter for performance testing and load testing of web applications. JMeter is a powerful tool for simulating heavy traffic to test the performance and reliability of your web server or application. Follow these steps to get started.

Getting Started with JMeter

To launch JMeter, simply run the following command:

jmeter

Overview of the JMeter Interface

JMeter’s user interface consists of several key components:

  • Test Plan : Contains all test components.
  • Thread Groups : Simulates concurrent users.
  • Samplers : Executes requests (e.g., HTTP, FTP, JDBC).
  • Listeners : Displays and logs test results (e.g., charts, tables).

Creating a Test Plan

To create a new Test Plan , open JMeter and navigate to File → New .

Adding a Thread Group

Follow these steps to add a Thread Group to your test plan:

  1. Right-click on Test PlanAddThreads (Users)Thread Group .
  2. Configure your Thread Group settings:
  • Name : Choose a name (e.g., "Test Group 1").
  • Number of Threads (Users) : Set the number of virtual users (start with 10 and increase as needed).
  • Ramp-up Period : Specifies how long it takes to start all threads.
    • Example: For 100 threads over 100 seconds, JMeter will start 1 user per second until all threads are running.
    • Value of 0 starts all threads at once.
  • Loop Count : Defines how many times the test will repeat (e.g., 1).
  • Same User on Each Iteration : Set to "Yes." Thread Group Configuration

Adding an HTTP Request Sampler

To add an HTTP Request Sampler :

  1. Right-click on Thread GroupAddSamplerHTTP Request .
  2. Configure the HTTP Request :
  • Protocol : Choose the protocol (e.g., HTTP, HTTPS).
  • Server Name or IP : Enter the URL of the application to test (e.g., example.com).
  • Port Number : Enter the port number.
  • HTTP Request Method : Select the HTTP method (e.g., GET, POST).
  • Path : Specify the endpoint (e.g., /api/test). You can also add additional parameters like Body Data , Files Upload , or Parameters .HTTP Request Sampler Configuration

Adding Listeners to View Results

To analyze and display results, add the following Listeners :

  • View Results Tree : Displays detailed information about each request and response.
  • Summary Report : Provides an overview of test results.
  • Aggregate Report : Offers aggregate statistics for all requests.

To add these listeners:

  1. Right-click on Thread GroupAddListenerView Results Tree .
  2. Right-click on Thread GroupAddListenerSummary Report .
  3. Right-click on Thread GroupAddListenerAggregate Report . Listeners Configuration

Running the Test

To start the test:

  1. Click the green Start button on the toolbar. Start Button
  2. Monitor results in the added listeners: View Results , Summary Report , and Aggregate Report .
  3. To rerun the test, right-click on the listener and select Clear to refresh the data.

Viewing Test Results

Here’s an example of the results from a test where Number of Threads = 10 and Ramp-up Period = 0 (simulating 10 users accessing the web server simultaneously): View Results Tree Displays detailed information about each request and response.

  • Load Time (ms) : 557 ms (time taken to complete the request, including connection, request processing, and response).
  • Response Code : 200 (HTTP OK). View Results Tree

Summary Report Provides a summary of the test results.

  • Samples : The number of requests sent.
  • Average Response Time : 558 ms (the average time to complete a request).
  • Min/Max Response Time : 556 ms (min), 560 ms (max).
  • Error (%) : 0% (no failed requests).
  • Throughput : 17.9 requests per second.
  • Standard Deviation : 1.17 (indicates stable performance). Summary Report

Aggregate Report Provides aggregate statistics for all requests. Aggregate Report

Analyzing Results

Use the following metrics to evaluate the performance of your system:

  • Throughput : The number of requests processed per second.
  • Average Response Time : The average time to complete a request.
  • Error (%) : The percentage of failed requests.
  • Latency : The time between sending a request and receiving the first response.

Saving and Sharing Your Test Plan

  • Save your test plan as a .jmx file.
  • Share the .jmx file with team members to replicate the tests.

Conclusion

By following these steps, you can effectively conduct performance testing and load testing for your web application. Experiment with different parameters to assess the scalability and reliability of your system under various loads.