4.26 out of 5
30 reviews on Udemy

Learning JMeter 5.0

Run tests, create reports, and analyze your app's performance with JMeter. Take remedial action to improve its perform
Packt Publishing
124 students enrolled
English [Auto-generated]
This course is aimed at QA engineers, test managers, and software developers who want to performance-test and improve the quality of their software.

Test your software’s performance easily with JMeter! Load-test, monitor performance in real-time, create reports, and more. Apache JMeter offers a powerful and extendable testing solution for your applications. With this course, you will use JMeter to test both the performance and functionality of any required online asset—web services, databases, FTP, or web servers—using a single tool.

You’ll even learn to test applications that run in the cloud. Distributed load testing has historically been an expensive and painful process when comes to very high workloads with an enormous number of users using multiple systems. JMeter to the rescue! Firstly, JMeter is an open-source tool and is thus free. Secondly, JMeter is able to send metrics to the database, so you may start any number of JMeter instances and get all results stored in one place- Influxdb and visualized in Grafana. JMeter is made up of components. You will use those components to plan and perform tests, using realistic demo scenarios. You will learn to monitor your app’s performance in real-time and create test reports.

By the end of the course, you will be world-class at using JMeter in the real world.

About the Author

Anton Serputko is a senior performance analyst with experience in testing client-server-based mobile and web applications and developing open-source frameworks for load test execution/analysis/result storage and visualization. He is vastly experienced in load testing framework configurations from scratch to test both the client- (browser) and server-side. He’s conducted load-testing result analysis with root-cause investigations and application profiling. He is an active speaker at QA events and a performance/QA training mentor.

Get Started with JMeter

The Course Overview

This video will give you an overview about the course.                       

Understanding the Importance and Goals of Load Testing

This video covers the importance and objectives of load testing.                         

  • What is performance testing?

  • Performance testing types and approaches

  • The place of performance tests in the software development lifecycle


Installing Java and JMeter 5

This video covers the installation of required components to run JMeter.                         

  • Install or update JRE x64

  • Download and extract JMeter

  • Run the jmeter.bat or .sh file


Plugin Manager, Plugins Installation

This video covers the installation of additional plugins to extend basic JMeter functionality.                         

  • Download and install the JMeter plugin manager

  • Install useful plugins from the available list


JMeter Main Features Overview

This video covers the features of JMeter that make it a powerful tool for doing performance tests.                         

  • Load testing tool with great documentation

  • Elements allow us to test a wide range of technologies

  • Results monitoring using 3-d open source tools


Creating a Demo Scenario with JMeter

In this video, you’ll see a demo of real life scenario creation.                         

  • Create a smoke test for a real application

  • Parameterize the scenario

  • Run the test


Monitoring Results from Demo Scenarios with Built-in Features and in Grafana

This video covers the monitoring of results using built-in listeners and with 3-d party tools like Grafana.                         

  • Usage of listeners

  • Demo of the Grafana monitoring dashboard


Components of a JMeter Test Plan

Thread Groups, Samplers, and Controllers

This video covers the main elements used to create the core of your scenario.                         

  • Thread group handle load model of the scenario

  • Samplers: elements that execute requests or do actions

  • Controllers help to create the logic of your scenario


Assertions and Listeners

In this video, you’ll cover the elements to view sample results in GUI, get statistics, and do assertions on results.                         

  • Listener gives all data from sample results

  • Use assertions to check some conditions in request/response


Pre and Post-Processors

Do some operations before/after sample is executed. For example,  generate some security token, clear data in the database, or get URLs  from the HTML page.                         

  • Get data from the previous response using post-processor

  • Create a regular expression to fetch URLs from the response

  • Use fetched URLs in following requests


Config Elements, Cookie Manager, and Header Manager

Elements to configure a JMeter scenario. Also, they allow JMeter  to work with cookies, headers, and cache as a real browser does.                         

  • Emulate the browser behavior working with cache, cookies

  • Handle request headers


User-Defined Variables

Elements used to parameterize a scenario with different variables.                         

  • Variables in JMeter

  • How to create a variable

  • Variable usage


Test Plan Creation

Setting Up the Recording Proxy in Firefox

In this video, you’ll see how to set up Firefox to start recording requests sent by your web application.                         

  • Add recorder and recording controller to the scenario

  • Set up proxy settings in FF settings

  • Add a root CA certificate to FF trusted authorities


Recording User Actions for Your Scenario

This video covers recording requests for user actions.                         

  • Record requests to the recording controller

  • Exclude or remove 3-d party and requests for static resources

  • Add requests to Thread Group and run the test


Make Your Test Structured and Readable

