Neoload

anandgattu 4,263 views 192 slides Oct 10, 2019
Slide 1
Slide 1 of 192
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62
Slide 63
63
Slide 64
64
Slide 65
65
Slide 66
66
Slide 67
67
Slide 68
68
Slide 69
69
Slide 70
70
Slide 71
71
Slide 72
72
Slide 73
73
Slide 74
74
Slide 75
75
Slide 76
76
Slide 77
77
Slide 78
78
Slide 79
79
Slide 80
80
Slide 81
81
Slide 82
82
Slide 83
83
Slide 84
84
Slide 85
85
Slide 86
86
Slide 87
87
Slide 88
88
Slide 89
89
Slide 90
90
Slide 91
91
Slide 92
92
Slide 93
93
Slide 94
94
Slide 95
95
Slide 96
96
Slide 97
97
Slide 98
98
Slide 99
99
Slide 100
100
Slide 101
101
Slide 102
102
Slide 103
103
Slide 104
104
Slide 105
105
Slide 106
106
Slide 107
107
Slide 108
108
Slide 109
109
Slide 110
110
Slide 111
111
Slide 112
112
Slide 113
113
Slide 114
114
Slide 115
115
Slide 116
116
Slide 117
117
Slide 118
118
Slide 119
119
Slide 120
120
Slide 121
121
Slide 122
122
Slide 123
123
Slide 124
124
Slide 125
125
Slide 126
126
Slide 127
127
Slide 128
128
Slide 129
129
Slide 130
130
Slide 131
131
Slide 132
132
Slide 133
133
Slide 134
134
Slide 135
135
Slide 136
136
Slide 137
137
Slide 138
138
Slide 139
139
Slide 140
140
Slide 141
141
Slide 142
142
Slide 143
143
Slide 144
144
Slide 145
145
Slide 146
146
Slide 147
147
Slide 148
148
Slide 149
149
Slide 150
150
Slide 151
151
Slide 152
152
Slide 153
153
Slide 154
154
Slide 155
155
Slide 156
156
Slide 157
157
Slide 158
158
Slide 159
159
Slide 160
160
Slide 161
161
Slide 162
162
Slide 163
163
Slide 164
164
Slide 165
165
Slide 166
166
Slide 167
167
Slide 168
168
Slide 169
169
Slide 170
170
Slide 171
171
Slide 172
172
Slide 173
173
Slide 174
174
Slide 175
175
Slide 176
176
Slide 177
177
Slide 178
178
Slide 179
179
Slide 180
180
Slide 181
181
Slide 182
182
Slide 183
183
Slide 184
184
Slide 185
185
Slide 186
186
Slide 187
187
Slide 188
188
Slide 189
189
Slide 190
190
Slide 191
191
Slide 192
192

About This Presentation

Performance testing using Neoload


Slide Content

NeoLoad
Training

Introduction
•The Objectives of thisTraining
Load-Testing Principles
Design
Runtime
Results
For Advanced Users
AGENDA

WhatYou Are GoingTo Learn
At the end of the class, youwillknow how to use NeoLoad
Introduction
Manytoolsto design
yourVU
Somemethodology
How to makeyour
ownanalysis

Introduction
Load-Testing Principles
•Definition
•Test Types
•Methodology
Design
Runtime
Results
For Advanced Users
AGENDA

Determine how a system performs in
terms of responsiveness and
stability under a particular workload
Definition
Web Load-TestingPrinciples

Why Do Load Testing?
If yourwebsiteearns$100.000 a day, thisyearyoucouldlose$2.5 MILLION
in sales.
Web Load-TestingPrinciples
16%
decreasein
customer
satisfaction
11% fewer
page views
7% lossin
conversions
A 1 second
delayin page
loadtime

Load-Testing Allows Us To
Web Load-TestingPrinciples
Predict
application
performance
Detect
bottlenecks
Determine
scalability

Several Tests
Web Load-TestingPrinciples
LoadTest
determine the behaviour of the system under a specific expected load
Scalability/ Capacity
determine the system’s maximum load capacity
Stress
subject the application to a much greater activity than it normally handles
Endurance / Soak
detect memory leaks and other resource consumption issues using long
tests and static load
Degraded
determinethe behaviour of the system undernon-optimal conditions

Load-TestingMethodology
Web Load-TestingPrinciples
Test plan
Load-Testing
Consultant
Project manager
Functional
specialists
•Objectives
•Test platform
•Scenarios
•Scheduling
•Contributors
Preparation
Load-Testing
Consultant
Project manager
Functional
specialists
•Testing environment
installation
•Test platform validation
•Test plan validation
Design
Load-Testing
Consultant
Functional
specialists
Developers
•Test data generation
•VU profile design
•DB update procedure
•Test data validation
•Population & monitoring
Runtime
Load-Testing
Consultant
Server
specialists
Administrators
•Single-user baseline
•Ramp-up load test
•Combination test
•Maximum load test
Tuning
Validation
Analysis
Load-Testing
Consultant
Server
specialists
Administrators
•Response time analysis
•Benchmark comparison
•System metric analysis
•Tuning if required
•Report creation

NeoLoad Architecture
Web Load-TestingPrinciples
Monitor
(optional)
NeoLoad Monitoring Engine
3G+H+ WiFi4G+
Controller
Command
Cloud Load Generators On-premise Load Generators
Load
APP
Application ServerDatabase ServerWebServer
•NeoLoad management console
•Design, run and analyze tests
locally
•Manage LG and MA
•Load generation as defined in
the controller
•Only active when the test is
launched
•Retrieve system information
•Understand the bottlenecks
•Alerts for faster analysis
•Network emulation
•Device emulation
•System to be tested

The Basics of A NeoLoad Project
Web Load-TestingPrinciples
Runtime
Set the numberof users,
startthe test and look at
the real-time information
Record and design VU
profiles
Createa population and
set eachVU profile rate
Design
Setup the monitors
Analyzethe resultsand
issue a report
Results

Introduction
Load-Testing Principles
Design
Recording a Virtual User Profile
•Designing a Virtual User Profile
•Building a Population
•Monitoring the Infrastructure
Runtime
Results
For Advanced Users
AGENDA

How DoesNeoLoad Record?
Recording a Virtual User Profile
The client
(web-browser)
Servers
Requests are
recorded
NeoLoad acts as a proxy
and listens on port 8090
Responses
are recorded

Starting the Recorder
•Use the button and fill-in the following pop-up.
Recording a Virtual User Profile
Name of the
VU
Record in Init
or Actions
Start and set
the browser
Choose the
protocol to record
Choose the
recording mode
Set the user-agent

During the Record
•Use the recording bar to modify the user.
Recording a Virtual User Profile
Stop or pause
the record
Change the
section
Create
containers
Set Rendezvous
points
Access the
documentation

WhyUsingContainers?
•Group actions together
•OrganizeVU’sfor easiermaintenance
•Extractstatistics(averagetimes, hits/s…)
Recording a Virtual User Profile
Without
With

Objectives
Aftercompletingthisexercise, youwillbeable to:
•Use the Neotystraining environment.
•Record a simple VU profile.
•Recognizethe components of a VU profile.
Scenario
1.Open the Neotys Training Applications portal and access the Jpetstore.
2.Record a VU profile, using containers, called ‘Browser’ that only browses the shop.
3.Stop the record and click on Finishto not execute the post-recording wizard.
4.Navigate into the VU profile to see the different components.
Exercise 1

The VU Profile at First Sight
Recording a Virtual User Profile
Actions
container
Request
Page
Transaction

The VU Profile Structure
•Init
-Executed once, and only once, at the beginning of the test.
-Common uses: initialization routines, application log in, etc.
•Actions
-Repeatedly executed until the end of the test.
-Cookies and cache are preserved between iterations (default behaviour).
-Reset the user context from the runtime parameters.
•End
-Executed once at the end of the test.
-Common uses: application log out, etc.
Recording a Virtual User Profile

The Runtime Parameters of the VU Profile
•A VU instance keeps running when an error occurs. It may be changed to:
-Go to the next iteration.
-Stop and start a new VU.
•Behaviour on assertions may be set the same way.
•All think times may be modified:
-Use think time defined on page.
-Override the think times.
-Apply a factor for each page.
-Add a random delay.
Recording a Virtual User Profile

VU Profile: Pages
•NeoLoad representation of an internet page.
•Made of an HTML page and the embedded resources (GIF, PNG, CSS, JS…).
•May be renamed.
Recording a Virtual User Profile
A page
The resources

VU Profile: HTTP Requests
•NeoLoad representation of a request sent over the network (HTTP/S).
Recording a Virtual User Profile
Method
Server
URL
Path
Parameters

The End of the Record
•Whenthe navigation iscompleted, finish the record eitherby:
-Clickingthe stop button.
-Closingthe web-browser.
•If the recorded application keeps sending data, this pop-up may be displayed.
Recording a Virtual User Profile

The End of the Record
•Go throughthe post-recordingwizard.
•It helps taking care of the:
-Think-time.
-Dynamic parameters: framework (pre-defined rules) and dynamic (comparison based
correlation).
-Authentication.
Recording a Virtual User Profile

Adding Pages To A Record
•You can also start the recorder within an existing VU Profile.
•Right-click in the VU Profile and choose‘Record here’.
Recording a Virtual User Profile

Objectives
Aftercompletingthisexercise, youwillbeable to:
•Record a structuredVU profile.
•Use the flags to findan information.
Scenario
1.Record a VU profile, using the containers, called ‘Searcher’ that:
a.Starts at the Jpetstorehomepage
b.Enters the store
c.Enters ‘Amazon Parrot’ in the search field
d.Clicks on a product
e.Clicks on an item
2.Stop the NeoLoad recorder and do not execute the post-recording wizard. When
prompted to execute click on Finish.
3.Locate the chosen product and item.
Exercise 2

Introduction
Load-Testing Principles
Design
•Recording a Virtual User Profile
Designing a Virtual User Profile
•Building a Population
•Monitoring the Infrastructure
Runtime
Results
For Advanced Users
AGENDA

Why?
•Fixthe issues due to dynamicparameters.
•Reachrealisticbehaviours.
•Defineseveraltypes of VU profile.
Designinga Virtual User Profile

Design Methodology
This sequence may be reordered. However, do not forget any step!
Designinga Virtual User Profile
VU profile
ready
The check VU
The variable
extractor
The logical
actions
The NeoLoad
variables
The validation
You will
learn
Validating the VU
behaviour
•Play a unit test
•Check the errors
Correcting the VU
behaviour
•Identify the request
that returns an error
•Identify the parameter
•Handle the data
Changing behaviour
using logical actions
•Adapt to the simulation
requirements
Using different login
accounts and values
•Define realistic
conditions of use
Validating key pages
•Set validations to make
sure responses are the
ones expected

Design Methodology
Designinga Virtual User Profile
Correcting the VU
behaviour
Changing behaviour
using logical actions
Using different login
accounts and values
Validating key pages
Validating the VU
behaviour
VU profile
ready
The check VU
The variable
extractor
The logical
actions
The NeoLoad
variables
The validation
You will
learn

Why?
•Findanyissue thatmaybein the recordedVU profile.
•The recordedpages mayrequiretuning.
•Modern appsexchange a lot of parameters.
•Avoidbadsurprises whilethe test isrunning.
Validatingthe VU Behaviour

How?
•Using the ‘Check Virtual User’ (NeoLoad debugger).
•A single VU test with no thinktime.
•Accessed via .
Validatingthe VU Behaviour

The Check VU in Details
•Comparisons with recording.
•Difference rate.
•Variables.
•Requests and responses.
•Failed assertions.
•HTML page rendering.
Validatingthe VU Behaviour

Objectives
Aftercompletingthisexercise, youwillbeable to:
•Check whethera VU profile isvalid.
•Digintothe detailsof the page source code.
Scenario
1.Check the ‘Searcher’ VU profile and make sure it runs properly.
2.Examine the information provided, including:
-The HTML rendering.
-The requests that comprise the application home page.
-The Comparison of the recorded and replayed responses.
3.Locate the chosen product and item.
Exercise 3

Design Methodology
Designinga Virtual User Profile
Validating the VU
behaviour
Changing behaviour
using logical actions
Using different login
accounts and values
Validating key pages
Correcting the VU
behaviour
VU profile
ready
The check VU
The variable
extractor
The logical
actions
The NeoLoad
variables
The validation
You will
learn

Why?
•Because a VU displays an unexpected error.
•BecauseHTML pages usually contain dynamic elements.
•Because NeoLoad cannot automatically handle all parameters.
Correctingthe Virtual User Behaviour

Focus: The HTTP Parameters
•Static parameters
-Values never change, regardless of
which user is connected or the number
of times the VU profile is played.
•Functional dynamic parameters
-Entered by the end user.
-Making them dynamic makes the VU
profile more realistic.
•Technical dynamic parameters
-Generated by the server, often used by
the client in subsequent requests.
-Values change at each call.
Must be handled to have a valid
VU profile.
Correctingthe Virtual User Behaviour

Objectives
Aftercompletingthisexercise, youwillbeable to:
•Understandhow technicalparametersmayinfluence a VU profile.
Scenario
1.Record a VU profile called ‘Buyer’ that:
a.Starts at the Jpetstorehomepage and then enters the store
b.Logs into the store (j2ee/j2ee)
c.Selects a category by clicking one of the images beneath the center bird
d.Adds a pet to the shopping cart
e.Checks out and enters payment information
f.Confirms the sale
g.Logs out
2.Stop the NeoLoad recorder and do not searchfor the dynamic parameters in the post-
recording wizard.
3.Check the ‘Buyer’.
4.Explain why it fails.
Exercise 4

How?
•Usinga mecanismcalledvariable extractorwhichextractscontent of an HTTP response.
•The content isassignedto a NeoLoadvariable.
•A variable may be called using the syntax ${<variableName>}or with the variable
picker that gives a quick access to the existing variables.
•The variable extractorisaccessedfromthe requestadvancedsettings .
•The variables created with the variable extractor are only accessible by the VU profile in
which they are extracted.
Correctingthe Virtual User Behaviour

The Variable Extractor
Correctingthe Virtual User Behaviour
Variable name
Target
extraction
Occurrence to
extract
Encoding
Test
XPath definition
Start boundary
Groups
End boundary

Hypothesis: a request fails to pass the Check VU
Makethe replacement
Select the failedrequest
Validate the variable extractor
Go to the variable extractor settings and configure the extraction
Select the response containing the data to be extracted
Procedure: the Variable Extractor
Correctingthe Virtual User Behaviour

Objectives
Aftercompletingthisexercise, youwillbeable to:
•Use the NeoLoad toolsto properlytakeintoaccounta dynamicparamater.
Scenario
1.From the observations made on the previous exercise, fix the VU profile using a variable
extractor.
The extraction must be set on a request before the one that fails.
2.Use the Check-VU functionto makethe VU profile worksas expected.
Exercise 5

The Variable Extractor: Automatic Configuration
•Automation of the manual procedure.
•Avoid mistakes.
•Save time.
Correctingthe Virtual User Behaviour
Select the automatic
configuration
All is automatically
setup

Objectives
Aftercompletingthisexercise, youwillbeable to:
•Takeadvantageof the automaticcorrelationfeature.
Scenario
1.Duplicate the ‘Buyer’ and call the new user ‘Buyer_AutoConfig’.
2.Restore the value of the idparameter in the ‘Buyer_AutoConfig’.
3.Use the automatic configuration to fix the issue.
4.Check the VU to be sure the issue has been handled.
Exercise 6

The Framework Parameters: PracticalWork
Correctingthe Virtual User Behaviour
1.Record a VU profile called ‘BuySeveralItems’
that:
a.Starts at the Jpetstorehomepage and then
enters the store
b.Logs into the store (j2ee/j2ee)
c.Selects a category by clicking one of the
images beneath the center bird
d.Adds a pet to the shopping cart
e.Clicks on “Main Menu”
f.Repeatsstepsc. to e. 5 times
g.Checks out and enters payment information
h.Confirms the sale
i.Logs out
2.Runa check-VU and observe the result

How should we handle the id
parameter?
Use the search and replace?
Do all extractions manually?
The Framework Parameters
Correctingthe Virtual User Behaviour

The Framework Parameters: Why?
•Parameters are often the same across the scenario.
•“Teach” NeoLoad new correlations rules and save time.
•Re-use your framework parameters for future records.
Correctingthe Virtual User Behaviour

The Framework Parameters: How?
•NeoLoad provides predefined correlation rules (.NET, Oracle, GWT, Siebel, Flex,
Silverlight…).
•For your own apps, create your own framework parameters.
Correctingthe Virtual User Behaviour
Move the extraction
to the framework
Move the extraction
to the framework

The Framework Parameters: Advanced Settings
•Only edit existing configurations. Do not create a framework parameter from scratch.
Correctingthe Virtual User Behaviour
Name
Replacement
Extraction rule

The Framework Parameters: Tips
•Framework parameters are part of the NeoLoad installation. Exporting a project does not
include them.
•Framework parameters must be exported to be shared (advanced settings, NeoLoad
preferences).
•Search for the framework parameters via .
Correctingthe Virtual User Behaviour

Objectives
Aftercompletingthisexercise, youwillbeable to:
•Takeadvantageof the frameworkparametersfor automaticcorrelation.
Scenario
1.Record a ‘SearchBooking’ user on the Hotel Booking Application:
a.Access the home page.
b.Start (click on ‘Start your Spring Travel Experience’).
c.Click on ‘Find Hotels’.
d.View the first hotel in the list.
e.Close your browser.
2.Do not execute the post recording wizard. Check the VU, and observe the results.
3.Define extractors and add them to a ‘HotelBooking’ framework for the following
parameters:
-dtid,
-execution,
-the first uuid_0(rename it ‘uuid_Find’ when you add it to the framework)
-the second uuid_0(rename it ‘uuid_View’ when you add it to the framework)
Exercise 7 (1/2)

4.Apply the framework parameters to the ‘SearchBooking’ user. Check it and observe the
results.
5.Record a ‘Logged_SearchBooking’ user following these steps:
a.Access the home page.
b.Login (credentials are provided on the page).
c.Start (click on ‘Start your Spring Travel Experience’).
d.Click on ‘Find Hotels’.
e.View the first hotel in the list.
f.Logout.
g.Close your browser.
6.Apply the framework parameters to the ‘Logged_SearchBooking’ user. Check it, and
observe the results.
Exercise 7 (2/2)

Generic Dynamic Parameters vs. Framework Parameters
•Generic Dynamic Parameters
-Found ‘on the fly’ using comparison.
-Less accurate identification.
-Slower identification.
•Framework Dynamic Parameters
-Defined using regular expressions.
-More accurate identification.
-Faster identification.
Correctingthe Virtual User Behaviour

The Variable Extractor: Multiple Occurrences
•If an extraction template has several matches, all occurrences may be returned as a set.
•The following variables are created:
-<variableName>_matchNr : number of occurrences found.
-<variableName>_n : n
th
occurrence (n=1, 2...).
-<variableName>_rand : random occurrence.
-<variableName> : default value.
•Unless for specific purpose, when doing multiple extractions, do not use the only name of
the variable.
Correctingthe Virtual User Behaviour

Design Methodology
Designinga Virtual User Profile
Validating the VU
behaviour
Using different login
accounts and values
Validating key pages
Correcting the VU
behaviour
Changing behaviour
using logical actions
VU profile
ready
The check VU
The variable
extractor
The logical
actions
The NeoLoad
variables
The validation
You will
learn

Why?
•To simulatemore realisticconditions.
•To makesimplerrecords.
•To have new VU profiles by onlymodifyingone alreadyrecorded.
Changing the Virtual User Behaviour

How?
•Usingthe logicalactions.
•Adaptto the simulation requirementswith:
-Loops.
-Conditionalbranching.
-Errormanagement…
•Drag and drop the actions. No script.
Changing the Virtual User Behaviour

Container
•Group together certain actions and statistics.
•Two execution modes:
-Sequentially: the elements of the container are played
in the order they are declared.
-Randomly: the elements of the container are played
randomly.
•The advanced mode allows to configure each element to
be repeated a number of times (repetition or probability).
•Pacing may be set on each container.
It is the minimum time for the container to be executed.
Changing the Virtual User Behaviour

Delay
•Suspends the execution for a specified duration.
•Expressed in milliseconds.
•May be a variable.
Loop
•Repeat elements.
•The number of iterations may be constant or a variable.
•The variable <LoopName>_counteris automatically created. It gives the current
iteration.
Changing the Virtual User Behaviour

While
•Execution of elements while a condition remains true.
•Several conditions may be applied.
•The variable <WhileName>_counteris automatically created. It gives the current
iteration.
If…Then…Else
•Execution of conditional actions.
-If condition is true, Thenfolder is executed
-If condition is false, Elsefolder is executed
•Several conditions may be applied to an If…Then…Elseaction.
Changing the Virtual User Behaviour

Objectives
Aftercompletingthisexercise, youwillbeable to:
•Modifythe sequenceof a VU profile usingthe GUI.
•Change the VU profile to fullfillspecificconditions.
•Use the ‘Update RecordedContent’ function.
Scenario
1.Duplicate the ‘Buyer’ and call it ‘LoopBuyer’.
2.Modify the ‘LoopBuyer’ in order to purchase a pet from each category (several pets in
the shopping cart and only one order):
-Set up multiple extractions.
-Use a Loop.
-Variables may be concatenated following the syntax ${var1${var2}}.
-Automaticvariable extractions cannotbeused.
3.Update the recordedcontent of the ‘LoopBuyer’ (advancedsettings of the Check-VU).
4.Duplicate the previous VU profile and call it ‘WhileBuyer’.
5.Modify the ‘WhileBuyer’ using a Whileto include a condition on the total price (for
example, less than 500 dollars).
Exercise 8

Try…Catch
•Adapt the test execution behaviour in function of events (error management…).
•Actions included in the Tryare executed sequentially.
•If an assertion or an error is detected then the Catchis executed.
Changing the Virtual User Behaviour

Go to Next Iteration
•Interrupt the VU runtime and go to the next iteration.
•The behaviour depends on where the action is:
-Init: the VU stops its initialization and goes to the Actionscontainer.
-Actions: the VU stops its current iteration and run a new Actionscontainer or goes to the End
container (depends on the load policy).
-End: no interruption, the VU keeps executing the Endand an error message is logged.
•Often combined with If...Then...Elseor Try...Catch.
Changing the Virtual User Behaviour

Shared Containers
•Share elements to re-use them in several VU profiles (login or logout for instance).
•Statistics are given across several VUs.
•Shareable elements are:
-Container
-Loop
-While
-Fork
•An element is shared with a drag-and-drop or a right-click interaction.
Changing the Virtual User Behaviour

Design Methodology
Designinga Virtual User Profile
Validating the VU
behaviour
Validating key pages
Correcting the VU
behaviour
Changing behaviour
using logical actions
Using different login
accounts and values
VU profile
ready
The check VU
The variable
extractor
The logical
actions
The NeoLoad
variables
The validation
You will
learn

Why?
•Test all branches of the application.
•Test how the servers handle the cache.
•Make things more realistic.
Using Different Values

How: the Variable Manager
•Numerous variable types (lists, strings, integers, counters…).
•Change policy.
•Distribution policy.
The variables created through the
variable manager are accessible by
all the VU profiles.
Using Different Values

Focus: the SQL Variable
•The SQLvariable embeds a guided mode for MySQL, Oracle, DB2, PostgreSQLand MS
SQL.
•When requesting other DB, the driver and the URL must be manually defined.
•TheSQLvariable is populated and sent to the LGs before the test is running. It is not
calculated in real-time.
•Use the syntax ${<variableName>.<columnName>}to access each column of the
table.
Using Different Values

Objectives
Aftercompletingthisexercise, youwillbeable to:
•Createand use the NeoLoadvariables.
Scenario
1.Make the authentication of the ‘Buyer’ dynamic with a Filevariable (accounts are
provided on the Neotys Application Portal). Call this variable ‘Accounts’.
2.Create a Listvariable called ‘Address’ with three columns called ‘City’, ‘State’ and ‘ZIP’
that contains four data sets (rows):
-Boston, MA, 02134
-Random Lake, WI, 53075
-Beverly Hills, CA, 90210
-Echo, Oregon, 97826
3.Data values for the variable are selected in a random order.
4.In the ‘Buyer’, find the request submitting the payment details and replace the hard-
coded values with the variable ‘Address’.
5.Create (without using it) an SQL variable for the authentication called ‘SqlAuthent’ (DB:
jpetstore, table: SIGNON).
Exercise 9

Design Methodology
Designinga Virtual User Profile
Validating the VU
behaviour
Correcting the VU
behaviour
Changing behaviour
using logical actions
Using different login
accounts and values
VU profile
ready
The check VU
The variable
extractor
The logical
actions
The NeoLoad
variables
The validation
Validating key pages
You will
learn

Validation
•Check the server responses in real-time to ensure that the pages delivered by the server
are what you expect.
•Three criteria:
-Delay.
-Page size.
-Page content.
ValidatingKey Pages

Global Validation
•Add content assertions to a container or the entire VU profile.
•Only responses with atext/htmlortext/xhtmlcontent-type are checked(default
behaviour).
ValidatingKey Pages

Objectives
Aftercompletingthisexercise, youwillbeable to:
•Preparethe VU profile for the test by implementingerrormanagement.
Scenario
1.In the ‘Searcher’, change the search criteria using a Listvariable containing:
-Goldfish
-Amazon Parrot
-Iguana
-Manx
2.Set a validation to check that the ‘Add to Cart’ button is in the page.
3.Use a Try…Catchto stop the VU iteration if an assertion fails.
4.Set random think times between 5 and 10 seconds.
5.Add a Loopto include several searches (between 1 and 4). Change the search criteria
value on each loop iteration.
6.Stop the VU iteration if the stock of an item falls below 9500.
Exercise 10

Introduction
Load-Testing Principles
Design
•Recording a Virtual User Profile
•Designing a Virtual User Profile
Building a Population
•Monitoring the Infrastructure
Runtime
Results
For Advanced Users
AGENDA

Why?
•Test usingdifferentbusiness behaviours.
•Test with specific network conditions.
•For example, test a web store by simulating 75% of users browsing the catalog (visitors),
20% carrying out a purchase through to its end (buyers) and 5% being administrators.
Building a Population

How?
Building a Population
Browser
selection
Populations
WAN
Emulation
Cache policy

Focus: Browser Picker
Building a Population
Simulate desktop, mobile
or tablet browsers

WAN Emulation
•All networks do not share the same characteristics.
•Typical characteristics are:
-Signal strength (for wireless networks)
-Bandwidth
-Latency
-Packets dropped.
•WAN emulation allows realistic network conditions.
Building a Population

WAN Emulation
•Settings available in the populations tab.
•Not configured by default (unlimited bandwidth, no packet loss, no latency).
•Pre-configured profiles carry real-world values.
•A LG may simulate several network conditions.
Building a Population
WAN emulation
profiles
WAN emulation
parameters

Objectives
Aftercompletingthisexercise, youwillbeable to:
•Createa complexpopulation.
Scenario
The population ‘PetstorePopulation’ is made of:
1.60% of ‘Searcher’.
2.40% of ‘Buyer’.
3.The ‘Searcher’ users do not use a cache; the other users have a full cache at the
beginning of the iteration.
4.50% of the ’Buyer’ users have an iPad and a 3G connection with a poor signal.
5.The rest of the ‘Buyer’ users have Chrome and a Wi-Fi connection with a medium
signal.
6.10 % of the ‘Searcher’ users have a custom browser (called ‘Proprio’) that uses 6
simultaneous HTTP connections.
Exercise11

Introduction
Load-Testing Principles
Design
•Recording a Virtual User Profile
•Designing a Virtual User Profile
•Building a Population
Monitoring the Infrastructure
Runtime
Results
For Advanced Users
AGENDA

Why?
•Without monitor, NeoLoad only retrieves the response times, the errors, the number of
hits and the throughput.
•Information from the server side is fundamental to perform an efficient analysis.
•Each layer of the architecture may be monitored (webservers, application servers,
database, network…).
Monitoring the Infrastructure

How?
•No installation on the server side.
•All actions are performed from the NeoLoad controller.
•Specific ports need to be open on the firewall.
•NeoLoad provides preconfigured counters.
Monitoring the Infrastructure

The Configuration
Monitoring the Infrastructure
Choose the layers
Set the
authentication
Choose the
counters

Monitoring Agent
•Simplified controller to agent communication.
•Single port (TCP 7200) to open in the controller to agent direction.
•Installed and started as separate process on the server side.
•MA and LG share the same color
code:
-Green: running
-Orange: different version
-Red: halted
Monitoring the Infrastructure

Objectives
Aftercompletingthisexercise, youwillbeable to:
•Use the NeoLoadmonitoring capabilities.
•Look at the architecture behaviourin real-time.
Scenario
1.Add a Tomcat 6 monitor (no authentication needed).
2.Add a MySQL monitor (authentication: monitor / no password).
3.Add a Windows monitor (localhost).
Exercise 12

The Thresholds: Why?
•Trigger real-time alerts during test runtime on performance counters.
-If CPU usage exceeds 80%
-If available memory falls below 15%
-…
•Highlight components that suffer a deterioration in performance during the load test.
•Alerts make understanding the causes of any bottleneck much easier.
Monitoring the Infrastructure

The Thresholds: How?
•Alerts are set on some counters by default.
•Alerts are identified by .
•Alert thresholds may be manually added.
•An alert may be of two sorts: warning or critical.
Monitoring the Infrastructure

Objectives
Aftercompletingthisexercise, youwillbeable to:
•Set thresholdsand alerts.
Scenario
1.Based on the previous exercise, set an alert on the Windows monitor that follows the
condition: if the percentage of memory used is greater than 98%, raise up a critical alert.
2.Set an alert on the Tomcat monitor that follows the condition: if the
currentThreadCount(HTTP)exceeds 20, raise up a warning alert.
Exercise13

Introduction
Load-Testing Principles
Design
Runtime
•Running the Test
Results
For Advanced Users
AGENDA

Setup and Watch
Running the Test
Test
completed
The runtime
settings
The real-time
analysis
You will
learn
Configuring the test
scenario
●The duration
●The load policy
●The LGs
●Advanced settings
Looking at the real-
time information
●Plot your graphs
●Correlate the data
●Check the errors
●Follow the VUs

Setup and Watch
Running the Test
Looking at the real-
time information
Test
completed
The runtime
settings
The real-time
analysis
Configuring the test
scenario
You will
learn

Definition
•The test configuration.
•Several test scenarios may be created (short ramp-up test, long peak test…).
•All settings required are defined and applied to a population:
-Test duration.
-Load policy.
-Load generators.
-Runtime policy.
Configuring the Test Scenario

Duration Policy
•Unlimited.
•Iterations.
•Time.
•Iteration mode:
-Each user is run for a predetermined number of iterations with no break between iterations.
-Towards the end of the test, some users are finishing their iterations and some others are still
active. As a consequence the load decreases until all the users are finished.
-For ramp-up or peak loads, adding users for a new phase takes place once all existing users
have finished their iterations (the load may drop to 0).
Configuring the Test Scenario

Load Policy
• Constant: generate a fixed number of VU.
• Ramp-up: generate a number of VU that increases throughout the test.
• Peak: generate a fixed number of VU with periodic phases of high load.
• Custom: set the load to be applied by plotting the VU variation curve.
Configuring the Test Scenario

Load Generators
•LGs may be manually added by entering:
-The machine's name.
-The IP address.
•LGs may be automatically discovered.
•Define from the advanced settings:
-The network interface card.
-The IP spoofing.
-The load factor.
-The upgrade.
Configuring the Test Scenario

The Cloud Load Generators: Why?
•Perform heavy load tests without hosting the necessary infrastructure.
•Load test applications from several geos.
•Test the entire delivery chain.
•Benefits of the hybrid approach: cloud LGs / on premise LGs.
Configuring the Test Scenario

The Cloud Load Generators: How?
Configuring the Test Scenario
Open the Cloud console
and choose an on-demand
or reserved session

The Cloud Load Generators: On-Demand Session
Configuring the Test Scenario
Choose the duration and the
geos for an immediate use

The Cloud Load Generators: Reserved Session
Configuring the Test Scenario
Book your session
online and use it later

The Cloud Load Generators: Managing the Session
Configuring the Test Scenario
Cloud and hosted LGs
are used the same way
The session is managed
from the console

Population Parameters
Configuring the Test Scenario
How VUs start
Start policy
Stop policy

Scenario Settings
Configuring the Test Scenario
URL filtering
Debug mode
settings
Runtime users and
monitoring parameters
Apply SLA

Scheduling aTest
•NeoLoad -project <file> -launch <scenario> [-options].
•Export SLA results in JUnitXML format.
•Generate reports (XML, HTML, JUnitXML).
•Publish results to the Neotys Team Server.
•Specify monitored hosts.
Configuring the Test Scenario

Setup and Watch
Running the Test
Configuring the test
scenario
Test
completed
The runtime
settings
The real-time
analysis
Looking at the real-
time information
You will
learn

Runtime Overview
•Time is absolute or relative (Preferences>General Settings>Advanced).
The Real-Time Information
Main statistics
LGs status
Runtime
information

Runtime Graphs
•Time is absolute or relative (Preferences>General Settings>Advanced).
The Real-Time Information

Runtime Errors
The Real-Time Information
Comparison
with record
Stop failed
VUs
Errors
Detail

Runtime Alerts
The Real-Time Information

Runtime Users
The Real-Time Information
Add / remove
VUs
Follow a VU

Objectives
Aftercompletingthisexercise, youwillbeable to:
•Set a load-test scenario and launcha test.
Scenario
1.Create a load test scenario called PetstoreScenario.
2.Make sure the population PetstorePopulation is active.
3.Define an increasing workload that starts with a single VU and adds an additional VU
every 15 seconds. Indicate the maximum number of VUs allowed by the training license.
4.Start the test with a duration of 5 minutes and explore the real-time data displayed
including:
-Overview data.
-Performance data for containers.
-Server-side metrics.
-Runtime errors, if any.
Exercise 14

Introduction
Load-Testing Principles
Load-Testing Principles
Design
Runtime
Results
•Analyzing the Results
For Advanced Users
AGENDA

Test Summary
Analyzingthe Results
Select a test result from
the drop-down list
Statistics and graphs
are displayed

Test Summary
Analyzingthe Results

Test Summary
Analyzingthe Results
Top 10 first alerts
Chronological chart

Test Summary
Analyzingthe Results
Cloud statistics

Values
Analyzingthe Results
Choose a statistic
Export aggregated or
raw data (only for
containers)
Filter data
Plot any element

Values
•Tree view mode
•List view mode
Analyzingthe Results

Graphs
Analyzingthe Results
Alerts and SLA
Percentile graphs
Choose the
statistics to plot

Memo: Graphs
•Zoom in with left mouse button selection.
•Export data with (CSV file or picture).
•Time, user load or monitor for horizontal axis.
•Plot percentile graphs.
•Do comparisons with the drop-down list.
•Use and create your own templates .
Analyzingthe Results

Errors
Analyzingthe Results
20.000 errors
displayed max
Request, response
or assertions
Error list
Detailed error
information
Detail of the
previous request

Alerts
Analyzingthe Results
Red zones for critical
alerts, yellow zones for
warning alerts
Alerts triggered on
performance counters
during the test

Logs
•Check the log files of the LGs and MAs.
Analyzingthe Results
Check the details
Select MAs or LGs
The log level

Results Manager
Analyzingthe Results
Tools
Time
Actions
Test preview
Test result list

Generating a Report
Analyzingthe Results
Select the output
Select the detail
Select the test

Objectives
Aftercompletingthisexercise, youwillbeable to:
•Createchartsshowingperformance indicators.
•Drilldownthrougha seriesof measurementsto highlightthe cause of an issue.
Scenario
Based on the previous exercise:
1.Determine the average duration for the container where the category is selected.
2.Determine the page with the slowest average response time.
3.With a graph template determine the ‘health’ of the LGs used in the test.
4.Examine the errors encountered during the test.
5.Check if the overall page response time changed when the user load increases.
6.Explore the impact the user load had on the number of Tomcat threads.
7.Determine whether the number of current Tomcat threads affects the amount of OS
memory available.
Exercise 15

For Advanced Users
Advanced Installation
•Servers
•Request & Page Settings
•Service Level Agreement
•Logical Actions
•Variables
•Data Exchange API
•Mobile Support
•Advanced Results
•The NeoLoad License
AGENDA

Using a Firewall
Advanced Installation
TCP 7100 CTRLLG
TCP 7200 CTRLMA
UDP 1359 LGCTRL
TCP 4569 LGCTRL
for the automaticdiscovery
function
Monitor
(optional)
NeoLoad Monitoring Engine
3G+H+ WiFi4G+
Controller
Command
Cloud Load Generators On-premise Load Generators
Load
APP
Application ServerDatabase ServerWebServer
TCP 7100 CTRLLG
TCP 443 CTRLLG

For Advanced Users
•Advanced Installation
Servers
•Request & Page Settings
•Service Level Agreement
•Logical Actions
•Variables
•Data Exchange API
•Mobile Support
•Advanced Results
•The NeoLoad License
AGENDA

The Graphical User Interface
Servers
•Servers are automaticallycreatedduringthe
record.
•The target server may be quickly changed.
•Variables may be used (load-balancing).
•Server sideauthentication.
•Filled in during the record.
•Accounts may be dynamic (variables).
•Automatic session tracking when cookies
are used.
•When detected during recording, the
argument is automatically filled in.

Authentication Mechanisms
•NeoLoad supports Basic,Digest,NTLMandNegotiate mechanisms.
•On standard environments, the default protocol for Negotiate is Kerberos. If Kerberos
fails, Negotiate tries NTLM. However, for performance reasons NeoLoad uses NTLM in
place of Kerberos.
•If Kerberos is absolutely required, NeoLoad configuration file needs to be modified.
•NeoLoad prioritizes schemes in the order Negotiate, NTLM, Digest and Basic.
Servers

URL Rewriting and Browser Profile
•Deactivation forces the server to use URLrewritingto keep the session alive.
Servers
Cookie activation

For Advanced Users
•Advanced Installation
•Servers
Request & Page Settings
•Service Level Agreement
•Logical Actions
•Variables
•Data Exchange API
•Mobile Support
•Advanced Results
•The NeoLoad License
AGENDA

Page Settings
Advanced Page Settings
Page resources
Request playback

Page Settings
•Request playback: NeoLoad plays the requests sequentially (by default requests are
played back in parallel).
•Dynamically execute the page resources: NeoLoad analyzes the HTML response of the
main request to execute dynamically the page resources.
•NeoLoad retrieves resources from the HTML code. Resources referenced by CSS style
sheets and JavaScript scripts are ignored. Also, this setting has no effect on the module
requests.
Advanced Page Settings

Request Settings
Advanced Request Settings
Change the
referrer
Encode or put an
equal
Response storage
Edit request
headers

For Advanced Users
•Advanced Installation
•Servers
•Request & Page Settings
Service Level Agreement
•Logical Actions
•Variables
•Data Exchange API
•Mobile Support
•Advanced Results
•The NeoLoad License
AGENDA

Why?
•Hard to define what ‘good performance’ is.
•User standpoint evolution:
-2006: 75% of users would not return to a website that take longer than 4 seconds (Akamai
research)
-2009: a website needs to load up in 2 seconds (Akamai research)
•As a consequence, assessment of the service quality must be defined with end users
and/or functional experts.
•These thresholds are called Service Level Agreement (SLA).
Service Level Agreement

Two Types of SLAs in NeoLoad
•Per run: evaluated at the end of the test.
•Per time interval: evaluated each time a result is received during test runtime (real-time
alerts).
Service Level Agreement

How?
Service Level Agreement
Check the
summary
Apply the profile
Threshold definition
(acceptable and
failed conditions)

Statistics on SLAs
Service Level Agreement
Check the status of
each SLA per profile
Check the status of
each SLA per VU

Edit SLA Profiles After a Test
•If an SLA profile is not enough accurate, it may be modified from the result manager.
•Transfer an SLA profile from Design to Results with to move it into several test results
and re-compute the result summary using the new configuration.
•Transfer an SLA profile from Results to Design with to copy it into the Design.
Service Level Agreement
Same options as
the Design

Objectives
Aftercompletingthisexercise, youwillbeable to:
•Applyservice levelagreementsthatmeetyourneeds.
Scenario
1.Open the project called ‘Training_Project’ (available on the resources page) and look at
the result called ‘Reference Test’.
2.Create a new SLA profile called ‘Reference’ following the criteria:
-Average response time per time interval must be less than 0.5 second.
-If the average response time per time interval is greater than 1 second the transaction must be
failed.
-The SLA profile must be applied to all containers of all VU profiles.
3.Once done, apply your changes and look at the results.
Exercise16

For Advanced Users
•Advanced Installation
•Servers
•Request & Page Settings
•Service Level Agreement
Logical Actions
•Variables
•Data Exchange API
•Mobile Support
•Advanced Results
•The NeoLoad License
AGENDA

Variable Modifier
•Used to modify the value of a variable before the value change policy is applied.
•Re-initialize or modify value (change policy is applied).
•Manage the Shared Queueactions.
LogicalActions

Fork
•Used to play actions in a different thread to the current one.
•When the VU main thread stops, all the threads created using Fork action are immediately
halted.
•Example of use, an action that plays every x seconds on the server to refresh a
component (Ajax, Flash plug-in…).
•Existing variable values may be copied locally. When a value is modified in another
thread, the variable value remains unchanged in the Fork action.
LogicalActions
Unchecked by
default

Wait Until
•Pauses the current execution thread until certain conditions have been verified.
•A condition is composed of two operands and an operator (except with Existsand
Doesn’t existoperators).
•A timeout may be defined. Once the delay is timed out, the thread is restarted. The
following action is then executed, even if the conditions have not been verified.
Logical Actions

Objectives
Aftercompletingthisexercise, youwillbeable to:
•Use the Forklogicalaction.
Scenario
1.Create manually a VU profile called ‘SearcherAndBrowser’ that only contains a Fork
action in the Actionscontainer.
2.Copy the content of the ‘Searcher’ in the main thread and the ‘Browser’ in the second
thread.
3.Check the ‘SearcherAndBrowser’. Observe the concurrency of both paths.
4.Create a variable called ‘isComplete’ that has two values, TRUEand FALSE.
5.Use a Wait Untilaction to have the main thread waiting for the end of second thread
before its execution.
6.Check the ‘SearcherAndBrowser’. Verify that it works as expected.
Exercise17

JavaScript
•Execute JavaScript in a VU profile.
•The NeoLoad API provides functions to manipulate variables and set up cookies.
•When using the LoggerAPI, information is written to the LG log file
(loadGenerator.log.00xin the Logs directory).
•Handle strings, dates, calculation...
Logical Actions

JavaScript
Logical Actions
Access the variable
manager
Get a value from the
variable manager
Log a message
Assign a value

Java and JavaScript
•Use Java classes and functions in JavaScriptactions.
•Copy the JAR files into <NeoLoad-project>/lib/jslib. The file is taken into
account automatically.
•The class names must be fully qualified within the JavaScript (even for the Java classes
likejava.util.List) and preceded byPackages. For example varobj= new
Packages.com.company.MyClass ();.
Logical Actions

JavaScript Libraries
•Create functions used in all the VU profiles.
•It helps reduce memory usage on the LGs, since the code stored in the libraries is shared
by the users.
Logical Actions

Objectives
Aftercompletingthisexercise, youwillbeable to:
•Insert a JavaScriptaction into the VU profile to perform specific actions.
Scenario
1.Add a JavaScriptaction to the ‘Buyer’ to log an entry every time an item is added to
the shopping cart.
2.Include a time-stamp for each log entry.
3.Add a second JavaScriptaction to retrieve the name of the LG to the log.
Exercise 18

Rendezvous
•Synchronize VUs to perform a specific task simultaneously.
•Create a precise load peak in the VU execution.
•Policies are global, regardless the number of LGs.
•Rendezvousmay be controlled from a JavaScriptaction.
LogicalActions
Timeout
Rendezvous
policies

Custom Action
•Takeadvantageof predefined‘high-level’ actions embeddedin NeoLoad
•Full GUI integration
•More to come on the Neotys Community
LogicalActions
The command line
action

Objectives
Aftercompletingthisexercise, youwillbeable to:
•Use the command line custom action.
Scenario
1.At the end of the ‘Buyer’, use a custom action to log the total price of the order into a file
(use the ‘Echo’ function).
2.The titleof the file must containthe instance numberof the VU beingexecuted.
Exercise19

For Advanced Users
•Advanced Installation
•Servers
•Request & Page Settings
•Service Level Agreement
•Logical Actions
Variables
•Data Exchange API
•Mobile Support
•Advanced Results
•The NeoLoad License
AGENDA

The Variable Manager
•Variables are created before the test is running.
•Depending on the policies, values are provided either by the controller or the LGs.
•With the Uniquepolicy, a NoUniqueValueAvailableException exception is logged
when there is no more available value.
Variables
Global
•Sequential
•Random
Unique
•Sequential
•Random
Local
•Sequential
•Random
•Any
Global
•Any
Values provided by
the LGs
Values provided by
the controller

SharedQueue: Why?
•Share dynamic content amongst VU profiles.
•A FIFO pile with the following constraints:
-When full, all new arrivals are lost.
-When empty, the requesting VU has to wait for a new arrival to be added.
•A swap file may be used to pre-populate the queue at the start of the test or to save it at
the end.
•The Check VU does not have any effect on the swap file.
Variables

SharedQueue: How?
Variables
Queue size
Timeout
(${queueName} is
returned when the
queue is empty)
Swap file

•Values are providedto the LGsby the controllerwhenthe test isrunning.
SharedQueue: How?
•Populatingthe SharedQueue
Variables
–Consumingthe
information
Select where the
value from the
queue is copied
Select the Shared
Queuethat contains
the information
Select the variable
to add
Select the Shared
Queueto populate

SharedQueue and JavaScript
•A Shared Queuemay be controlled by a JavaScriptaction.
•NeoLoad provides a comprehensive set of APIs.
•Main functions are:
-addSharedValue.
-createSharedQueue.
-getSharedQueueSize.
-peekSharedValue.
-pollSharedValue.
Variables

Objectives
Aftercompletingthisexercise, youwillbeable to:
•Sharedata accrosstwodifferentVU profiles.
Scenario
1.Duplicate the “Buyer” and call it “SQ_Buyer”.
2.In the ‘SQ_Buyer’, populate a Shared Queuewith the order number generated at the
end of the scenario.
3.Set the ‘SQ_Buyer’ authentication to j2ee / j2ee.
4.Record a new VU profile called ‘BuyOneItem’ that:
a.Logs in the Jpetstore.
b.Open the last order referred by the order number stored in the Shared Queue (manually alter
the URL in the browser using jpetstore/shop/viewOrder.shtml?orderId =1000for
the record).
c.Buys the first item that appears in the shopping cart.
d.Logs out.
5.Launch a test combining both ‘SQ_Buyer’ and ‘BuyOneItem’ to have the ‘SQ_Buyer’
creating a list of orders and the ‘BuyOneItem’ using that list.
Exercise20

JS Variable
•A variable computed by a piece of Javascript.
•A new function evaluatereturns the variable value:
function evaluate() {
return new function() {
this.firstField = "a value";
this.secondField = myLibraryFunction();
}
}
•The field values are accessed by ${<variable name>.col_<field
number>}or${<variable name>.<field name>} .
•The JavaScriptvariable isalwayscomputedon the LG sideduringthe test.
Variables

JS Variable
Variables
Script
Value change policy

For Advanced Users
•Advanced Installation
•Servers
•Request & Page Settings
•Service Level Agreement
•Logical Actions
•Variables
Data Exchange API
•Mobile Support
•Advanced Results
•The NeoLoad License
AGENDA

