SlideShare a Scribd company logo
1 of 37
WHAT IS JMETER
Originally developed to test JServ (an Apache project since replaced by
Tomcat)
A GUI desktop application Built in Java; designed to load test functional
behavior and measure performance. It was originally designed for testing
Web Applications but has since expanded to other test functions.
JMeter can also be configured as a monitor, although this is typically
considered an ad-hoc solution in lieu of advanced monitoring solutions.
JMeter is not a browser -
JMeter does not execute the Javascript found in HTML pages. Nor does it
render the HTML pages as a browser does (it's possible to view the
response as HTML etc, but the timings are not included in any samples,
and only one sample in one thread is ever viewed at a time). Jmeter works
at protocol level.
for advanced functional testing you should know JavaScript. Java is needed
only if you are using Java Sampler part of my abilities and if you want to
extend my capabilities.
2
FEATURES OF JMETER
 Can be distributed
 used to test performance both on static and dynamic resources
(Webservices (SOAP/REST), Web dynamic languages - PHP, Java, ASP.NET,
Files, etc. -, Java Objects, Data Bases and Queries, FTP Servers and more).
 Graphical Analysis / Exporting Test Results
 Remote Distributed Execution - If you want to generate load using multiple
test servers. You can run multiple server components of JMeter remotely.
And you can control it by a single JMeter GUI to gather results.
 Highly Extensible-
A. Custom Additions (Write your own samplers / listeners)
B. PlugIns
 Test plans stored in XML and can be version controlled.
3
SUPPORTED PROTOCOLS
 Web - HTTP, HTTPS
 SOAP / REST
 FTP
 Database via JDBC
 LDAP
 Message-oriented middleware (MOM) via JMS
 Mail - SMTP(S), POP3(S) and IMAP(S)
 MongoDB (NoSQL)
 Native commands or shell scripts
 TCP
 Functional test using JUnit and Java applications.
4
INSTALLATION
• Requirements -
Java Version - JMeter requires a fully compliant JVM 6 or higher.
Operating Systems - JMeter is a 100% Java application and should run correctly on any system that has a compliant Java implementation.
• Download the binary -
Go to jmeter website http://jmeter.apache.org/; then Download Releases section. Download the binary compressed file and extract in some folder on your
local directory.
It’s platform independent, so the same download will run on Windows, Linux, Mac.
You need Java, with the JAVA_HOME environment variable set so JMeter can find the Java and keytool binaries. i.e. JAVA_HOME=C:Program
FilesJavajdk1.8.0_20
Uncomment SSL settings in jmeter.properties
5
RUNNING JMETER
Go to bin folder
Run jmeter.sh (for mac)
jmeter.bat (for windows)
jmeter (for Unix)
Some additional scripts in the bin directory –
• jmeter.bat - run JMeter (in GUI mode by default)
• jmeterw.cmd - run JMeter without the windows
shell console (in GUI mode by default)
• jmeter-n.cmd - drop a JMX file on this to run a
non-GUI test
• jmeter-n-r.cmd - drop a JMX file on this to run a
non-GUI test remotely
• jmeter-t.cmd - drop a JMX file on this to load it in
GUI mode
• jmeter-server.bat - start JMeter in server mode
• mirror-server.cmd - runs the JMeter Mirror
Server in non-GUI mode
• shutdown.cmd - Run the Shutdown client to
stop a non-GUI instance gracefully
• stoptest.cmd - Run the Shutdown client to stop
a non-GUI instance abruptly
6
jmeter.bat
launches
the GUI
JMeter's Classpath -
JMeter automatically finds classes from jars in the following directories:
JMETER_HOME/lib - used for utility jars
JMETER_HOME/lib/ext - used for JMeter components and plugins
RUNNING JMETER IN NON-GUI MODE (COMMAND
LINE MODE)
use the following command options:
-n This specifies JMeter is to run in non-gui mode
-t [name of JMX file that contains the Test Plan].
-l [name of JTL file to log sample results to].
-j [name of JMeter run log file].
-r Run the test in the servers specified by the JMeter property "remote_hosts"
-R [list of remote servers] Run the test in the specified remote servers
The script also lets you specify the optional firewall/proxy server information:
-H [proxy server hostname or ip address]
-P [proxy server port]
Example: jmeter -n -t my_test.jmx -l log.jtl -H my.proxy.server -P 8000
7
RUNNING JMETER IN SERVER MODE
For distributed testing, run JMeter in server mode on the remote node(s), and then
control the server(s) from the GUI. You can also use non-GUI mode to run remote
tests. To start the server(s), run jmeter-server[.bat] on each server host.
The script also lets you specify the optional firewall/proxy server information:
-H [proxy server hostname or ip address]
-P [proxy server port]
Example: jmeter-server -H my.proxy.server -P 8000
8
FULL LIST OF COMMAND-LINE OPTIONS
Invoking JMeter as "jmeter -?" will print a list of all the command-
line options. These are shown below.
-h, --help print usage information and exit
-v, --version print the version information and exit
-p, --propfile {argument} the jmeter property file to
use
-q, --addprop {argument} additional property file(s)
-t, --testfile {argument} the jmeter test(.jmx) file to
run
-j, --jmeterlogfile {argument} the jmeter log file
-l, --logfile {argument} the file to log samples to
-n, --nongui run JMeter in nongui mode
-s, --server run the JMeter server
-H, --proxyHost {argument} Set a proxy server for
JMeter to use
-P, --proxyPort {argument} Set proxy server port for
JMeter to use
-u, --username {argument} Set username for proxy
server that JMeter is to use
-a, --password {argument} Set password for proxy
server that JMeter is to use
-J, --jmeterproperty {argument}={value} Define
additional JMeter properties
-G, --globalproperty (argument)[=(value)] Define
Global properties (sent to servers) e.g. -Gport=123
or -Gglobal.properties
-D, --systemproperty {argument}={value} Define
additional System properties
-S, --systemPropertyFile {filename} a property file to
be added as System properties
-L, --loglevel {argument}={value} Define loglevel:
[category=]level
e.g. jorphan=INFO or jmeter.util=DEBUG
-r, --runremote (non-GUI only) Start remote servers
(as defined by the jmeter property remote_hosts)
-R, --remotestart server1,... (non-GUI only) Start
these remote servers (overrides remote_hosts)
-d, --homedir {argument} the jmeter home directory
to use
-X, --remoteexit Exit the remote servers at end of
test (non-GUI)
9
THE GUI – TEST PLAN
10
Test plans are sets of requests against local or remote servers (or clients) configured to run.
A test plan describes a series of steps JMeter will execute when run. A complete test plan will consist of one
or more Thread Groups, logic controllers, sample generating controllers, listeners, timers, assertions,
and configuration elements
Represented as an Ordered Tree.
A test plan must have at least one thread group.
It saves in Java Management Extensions (JMX) format.
This format makes test plan to be open in a text editor and can use the “find and replace” function to
speedily change a CMS name, web server name, or document ID that might appear hundreds of times
throughout the test plan with very little determination.
TEST PLAN VS WORKBENCH
WorkBench simply provides a place to temporarily store test elements while not
in use, for copy/paste purposes, or any other purpose you desire.
When you save your test plan, WorkBench items are not saved with it by default
unless you check "Save Workbench" option. Your WorkBench can be saved
independently, if you like (right-click on WorkBench and choose Save).
Certain (non) test elements are only available on the WorkBench:
• HTTP(S) Test Script Recorder
• HTTP Mirror Server
• Property Display
11
Allow to save the
WorkBench's elements
into the JMX file.
WORKBENCH : NON TEST ELEMENTS : HTTP(S) TEST SCRIPT RECORDER
(WAS: HTTP PROXY SERVER )
Used for recording. Intercept and record your actions while you browse your web application with your normal browser.
Can add Samplers to any controller. JMeter places the recorded samples in the Target Controller you choose. If you choose the
default option "Use Recording Controller", they will be stored in the first Recording Controller found in the test object tree (so
be sure to add a Recording Controller before you start recording).
Create test sample objects and store them directly into your test plan as you go (so you can view samples interactively while you
make them).
You need to set up your browser to use the proxy for all HTTP and HTTPS requests. Enter HTTP Proxy: localhost, Port: 8080 (In
case of port 8080 is being used by any other instance we can enter any other port number like: 90, 4445, 4545 etc.)
Do not use JMeter as the proxy for any other request types - FTP, etc. - as JMeter cannot handle them.
12
Set Port to the same port value which is configured
while setting browser connection settings
Choose Target Controller, where you want the
sample requests to be stored
Click to Start Recording and
then open the browser
Step by Step Recording Guide
TEST ELEMENTS
13
Execution order –
• Configuration elements
• Pre-Processors
• Timers
• Sampler
• Post-Processors (unless
SampleResult is null)
• Assertions (unless
SampleResult is null)
• Listeners (unless
SampleResult is null)
Scoping Rules –
When you create your test plan, you will create an ordered list of
sample request (via Samplers) that represent a set of steps to be
executed. These requests are often organized within controllers
that are also ordered.
Primarily ordered (controllers, samplers) - processed in the order in
which they appear in the tree.
Strictly hierarchical (Listeners, Config Elements, Post-Procesors, Pre-
Processors, Assertions, Timers) - processed according to the
scope in which they are found. An Assertion, for example, is
hierarchical in the test tree. If its parent is a request, then it is
applied to that request. If its parent is a Controller, then it affects
all requests that are descendants of that Controller. Order is
irrelevant for hierarchical elements.
Timers, Assertions, Pre- and Post-Processors are only processed if
there is a sampler to which they apply.
EXECUTION ORDER AND SCOPING EXAMPLE
14
For example, in the following test plan:
Controller
Post-Processor 1
Sampler 1
Sampler 2
Timer 1
Assertion 1
Pre-Processor 1
Timer 2
Post-Processor 2
The order of execution would be:
Pre-Processor 1
Timer 1
Timer 2
Sampler 1
Post-Processor 1
Post-Processor 2
Assertion 1
Pre-Processor 1
Timer 1
Timer 2
Sampler 2
Post-Processor 1
Post-Processor 2
Assertion 1
Thread groups Loop controllers
Determine
 How many users, will
