JMeter-2: Test Plan and Components


  • Test Plan
  • Test Group
  • Controllers
  • Listeners
  • Timers

Test Plan

Test Plan is the root element JMeter structure and it contains other elements like Threads, Timers, Assertions, Listeners.


Thread Group

Thread Group is used for specifying number of running threads, ramp-up period and loop count. It represents group of users will execute a particular testcase.

thread group

Number of Threads (Users) simulates the number of users or connections to your server application.

Loop Count means how many times to execute the test.

Ramp-up defines how long it will take JMeter to get all threads running. For example , if there are 6 threads and ramp-up period is 60 seconds, then each thread will delay (60/6) 10 seconds. After 60 seconds, all threads will run.


Scheduler check-box means that your test will not be executed until start date.



JMeter has 2 types  controllers Sampler and Logical controllers.

Sampler:  JMeter provides different requests to send them to the server. We can  change and configure all these samplers.

Default sampler  list:


Logical: which help you to customize your request  logic. You can find  latest logical controllers list provided by JMeter.



Let us see results of test in different formats. Lets gather the data and analyze the results of tests.

If you click on “Configure” button


Provides different formats to save results (CSV, XML)

You can change the default format, find the following line in

Listeners  collect data only from elements at their below elements.

By default, the results are stored as XML files, typically with a “.jtl” extension.


Listeners can use lots of memory so they should not be used in real tests. It is better to use them only for debugging.

Keep in mind that there some suggestions on reducing resource usage in JMeter official website.

  • Use non-GUI mode: jmeter -n -t test.jmx -l test.jtl
  • Use as few Listeners as possible; if using the -l flag as above they can all be deleted or disabled.
  • Don’t use “View Results Tree” or “View Results in Table” listeners during the load test, use them only during scripting phase to debug your scripts.
  • Rather than using lots of similar samplers, use the same sampler in a loop, and use variables (CSV Data Set) to vary the sample.
[The Include Controller does not help here, as it adds all the test elements in the file to the test plan.]
  • Don’t use functional mode
  • Use CSV output rather than XML
  • Only save the data that you need
  • Use as few Assertions as possible
  • Use the most performing scripting language (see JSR223 section)  (
  • Timers

    JMeter sends requests without any pause between each request by default. Thus, timers make test scenarios more realistic, they pause every request certain amount time. In below figure you can see that there is a 3000 ms delay between two request.




    Database Operations in JavaFX

    By Onur Baskirt / Apr 1, 2016 / 56 Comments
    Before started this section, please check the first article and learn How to Start JAVAFX! At first, part of JavaFX tutorial series, we created a sample JavaFX project, designed the draft version of the UI and set up an...
    rest assured

    REST API Testing with Rest Assured

    By Onur Baskirt / Mar 8, 2016 / 32 Comments
    Outline In this post, I will explain what is API and API testing, what is the difference between SOAP and REST services, and how to test REST APIs with Rest Assured Library. What is API? API stands for Application Programming...

    How to Write Effective CSS Locators

    By Onur Baskirt / Oct 1, 2017 / 0 Comments
    Hi all, in this tutorial, I will describe you how to write effective CSS locators to interrogate web elements for your automation projects. As a rule of thumb, your interrogation strategy should be in below order: First try to use...

    Selenium-11: Execute JavaScript with JavascriptExecutor

    By Onur Baskirt / Jan 27, 2016 / 15 Comments
    Outline Sometimes we cannot handle some conditions or problems with Webdriver, web controls don't react well against selenium commands. In this kind of situations, we use Javascript. It is useful for custom synchronizations, hide or show the web elements, change...

    Getting Started with JavaFX

    By Onur Baskirt / Mar 25, 2016 / 0 Comments
    When I started to work in my current position, one of my task is to do manual operations for campaign products  every week. After the second week, I thought that I have to automate this task using a GUI based...

    How to Write Smart XPath Locators

    By Onur Baskirt / Sep 24, 2017 / 4 Comments
    Hi all, in this tutorial, I will describe you how to write smart and non-brittle XPath locators. When we write our test scripts, we generally prefer to use id, name, class, etc. these kinds of locators. However, sometimes we could not...

    Selenium-1: Quick Start to Automation with Selenium WebDriver & JAVA & JUnit & Maven & IntelliJ

    By Onur Baskirt / Sep 8, 2015 / 26 Comments
    Outline Selenium Webdriver is the most popular open source web test automation framework across wide range of browsers and platforms. In this tutorial you will learn how to do web test automation with Selenium Webdriver and the related tools. Audience...
    page object model

    Page Object Model with C#

    By Ege Aksoz / Jun 18, 2017 / 8 Comments
    In the previous tutorial, we’ve taken the initial steps and entered the world of automated testing. We also wrote our first automated test. From this point on, since we are not just going to write one test, we need to...

    How to Select a Date From DatePicker Using Selenium

    By Onur Baskirt / Aug 13, 2016 / 6 Comments
    When you need to automate a airway, hotel, or similar websites you need to deal with Datepickers and some times it is a little bit cumbersome to select a specific date on the Datepicker or calendar.  In this post, I...

    Selenium Webdriver Performance testing with Jmeter and Selenium Grid

    By Ozgur Kaya / Aug 9, 2016 / 2 Comments
    In this post, we will complete Selenium Webdriver Performance testing scenario using Jmeter and Selenium Grid. 1- Install Java 7 or later If necessary 2- Download latest Jmeter version 3.0 or higher. 3- Download Jmeter PluginsManager JAR file and...
    By | 2017-01-13T21:33:47+00:00 December 22nd, 2015|Jmeter, Performance Testing|1 Comment

    About the Author:

    Onur Yazir
    Onur YAZIR is a Senior Software Testing & Deployment Engineer 7+ years of experience. He has worked at Huawei, Ericsson, Teknosa as Software Test Engineer. After that, he worked as DevOps Engineer at London-based fintech company EFT Software. Now, he is a DevOps Engineer at Gulf News Dubai Office. You can find detailed information about him on his linked-in page.

    One Comment

    1. BHARAT VARSHNEY March 30, 2017 at 1:52 pm - Reply

      nice explanation!!

    Leave A Comment