The Data Exchange API Module makes it easy
to integrate data from a third party tool
Why?
Data Exchange API

Why?
•RESTfuldata service based on the Open Data Protocol
•OData is a standardized protocol for creating and reading data APIs
•NeoLoad receives external data to generate the results displayed in the GUI
•More information here
Data Exchange API

How?
•NeoLoad Open API accepts JSON format
•Create your own scripts to send data to the NeoLoad Server from any application
Data Exchange API

Objectives
Aftercompletingthisexercise, youwillbeable to:
•Createyourscript to plot anyinformation fromanyapplication.
Scenario
1.Duplicate the buyer and call it “DEA_Buyer”.
2.In the ‘DEA_Buyer’, create a script that uses the Data Exchange API to plot the total
price of what the “DEA_buyer” buys.
3.Launcha test witha few virtualusersto seethe results.
Exercise21

For Advanced Users
•Advanced Installation
•Servers
•Request & Page Settings
•Service Level Agreement
•Logical Actions
•Variables
•Data Exchange API
Mobile Support
•Advanced Results
•The NeoLoad License
AGENDA

Mobile App Load Testing (Web-based and Native)
•Record native and web-based apps directly from the mobile device.
•Record web-based apps from the desktop browser with the Identify as feature.
•Generate realistic traffic with the WAN emulation.
Mobile Support

Recording Native and Mobile Web from Device
Mobile Support
Navigate as usual, the
traffic is recorded
Do not launch any
browser
Set the NeoLoad IP
and the recording port
Connect the device
(and NeoLoad) to a
WIFI network

Recording Native and Mobile Web from Device
Mobile Support
Parameters sent by
the mobile app
Server used by the
mobile app

For Advanced Users
•Advanced Installation
•Servers
•Request & Page Settings
•Service Level Agreement
•Logical Actions
•Variables
•Data Exchange API
•Mobile Support
Advanced Results
•The NeoLoad License
AGENDA

Debug Mode
•Look at how behave the VU profiles in detail once the test is completed.
•Start the debug mode with .
•Two modes available (scenario advanced settings):
-Only the iterations containing errors are displayed (default behaviour).
-All VUs iterations are displayed.
•Launching a scenario in debug mode may severely hamper performances.
Advanced Results

Debug Mode
Advanced Results
Open the Check
VU window
The VU iterations that
contain errors
The instance of the
VU containing errors

Filters
•Filter any test result by time, population, zone and error.
•When a filter is applied, a new set of results is created.
•Filtered results may be viewed and used as any other test runs.
•Test reports may be generated following the usual procedure.
Advanced Results

Filters
Advanced Results
Time filter Error filter
Zone filterPopulation filter

Analysis: a Multi-Tiers Architecture
Advanced Results
Web browser Web server App server DB server
Potential issues:
•Thread saturation
•Cache usage
Potential issues:
•Thread saturation
•Data pool saturation
•Internal application issue
(code, memory leak,
garbage collection…)
Potential issues:
•Cache usage
•Internal database issue
(no index, costly
requests, memory…)•Apache
•IIS
•Tomcat
•JBoss
•webLogic
•webSphere
•OAS…
•MySQL
•DB2
•Oracle
•MS SQL
•PostgreSQL
•Internet Explorer
•Firefox
•Chrome
•Opera
•Safari…

Analysis: HTTP Server Contention
•Adding workers (depending on server resources, especially CPU) or an additional Apache
server may improve the situation.
Advanced Results
Limit of the
busyworkeris
reached
Response times
are impacted

Analysis: App Server Contention
•Garbage collection causes the threads to be suspended (not the case with parallel
garbage collection). If it takes too long, response times are impacted.
Advanced Results
JVM overload
Response times
are impacted
Errors raise up

Analysis: Database Contention
•NeoLoad performance indicators give a detailed view of the most resource-hungry SQL
queries (Oracle and DB2 only).
•Such information helps optimizing SQL queries and validating the use of cache, memory,
sorts, indexes…
Advanced Results

Analysis: Network Contention
•In case of a network contention, if the time gap between response times and TTFB:
-Increases, that often indicates a network problem.
-Remains the same, that often indicates a server problem.
Advanced Results

Objectives
Aftercompletingthisexercise, youwillbeable to:
•Use the NeoLoadfeaturesto analyzea test result.
Scenario
1.Open the project called ‘Training_Project’ and select the test results (‘Charge_Prod_1’
and ‘Charge_Prod_2’).
2.Analyze both results by looking at the response times and each layer of the JpetStore
architecture.
Exercise 22

For Advanced Users
•Advanced Installation
•Servers
•Request & Page Settings
•Service Level Agreement
•Logical Actions
•Variables
•Data Exchange API
•Mobile Support
•Advanced Results
The NeoLoad License
AGENDA

A CombinationOf
The NeoLoadLicense
Numberof
VUs
Protocol
Modules
Monitoring
Modules

FREE STANDARD PROFESSIONAL ENTERPRISE ULTIMATE
SuggestedUsage
Developers and
testers running
small tests
One tester testing
one application at a
time
Teams testing one
application at a time
Organizations
testing multiple
applications
concurrently
Corporate CoEsand
teams needing to
run very large tests
Virtual Users 50 50 –1,000,000 50 –1,000,000 50 –1,000,000 1,000,000+
Protocols All Included
HTTP/S Included,
Others Optional
HTTP/S Included,
Others Optional
HTTP/S Included,
Others Optional
All Included
Command Line
Access     
Continuous
IntegrationPlugin     
Monitoring 
Optional   
Collaboration   
Integration&
Customization
•APM
•Data Exchange
API
•Custom Action
Extensions
Optional  
SharedLicense  
The NeoLoad License

Available Modules
The NeoLoad License
O/S Web Server DB Server AppServer Network Protocol Integration
Windows IIS MS SQL Server .NET SNMP SOAP
CA / dynaTrace /
AppDynamics
Linux Apache Oracle JBoss Flex
Solaris Nginx My SQL Tomcat Silverlight
IBM AIX DB2 WebLogic OracleForms
HP-UX PostgreSQL WebSphere GWT
Data Exchange API
VMWare MongoDB Oracle AS Java
RSTAT JOnAS Oracle Siebel
Adobe LCDS Push
GlassFish RTMP
Custom Actions
SAP NetWeaver
GenericJMX
Kaazing

Standard
•To be used on a single machine
•May be rent (a minimum of 8 days)
•Testing days must be consumed after
the license activation within ‘10 x days’
of the license term
Shared
•Installed on the Neotys Team Server.
•Minimum split is 5VUs.
•Modules available for each split.
•Cannot be rent.
The NeoLoad License

The No Key Mode
•Features
-Record, design and check new or
existing VUs.
-Set up already existing monitors.
-Analyze existing test results.
-Perfect to design before running a test.
•Limitations
-Tests cannot be run.
-No collaboration.
-No ‘Monitoring Data Import’.
The NeoLoad License

Thank you for attending this training
Other courses are available at www.neotys.com
Tags