concurrently run the tests
 How long between 2 launch
of the test
 How many times the tests will
be run
Determine in a thread group
 How long between 2 launch
of the same sampler
 How many times the set of
tests will be run.
WORKING WITH TEST ELEMENTS
S A V E E L E M E N T S
Choose the “Save Selection
As…”option. JMeter will
save the selected
element, plus all child
elements beneath it.
Created file cannot be saved
in jmeter by default; you
have to explicitly save
the element.
JMeter Test Elements and
Test plan are stored in
*.JMX format.
L O A D E L E M E N T S
To load the element
from existing file,
then right click on the
selected element and
click on “Merge”
option.
Browse the file from the
existing saved
Element.
15
TEST ELEMENTS : THREAD GROUP
• The first step you want to do with every JMeter Test Plan is to add a Thread Group element.
• Represents user group
• Each thread will execute the test plan
• A thread group is basically a combination of different test plan elements. Thread group elements are the
beginning points of any test plan.
• All controllers and samplers must be under a thread group. Other elements, e.g. Listeners, may be
placed directly under the test plan, in which case they will apply to all the thread groups.
• Ramp-up needs to be long enough to avoid too large a work-load at the start of a test, and short enough
that the last threads start running before the first ones finish
• Scheduler - extra fields in which you can enter the start and end times of the run. When the test is
started, JMeter will wait if necessary until the start-time has been reached. At the end of each cycle,
JMeter checks if the end-time has been reached, and if so, the run is stopped, otherwise the test is
allowed to continue until the iteration limit is reached. Alternatively, one can use the relative delay and
duration fields. Note that delay overrides start-time, and duration over-rides end-time.
16
Number of users
Total ramp-up time for
all threads to become
active (in seconds)
Number of iterations
What to do if test
encounters an error
TEST ELEMENTS : TEST FRAGMENTS
A special type of controller that exists on the Test Plan tree at the same level as
the Thread Group element.
Not executed unless it is referenced by either a Module Controller or an
Include_Controller.
Purely for code re-use within Test Plans
17
TEST ELEMENTS : CONTROLLERS
These drive the processing of a test.
Controllers can be added under some Thread Group, NOT to the Test Plan.
Two types of Controllers: Samplers and Logical Controllers.
18
Samplers –
Requests.
Samplers perform the actual work of JMeter. Each
sampler (except Test Action) generates one or more
sample results. The sample results have various
attributes (success/fail, elapsed time, data size etc)
and can be viewed in the various listeners.
Requests are customized by adding one or more
Configuration Elements to the Sampler.
Processed in the order they appear in the tree.
Logic Controllers –
Control test plan execution by controlling the flow of the
thread group.
Decide the order of processing of Samplers in a Thread.
Can alter the order of requests coming from their child
elements.
LOGIC CONTROLLER : RECORDING CONTROLLER
During recording using the HTTP(S) Test Script Recorder, all recorded samples
will by default be saved under the Recording Controller.
During test run, it has no effect, just a place holder similar to the Simple
Controller.
19
SAMPLER : HTTP REQUEST
Send an HTTP/HTTPS request to a web server.
JMeter sends requests in the order that they appear in the tree.
You do not have to set the Server Name field if already specified this value in the HTTP
Request Defaults. set this to /, so each thread will access the homepage of our server.
20
Does not generate Samples for the redirect requests
In general, this setting isn't typically used as it does
not handle the cookies on redirection.
generates redirect requests as sub-samples.
TEST ELEMENTS: CONFIG ELEMENTS
Abstract common settings, defaults, handle cookies, variables, input data, etc. to be used by Samplers. They
are used to add or modify requests made by Samplers.
They are executed at the start of the scope of which they are part, before any Samplers that are located in the
same scope. Therefore, a Configuration Element is accessed only from inside the branch where it is
placed.
For example, if you place an HTTP Cookie Manager inside a Simple Logic Controller, the Cookie Manager will
only be accessible to HTTP Request Controllers you place inside the Simple Logic Controller (see figure
1). The Cookie Manager is accessible to the HTTP requests "Web Page 1" and "Web Page 2", but not
"Web Page 3".
21
The User Defined Variables Configuration element is different. It is processed at the start of a test, no matter where it is placed. For
simplicity, it is suggested that the element is placed only at the start of a Thread Group.
CONFIG ELEMENTS : HTTP REQUEST DEFAULTS
Does not send an HTTP request; simply defines the default values / settings that
all the HTTP Requests use.
Useful if we want to send multiple HTTP requests to the same server.
Setting the server here makes it the default server for the rest of the items in this
thread group.
22
CONFIG ELEMENTS : HTTP COOKIE MANAGER
To add cookie support, simply add an HTTP Cookie Manager to each Thread
Group in your test plan. This will ensure that each thread gets its own cookies,
but shared across all HTTP Request objects.
23
CONFIG ELEMENT : USER DEFINED VARIABLES
24
HTTP HEADER MANAGER
25
TEST ELEMENTS: PRE PROCESSORS
elements (actions, assertions or basically whatever) happen before a sampler or
test element executes.
Often used to modify the settings of a Sample Request just before it runs or to
update variables that are not extracted from response text.
26
TEST ELEMENTS: POST PROCESSORS
Executes some action after a Sampler Request has been made.
Often used to process the response data, often to extract values from it.
Extract values, setup for next request.
27
TEST ELEMENTS: TIMERS
Control thread and test element timings.
By default, a JMeter thread sends requests without pausing between each request
Delay a certain amount of time before each sampler which is in its scope.
If you choose to add more than one timer to a Thread Group, JMeter takes the
sum of the timers and pauses for that amount of time before executing the
samplers to which the timers apply.
28
TEST ELEMENTS: ASSERTIONS
Test or Validate the response produced by Sampler request/s.
Assert facts about responses received from the server being tested.
Report pass/fail for some condition.
To restrict the assertion to a single sampler, add the assertion as a child of the
sampler.
29
TEST ELEMENTS: LISTENERS
Output the results of a load test.
Different ways to view the results produced by a Sampler requests.
Parse results in form of tables, trees or plain log files.
Will also save results to configurable .csv or .xml file.
All Listeners save the same data; the only difference is in the way the data is presented on the screen.
Can be added anywhere in a test plan, but they will only parse and collect result data from the samplers at
their level or in the levels bellow.
30
LISTENER : GRAPH RESULTS
You specify a directory and filename of the output file.
31
LISTENER : VIEW RESULTS IN TABLE
Type in a value for Filename to output the results to a CSV file
32
LISTENER : VIEW RESULTS TREE
First tab is Sampler Results. It shows JMeter data as well as data returned by the
web server.
The second tab is Request, which shows all the data sent to the web server as
part of the request.
last tab is Response data. In this tab, the listener shows the data received from
server in text format.
33
LOGS
It defaults to jmeter.log, and will be found in the directory from which JMeter was
launched.
The menu Options > Log Viewer displays the log file in a bottom pane on main JMeter
window.
In the GUI mode, the number of error/fatal messages logged in the log file is displayed
at top-right.
Error/fatal counter
34
FILE EXTENSIONS
35
TROUBLESHOOTING
If the Proxy does not seem to record any samples, this could be because the
browser is not actually using the proxy. To check if this is the case, try
stopping the proxy. If the browser still downloads pages, then it was not
sending requests via the proxy. Double-check the browser options.
36
37

