Apache JMeter segregated all the components into following groups based on their functionality:
Test Plan
: Starting point for scripting. JMeter saves the Test Plan in .jmx format. You add components to the Test Plan by Right Click on the Test Pand and navigating to the component you want to add.Workbench
: Is a temporary place to start scripting. Along with all the components available in Test Plan, you get HTTP(s) Test Script Recorder
in order to record
the browser actions. Scripts can be saved in the Workbench provided you check the "Save Workbench" checkbox, otherwise they are no.Threads (Users)
: you can define a number of (virtual) users to run, ramp-up time and loop count. you can also define on Test Plan whether Thread Groups need to run in sequential or parallel in the case of multiple Thread Groups. some examples are Thread Group, setUp Thread Group, and tearDown Thread Group
Logic Controller
: Allows you define the flow of execution and grouping of the samplers. one of the useful examples is Transaction Controller, where you combine all the samplers of Login page (all resources including images, .css, and .js files) so that combined response time can be retrieved.Sampler
: Sampler is the core of the JMeter. It gives components to simulate requests of various protocols such as HTTP, JDBC, FTP, SMTP etc. for example, HTTP sampler allows you simulate an HTTP packet (of GET, POST or any supported methods). Main stream protocols are supported, for others you can use Free or Commercial plugins.Config Element
: Configuration elements can be used to set up defaults and variables for later use by samplers. Note that these elements are usually processed at the start of the scope in which they are found, i.e. before any samplers in the same scope. CSV Dataset Config
allows you to provide test data like usernames, passwords of Login scenario from a file
. User Defined variables
config element allows you define variables which can be used across the Test Plan but where each Thread has its own copy.Timer
: By default, a JMeter thread executes samplers in sequence without pausing. Components presented here provide the functionality to introduce User Think Time
in various forms among samplers. some examples are Constant Timer, Constant Throughput Timer.
Pre Processors
: allow you to perform operations/actions before sampler gets executed. JSR223 Pre Processor
with Apache Groovy (similar to java coding style) allows you to make changes to the sampler before sending it.Post Processors
: allow you perform operations/actions after sampler get executed. some useful examples are retrieving dynamic value such as Session ID, using Regular Expression Extractor
post processor for any type of text, CSS/JQuery Extractor
for HTML, JSON Extractor
for JSON, XPath Extractor
for XML.Assertions
: As the name suggests, you can assert the response of samplers in different ways like searching for some text, the size of the response, and duration to receive the response etc. For example, you can use Response Assertion
to search for some text in the response. If Assertion fails, JMeter marks the sampler, to which Assertion is applied, as Failure.View Results Tree
, you can see the samplers request/response and whether they marked as PASS (green colour)/FAIL (red colour) by JMeter. using Aggregate Report, you can save the test results in CSV format. Important note is that, you use listeners either before the test run (for test script debug) or after the test run (to view results in graphs or summary) but not during the run. we must remove the listeners during the test as it consume a lot of system resources. So, we run the test in non-GUI mode and save the results using -l
option in .csv/.jtl
formats. Post the test, you can load this saved files into any of the listeners in the JMeter to view graphs/summary.Following is the general syntax (you add any component on need basis
):
Test Plan
Thread Group
Config Element
Logic Controller
Pre Processor
Sampler
Timer
Post Processor
Assertion
Listener
References: