Elements of JMeter Test plan


JMeter test plan describes the sequence of steps executed at run time and following are its main elements.

Thread Groups:

The starting point of the test plan is from a thread group and there can be one or more thread groups in a test plan.  The number of threads, number of test iterations and ramp-up time are controlled by the thread group. A sample thread group will look like as follows


There are two types of controller which are sampler and logic controllers.

Sampler:  Sampler makes it possible for specific types of requests to be sent to the server. A user request for a page is simulated by the sampler from the target server. HTTP request, FTP request, JDBC request, JAVA request, SOAP/XML request and RPC request are some of the useful samplers.

An HTTP request sampler control panel will look like this

Logic Controllers: The sequence of processing of samplers in a thread is controlled by Logic controllers and it can also change the sequencing of requests made from any of its child elements.

Simple Controller, loop Controller, Throughput Controller and Module Controller are examples of some of the controllers provided by JMeter.

Following is a screenshot of the control panel of a Loop Controller

Test Fragments

This is a special element used only for code re-use and is executed only when referenced by include controller or module controller


This element allows you to view the results of the samplers, presented in the form of simple text, graphs, tables or trees in certain log files. It gives a visual access to the test case data gathered by the JMeter. Some of the listeners provided by JMeter are Graph results, monitor results, mailer visualizer and so on.


Normally JMeter thread sends requests continurouslt and this element provides a provision to wait between each requests. Constant timer, Synchronising timer and BSF timer are some of the timers provided by JMeter and following is a screenshot of a constant timer.


This element gives you a provision to validate that the application is returning the correct data. Beanshell, Duration and Size Assertions are some of the assertions provided by JMeter.

Following is a screenshot of control panel of Response Assertion

Configuration Elements

These elements let you create variables and defaults used to modify or add requests made by the sampler and are only accessed from inside the branch where it is placed. Examples are counters and HTTP cache manager.

Pre Processor Elements

This element is executed just before the sampler and is used update variables which are not extracted from response text or to modify settings of sample request prior its run. Examples are User Parameters and HTML Link Parser.

Post Processor Elements

This element is executed after a sampler finishes its execution and is mostly used for processing response data.  Examples of this element are Regular Expression Extractor and Xpath Extractor.

Execution order of Test Elements

Test elements are executed in the following order

  • Configuration elements
  • Pre-Processors
  • Timers
  • Sampler
  • Post-Processors (unless there is nothing to display for SampleResult)
  • Assertions (unless there is nothing to display for SampleResult)
  • Listeners (unless there is nothing to display for SampleResult)