To avoid mess in the results, use transaction controllers for each user action you record.                         

  • Create a Transaction Controller for your action

  • Place the recorded samplers in it

  • Use TC for all user actions


Scenario Parameterization – Use Data from Previous Requests

Parameterize requests with regular expression extractor to open new categories and products.                         

  • Add a regular expression post processor to HTTP request

  • Create a regular expression to fetch a random URL from HTML

  • Use the fetched URL in next requests instead of a hardcoded one


Read Test Data from a CSV File

In this video, you’ll get user credentials from a file to log in users in the test.                         

  • Create a .csv file with user credentials

  • Add a CSV dataset config element to read from the file

  • Use credentials in the login request


Use JMeter Functions for Data Generation

In this video, you’ll generate data to parameterize requests with JMeter functions.                         

  • Use function helper to find the appropriate function


Making the Scenario More Sophisticated – Add Logic Controllers

In this video, you’ll add more complex logic to your scenarios with logic controllers.                         

  • Choose a logic controller that emulates the desired logic

  • Place elements in the logic controller


Performance Tests Execution with JMeter

Designing and Debugging of a Test Plan

In this video, you’ll learn how to debug your scenario and make it closer to your real users with pauses.                         

  • Use debug post-processor or debug sampler

  • Use flow test action sampler to make pauses between actions


Using the Right Load Model for Your Needs

Which load to generate? How to choose the right approach?                         

  • Start with capacity test to find the max load that the service can handle

  • Pay attention to comfort and degradation zones

  • Conduct tests with different load models based on capacity


JMeter Tuning

How to set up JVM to generate a big load and where can we configure JMeter properties?                         

  • Create a set env script 

  • Include a set env variable along with a specified heap size for JVM 

  • Use .properties files to configure JMeter parameters


Non-GUI Execution Mode – Passing Properties from a Command Line

Use the JMeter GUI only for scripts development and debugging. Run load tests only in non- GUI mode.                         

  • Run JMeter script from the terminal

  • Additional script parameters could be passed with -J while starting a test


Use Properties in Scenario

To be able to parameterize a scenario from the command line, we can pass parameters as JMeter properties using the -J argument.                         

  • Pass some parameters while starting JMeter with the -J argument

  • Access a JMeter property with ${__P(prop_name,default_value)}

  • Try changing the load model from the terminal


Save Test Results and Generate an HTML Report after Test

The best approach to get pretty test results without much effort is to generate an HTML report after the test.                         

  • Run the test in non-GUI mode with additional -l -e -o arguments to generate the HTML report

  • The output folder and results file must be empty or it does not exist on the filesystem

  • Open index.html from the output folder


Monitor Server-Side Metrics

It is very important to monitor server-side resource usage while running your test to get the full picture of the performance.                         

  • JMeter allows you to get server-side metrics with PerfMon metrics collector listener

  • Run the server agent on each server you want to monitor

  • Add connections in the PerfMon listener


Real-Time Monitoring of Application/ServerSide with InfluxDB, Grafana & Telegraf

Another approach for monitoring the app side and server side is to  get real-time statistics saved to the database and display metrics in  visualization tools.                         

  • Install Grafana, Telegraf, and InfluxDB

  • Add a backend listener to the JMeter scenario

  • Create a basic dashboard in Grafana and run the test


Results Analysis and Root Cause Investigation

Test Results Analysis and Common Metrics

Get the right metrics is important when running load tests.                         

  • Collect app-side metrics

  • Collect server-side metrics

  • Use built-in listeners or some third party services to display test metrics


Framework Demo

An easy-to-use solution to run, analyze, and store test data using InfluxDB, Jenkins, Grafana, Telegraf, and others.                         

  • Install Docker and clone the Git repository

  • Execute the docker-compose up command

  • Add a few listeners from the demo scenario to your scenario


Root Causes Investigation

One of the hardest parts in performance testing is to find the root cause of errors or poor performance.                         

  • Isolate the place of problem. Maybe, your script has some issues.

  • Monitor all the metrics that you have. Pay attention to the server side.

  • Work with your team to allocate the root cause.


Test Report Preparation

After all tests are done, it is time to prepare reports.                         

  • Write a short summary for business people to say that the performance is ‘ok’

  • Add some detailed metrics and info for yourself and technical people

  • Never forget to mention all findings during investigation and testing


You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
4.3 out of 5
30 Ratings

Detailed Rating

Stars 5
Stars 4
Stars 3
Stars 2
Stars 1
30-Day Money-Back Guarantee


4 hours on-demand video
Full lifetime access
Access on mobile and TV
Certificate of Completion