More Related Content

Similar to apache_jmeter.pptx

Software testing
Software testingSoftware testing
Software testingnil65
 
Perofrmance testing and apache jmeter
Perofrmance testing and apache jmeterPerofrmance testing and apache jmeter
Perofrmance testing and apache jmeterlethibichhoa
 
JMeter workshop
JMeter workshopJMeter workshop
JMeter workshopRaman Kansal
 
J-meter Workshop Vodqa
J-meter Workshop VodqaJ-meter Workshop Vodqa
J-meter Workshop VodqaThoughtworks
 
JMeter Workshop vodQA
JMeter Workshop vodQAJMeter Workshop vodQA
JMeter Workshop vodQAvodQA
 
Automation - Apache JMeter
Automation - Apache JMeterAutomation - Apache JMeter
Automation - Apache JMeterWira Santos
 
Performance Testing - Apache Benchmark, JMeter
Performance Testing  - Apache Benchmark, JMeterPerformance Testing  - Apache Benchmark, JMeter
Performance Testing - Apache Benchmark, JMeterAntoni Orfin
 
Performancetestingjmeter 131210111657-phpapp02
Performancetestingjmeter 131210111657-phpapp02Performancetestingjmeter 131210111657-phpapp02
Performancetestingjmeter 131210111657-phpapp02Nitish Bhardwaj
 
Performance testing using jmeter
Performance testing using jmeterPerformance testing using jmeter
Performance testing using jmeterRachappa Bandi
 
Performance testing jmeter
Performance testing jmeterPerformance testing jmeter
Performance testing jmeterBhojan Rajan
 
Find the bottleneck of your system
Find the bottleneck of your systemFind the bottleneck of your system
Find the bottleneck of your systemJian-Hong Pan
 
Basic of jMeter
Basic of jMeter Basic of jMeter
Basic of jMeter Shub
 
JMeter & ColdFusion
JMeter & ColdFusion JMeter & ColdFusion
JMeter & ColdFusion isummation
 
Perfromane Test Tool jmeter
Perfromane Test Tool jmeterPerfromane Test Tool jmeter
Perfromane Test Tool jmeterNaga Mallala
 
Introduction to jmeter & how to view jmeter Test Result in Real-Time
Introduction to jmeter & how to view jmeter Test Result in Real-TimeIntroduction to jmeter & how to view jmeter Test Result in Real-Time
Introduction to jmeter & how to view jmeter Test Result in Real-TimeBugRaptors
 
Performancetestingjmeter 121109061704-phpapp02
Performancetestingjmeter 121109061704-phpapp02Performancetestingjmeter 121109061704-phpapp02
Performancetestingjmeter 121109061704-phpapp02Shivakumara .
 

Similar to apache_jmeter.pptx (20)

Software testing
Software testingSoftware testing
Software testing
 
Perofrmance testing and apache jmeter
Perofrmance testing and apache jmeterPerofrmance testing and apache jmeter
Perofrmance testing and apache jmeter
 
JMeter workshop
JMeter workshopJMeter workshop
JMeter workshop
 
J-meter Workshop Vodqa
J-meter Workshop VodqaJ-meter Workshop Vodqa
J-meter Workshop Vodqa
 
JMeter Workshop vodQA
JMeter Workshop vodQAJMeter Workshop vodQA
JMeter Workshop vodQA
 
Automation - Apache JMeter
Automation - Apache JMeterAutomation - Apache JMeter
Automation - Apache JMeter
 
Performance Testing - Apache Benchmark, JMeter
Performance Testing  - Apache Benchmark, JMeterPerformance Testing  - Apache Benchmark, JMeter
Performance Testing - Apache Benchmark, JMeter
 
Performancetestingjmeter 131210111657-phpapp02
Performancetestingjmeter 131210111657-phpapp02Performancetestingjmeter 131210111657-phpapp02
Performancetestingjmeter 131210111657-phpapp02
 
Performance testing using jmeter
Performance testing using jmeterPerformance testing using jmeter
Performance testing using jmeter
 
Performance testing jmeter
Performance testing jmeterPerformance testing jmeter
Performance testing jmeter
 
Find the bottleneck of your system
Find the bottleneck of your systemFind the bottleneck of your system
Find the bottleneck of your system
 
Basic of jMeter
Basic of jMeter Basic of jMeter
Basic of jMeter
 
Lesson 2
Lesson 2Lesson 2
Lesson 2
 
JMeter & ColdFusion
JMeter & ColdFusion JMeter & ColdFusion
JMeter & ColdFusion
 
Perfromane Test Tool jmeter
Perfromane Test Tool jmeterPerfromane Test Tool jmeter
Perfromane Test Tool jmeter
 
JMeter
JMeterJMeter
JMeter
 
Introduction to jmeter & how to view jmeter Test Result in Real-Time
Introduction to jmeter & how to view jmeter Test Result in Real-TimeIntroduction to jmeter & how to view jmeter Test Result in Real-Time
Introduction to jmeter & how to view jmeter Test Result in Real-Time
 
Performancetestingjmeter 121109061704-phpapp02
Performancetestingjmeter 121109061704-phpapp02Performancetestingjmeter 121109061704-phpapp02
Performancetestingjmeter 121109061704-phpapp02
 
J Meter Intro
J Meter IntroJ Meter Intro
J Meter Intro
 
JMeter Intro
JMeter IntroJMeter Intro
JMeter Intro
 

Recently uploaded

ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxnada99848
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 

Recently uploaded (20)

ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptx
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 

apache_jmeter.pptx

  • 1.
  • 2. WHAT IS JMETER Originally developed to test JServ (an Apache project since replaced by Tomcat) A GUI desktop application Built in Java; designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to other test functions. JMeter can also be configured as a monitor, although this is typically considered an ad-hoc solution in lieu of advanced monitoring solutions. JMeter is not a browser - JMeter does not execute the Javascript found in HTML pages. Nor does it render the HTML pages as a browser does (it's possible to view the response as HTML etc, but the timings are not included in any samples, and only one sample in one thread is ever viewed at a time). Jmeter works at protocol level. for advanced functional testing you should know JavaScript. Java is needed only if you are using Java Sampler part of my abilities and if you want to extend my capabilities. 2
  • 3. FEATURES OF JMETER  Can be distributed  used to test performance both on static and dynamic resources (Webservices (SOAP/REST), Web dynamic languages - PHP, Java, ASP.NET, Files, etc. -, Java Objects, Data Bases and Queries, FTP Servers and more).  Graphical Analysis / Exporting Test Results  Remote Distributed Execution - If you want to generate load using multiple test servers. You can run multiple server components of JMeter remotely. And you can control it by a single JMeter GUI to gather results.  Highly Extensible- A. Custom Additions (Write your own samplers / listeners) B. PlugIns  Test plans stored in XML and can be version controlled. 3
  • 4. SUPPORTED PROTOCOLS  Web - HTTP, HTTPS  SOAP / REST  FTP  Database via JDBC  LDAP  Message-oriented middleware (MOM) via JMS  Mail - SMTP(S), POP3(S) and IMAP(S)  MongoDB (NoSQL)  Native commands or shell scripts  TCP  Functional test using JUnit and Java applications. 4
  • 5. INSTALLATION • Requirements - Java Version - JMeter requires a fully compliant JVM 6 or higher. Operating Systems - JMeter is a 100% Java application and should run correctly on any system that has a compliant Java implementation. • Download the binary - Go to jmeter website http://jmeter.apache.org/; then Download Releases section. Download the binary compressed file and extract in some folder on your local directory. It’s platform independent, so the same download will run on Windows, Linux, Mac. You need Java, with the JAVA_HOME environment variable set so JMeter can find the Java and keytool binaries. i.e. JAVA_HOME=C:Program FilesJavajdk1.8.0_20 Uncomment SSL settings in jmeter.properties 5
  • 6. RUNNING JMETER Go to bin folder Run jmeter.sh (for mac) jmeter.bat (for windows) jmeter (for Unix) Some additional scripts in the bin directory – • jmeter.bat - run JMeter (in GUI mode by default) • jmeterw.cmd - run JMeter without the windows shell console (in GUI mode by default) • jmeter-n.cmd - drop a JMX file on this to run a non-GUI test • jmeter-n-r.cmd - drop a JMX file on this to run a non-GUI test remotely • jmeter-t.cmd - drop a JMX file on this to load it in GUI mode • jmeter-server.bat - start JMeter in server mode • mirror-server.cmd - runs the JMeter Mirror Server in non-GUI mode • shutdown.cmd - Run the Shutdown client to stop a non-GUI instance gracefully • stoptest.cmd - Run the Shutdown client to stop a non-GUI instance abruptly 6 jmeter.bat launches the GUI JMeter's Classpath - JMeter automatically finds classes from jars in the following directories: JMETER_HOME/lib - used for utility jars JMETER_HOME/lib/ext - used for JMeter components and plugins
  • 7. RUNNING JMETER IN NON-GUI MODE (COMMAND LINE MODE) use the following command options: -n This specifies JMeter is to run in non-gui mode -t [name of JMX file that contains the Test Plan]. -l [name of JTL file to log sample results to]. -j [name of JMeter run log file]. -r Run the test in the servers specified by the JMeter property "remote_hosts" -R [list of remote servers] Run the test in the specified remote servers The script also lets you specify the optional firewall/proxy server information: -H [proxy server hostname or ip address] -P [proxy server port] Example: jmeter -n -t my_test.jmx -l log.jtl -H my.proxy.server -P 8000 7
  • 8. RUNNING JMETER IN SERVER MODE For distributed testing, run JMeter in server mode on the remote node(s), and then control the server(s) from the GUI. You can also use non-GUI mode to run remote tests. To start the server(s), run jmeter-server[.bat] on each server host. The script also lets you specify the optional firewall/proxy server information: -H [proxy server hostname or ip address] -P [proxy server port] Example: jmeter-server -H my.proxy.server -P 8000 8
  • 9. FULL LIST OF COMMAND-LINE OPTIONS Invoking JMeter as "jmeter -?" will print a list of all the command- line options. These are shown below. -h, --help print usage information and exit -v, --version print the version information and exit -p, --propfile {argument} the jmeter property file to use -q, --addprop {argument} additional property file(s) -t, --testfile {argument} the jmeter test(.jmx) file to run -j, --jmeterlogfile {argument} the jmeter log file -l, --logfile {argument} the file to log samples to -n, --nongui run JMeter in nongui mode -s, --server run the JMeter server -H, --proxyHost {argument} Set a proxy server for JMeter to use -P, --proxyPort {argument} Set proxy server port for JMeter to use -u, --username {argument} Set username for proxy server that JMeter is to use -a, --password {argument} Set password for proxy server that JMeter is to use -J, --jmeterproperty {argument}={value} Define additional JMeter properties -G, --globalproperty (argument)[=(value)] Define Global properties (sent to servers) e.g. -Gport=123 or -Gglobal.properties -D, --systemproperty {argument}={value} Define additional System properties -S, --systemPropertyFile {filename} a property file to be added as System properties -L, --loglevel {argument}={value} Define loglevel: [category=]level e.g. jorphan=INFO or jmeter.util=DEBUG -r, --runremote (non-GUI only) Start remote servers (as defined by the jmeter property remote_hosts) -R, --remotestart server1,... (non-GUI only) Start these remote servers (overrides remote_hosts) -d, --homedir {argument} the jmeter home directory to use -X, --remoteexit Exit the remote servers at end of test (non-GUI) 9
  • 10. THE GUI – TEST PLAN 10 Test plans are sets of requests against local or remote servers (or clients) configured to run. A test plan describes a series of steps JMeter will execute when run. A complete test plan will consist of one or more Thread Groups, logic controllers, sample generating controllers, listeners, timers, assertions, and configuration elements Represented as an Ordered Tree. A test plan must have at least one thread group. It saves in Java Management Extensions (JMX) format. This format makes test plan to be open in a text editor and can use the “find and replace” function to speedily change a CMS name, web server name, or document ID that might appear hundreds of times throughout the test plan with very little determination.
  • 11. TEST PLAN VS WORKBENCH WorkBench simply provides a place to temporarily store test elements while not in use, for copy/paste purposes, or any other purpose you desire. When you save your test plan, WorkBench items are not saved with it by default unless you check "Save Workbench" option. Your WorkBench can be saved independently, if you like (right-click on WorkBench and choose Save). Certain (non) test elements are only available on the WorkBench: • HTTP(S) Test Script Recorder • HTTP Mirror Server • Property Display 11 Allow to save the WorkBench's elements into the JMX file.
  • 12. WORKBENCH : NON TEST ELEMENTS : HTTP(S) TEST SCRIPT RECORDER (WAS: HTTP PROXY SERVER ) Used for recording. Intercept and record your actions while you browse your web application with your normal browser. Can add Samplers to any controller. JMeter places the recorded samples in the Target Controller you choose. If you choose the default option "Use Recording Controller", they will be stored in the first Recording Controller found in the test object tree (so be sure to add a Recording Controller before you start recording). Create test sample objects and store them directly into your test plan as you go (so you can view samples interactively while you make them). You need to set up your browser to use the proxy for all HTTP and HTTPS requests. Enter HTTP Proxy: localhost, Port: 8080 (In case of port 8080 is being used by any other instance we can enter any other port number like: 90, 4445, 4545 etc.) Do not use JMeter as the proxy for any other request types - FTP, etc. - as JMeter cannot handle them. 12 Set Port to the same port value which is configured while setting browser connection settings Choose Target Controller, where you want the sample requests to be stored Click to Start Recording and then open the browser Step by Step Recording Guide
  • 13. TEST ELEMENTS 13 Execution order – • Configuration elements • Pre-Processors • Timers • Sampler • Post-Processors (unless SampleResult is null) • Assertions (unless SampleResult is null) • Listeners (unless SampleResult is null) Scoping Rules – When you create your test plan, you will create an ordered list of sample request (via Samplers) that represent a set of steps to be executed. These requests are often organized within controllers that are also ordered. Primarily ordered (controllers, samplers) - processed in the order in which they appear in the tree. Strictly hierarchical (Listeners, Config Elements, Post-Procesors, Pre- Processors, Assertions, Timers) - processed according to the scope in which they are found. An Assertion, for example, is hierarchical in the test tree. If its parent is a request, then it is applied to that request. If its parent is a Controller, then it affects all requests that are descendants of that Controller. Order is irrelevant for hierarchical elements. Timers, Assertions, Pre- and Post-Processors are only processed if there is a sampler to which they apply.
  • 14. EXECUTION ORDER AND SCOPING EXAMPLE 14 For example, in the following test plan: Controller Post-Processor 1 Sampler 1 Sampler 2 Timer 1 Assertion 1 Pre-Processor 1 Timer 2 Post-Processor 2 The order of execution would be: Pre-Processor 1 Timer 1 Timer 2 Sampler 1 Post-Processor 1 Post-Processor 2 Assertion 1 Pre-Processor 1 Timer 1 Timer 2 Sampler 2 Post-Processor 1 Post-Processor 2 Assertion 1 Thread groups Loop controllers Determine  How many users, will concurrently run the tests  How long between 2 launch of the test  How many times the tests will be run Determine in a thread group  How long between 2 launch of the same sampler  How many times the set of tests will be run.
  • 15. WORKING WITH TEST ELEMENTS S A V E E L E M E N T S Choose the “Save Selection As…”option. JMeter will save the selected element, plus all child elements beneath it. Created file cannot be saved in jmeter by default; you have to explicitly save the element. JMeter Test Elements and Test plan are stored in *.JMX format. L O A D E L E M E N T S To load the element from existing file, then right click on the selected element and click on “Merge” option. Browse the file from the existing saved Element. 15
  • 16. TEST ELEMENTS : THREAD GROUP • The first step you want to do with every JMeter Test Plan is to add a Thread Group element. • Represents user group • Each thread will execute the test plan • A thread group is basically a combination of different test plan elements. Thread group elements are the beginning points of any test plan. • All controllers and samplers must be under a thread group. Other elements, e.g. Listeners, may be placed directly under the test plan, in which case they will apply to all the thread groups. • Ramp-up needs to be long enough to avoid too large a work-load at the start of a test, and short enough that the last threads start running before the first ones finish • Scheduler - extra fields in which you can enter the start and end times of the run. When the test is started, JMeter will wait if necessary until the start-time has been reached. At the end of each cycle, JMeter checks if the end-time has been reached, and if so, the run is stopped, otherwise the test is allowed to continue until the iteration limit is reached. Alternatively, one can use the relative delay and duration fields. Note that delay overrides start-time, and duration over-rides end-time. 16 Number of users Total ramp-up time for all threads to become active (in seconds) Number of iterations What to do if test encounters an error
  • 17. TEST ELEMENTS : TEST FRAGMENTS A special type of controller that exists on the Test Plan tree at the same level as the Thread Group element. Not executed unless it is referenced by either a Module Controller or an Include_Controller. Purely for code re-use within Test Plans 17
  • 18. TEST ELEMENTS : CONTROLLERS These drive the processing of a test. Controllers can be added under some Thread Group, NOT to the Test Plan. Two types of Controllers: Samplers and Logical Controllers. 18 Samplers – Requests. Samplers perform the actual work of JMeter. Each sampler (except Test Action) generates one or more sample results. The sample results have various attributes (success/fail, elapsed time, data size etc) and can be viewed in the various listeners. Requests are customized by adding one or more Configuration Elements to the Sampler. Processed in the order they appear in the tree. Logic Controllers – Control test plan execution by controlling the flow of the thread group. Decide the order of processing of Samplers in a Thread. Can alter the order of requests coming from their child elements.
  • 19. LOGIC CONTROLLER : RECORDING CONTROLLER During recording using the HTTP(S) Test Script Recorder, all recorded samples will by default be saved under the Recording Controller. During test run, it has no effect, just a place holder similar to the Simple Controller. 19
  • 20. SAMPLER : HTTP REQUEST Send an HTTP/HTTPS request to a web server. JMeter sends requests in the order that they appear in the tree. You do not have to set the Server Name field if already specified this value in the HTTP Request Defaults. set this to /, so each thread will access the homepage of our server. 20 Does not generate Samples for the redirect requests In general, this setting isn't typically used as it does not handle the cookies on redirection. generates redirect requests as sub-samples.
  • 21. TEST ELEMENTS: CONFIG ELEMENTS Abstract common settings, defaults, handle cookies, variables, input data, etc. to be used by Samplers. They are used to add or modify requests made by Samplers. They are executed at the start of the scope of which they are part, before any Samplers that are located in the same scope. Therefore, a Configuration Element is accessed only from inside the branch where it is placed. For example, if you place an HTTP Cookie Manager inside a Simple Logic Controller, the Cookie Manager will only be accessible to HTTP Request Controllers you place inside the Simple Logic Controller (see figure 1). The Cookie Manager is accessible to the HTTP requests "Web Page 1" and "Web Page 2", but not "Web Page 3". 21 The User Defined Variables Configuration element is different. It is processed at the start of a test, no matter where it is placed. For simplicity, it is suggested that the element is placed only at the start of a Thread Group.
  • 22. CONFIG ELEMENTS : HTTP REQUEST DEFAULTS Does not send an HTTP request; simply defines the default values / settings that all the HTTP Requests use. Useful if we want to send multiple HTTP requests to the same server. Setting the server here makes it the default server for the rest of the items in this thread group. 22
  • 23. CONFIG ELEMENTS : HTTP COOKIE MANAGER To add cookie support, simply add an HTTP Cookie Manager to each Thread Group in your test plan. This will ensure that each thread gets its own cookies, but shared across all HTTP Request objects. 23
  • 24. CONFIG ELEMENT : USER DEFINED VARIABLES 24
  • 26. TEST ELEMENTS: PRE PROCESSORS elements (actions, assertions or basically whatever) happen before a sampler or test element executes. Often used to modify the settings of a Sample Request just before it runs or to update variables that are not extracted from response text. 26
  • 27. TEST ELEMENTS: POST PROCESSORS Executes some action after a Sampler Request has been made. Often used to process the response data, often to extract values from it. Extract values, setup for next request. 27
  • 28. TEST ELEMENTS: TIMERS Control thread and test element timings. By default, a JMeter thread sends requests without pausing between each request Delay a certain amount of time before each sampler which is in its scope. If you choose to add more than one timer to a Thread Group, JMeter takes the sum of the timers and pauses for that amount of time before executing the samplers to which the timers apply. 28
  • 29. TEST ELEMENTS: ASSERTIONS Test or Validate the response produced by Sampler request/s. Assert facts about responses received from the server being tested. Report pass/fail for some condition. To restrict the assertion to a single sampler, add the assertion as a child of the sampler. 29
  • 30. TEST ELEMENTS: LISTENERS Output the results of a load test. Different ways to view the results produced by a Sampler requests. Parse results in form of tables, trees or plain log files. Will also save results to configurable .csv or .xml file. All Listeners save the same data; the only difference is in the way the data is presented on the screen. Can be added anywhere in a test plan, but they will only parse and collect result data from the samplers at their level or in the levels bellow. 30
  • 31. LISTENER : GRAPH RESULTS You specify a directory and filename of the output file. 31
  • 32. LISTENER : VIEW RESULTS IN TABLE Type in a value for Filename to output the results to a CSV file 32
  • 33. LISTENER : VIEW RESULTS TREE First tab is Sampler Results. It shows JMeter data as well as data returned by the web server. The second tab is Request, which shows all the data sent to the web server as part of the request. last tab is Response data. In this tab, the listener shows the data received from server in text format. 33
  • 34. LOGS It defaults to jmeter.log, and will be found in the directory from which JMeter was launched. The menu Options > Log Viewer displays the log file in a bottom pane on main JMeter window. In the GUI mode, the number of error/fatal messages logged in the log file is displayed at top-right. Error/fatal counter 34
  • 36. TROUBLESHOOTING If the Proxy does not seem to record any samples, this could be because the browser is not actually using the proxy. To check if this is the case, try stopping the proxy. If the browser still downloads pages, then it was not sending requests via the proxy. Double-check the browser options. 36
  • 37. 37