NeoLoad® Documentation
Getting Started
Overview
Welcome to NeoLoad Help
Contents
Formats
Legal Issues
About Load Testing
Why Load Test Web Applications ?
Load Testing with NeoLoad
Installation
Requirements
Operating System
Disk Space
CPU & Memory
Installation
Installing the Controller
Installing a Load Generator
License Key Management
The Standard Key
Definition
Installing the license key
Activating the license key
Transferring the license key
The Floating Key
Definition
Installing the floating key
Reserving a floating key
Releasing a floating key
Changing Mode
Switching from a standard license to a floating license
Switching from a floating license to a standard license
Running NeoLoad
Running the Controller
Running the graphical interface
Running from the command line
Using NeoLoad with ANT
Launching the Load Generator Agent
Stopping the Agent
Files
The Installation Directory
The User Directory
Agent started as a Windows service
Load generator logs
Project Directory
Log Files
Advanced Installation
Using a Firewall Between the Controller and Load Generator
NeoLoad and Windows XP SP2 Firewall
Increasing Available Memory for Load Generators
Increasing Available Memory for the Controller
Quick Start
Recording the Test Scenario
Running the Test
Test Results
To Learn More
Reference Guide
Menus
Preferences
Global Preferences
HTTP Recorder Settings
Proxy Settings
Browser Settings
Skins
Graphs
Runtime graphs
Result analysis graphs
Frameworks
License
Oracle Forms
General settings
Session settings
Adobe Flex/AMF
AMF error code handling
Advanced Parameters
Project Preferences
Page Naming Policy
SSL Client Certificates
Importing certificates
The Recording Certificate
Playback certificates
Example
Security concerns
Runtime
JavaScript
Error handling
Statistics
Oracle Forms
Libraries Manager
Adobe Flex/AMF
Adobe AMF Server
GraniteDS AMF Server
Adobe RTMP
Google Web Toolkit
Java Serialization
CA Application Performance Management
Install the Synthetic User Field Pack extension in the CA APM agent
Enable and configure CA APM support in NeoLoad
CA APM support enabled in NeoLoad
Categories to be included in the request path
Enable tracing by virtual user
dynaTrace
Activating support for dynaTrace
Activating automatic session recording for a test
dynaTrace 2.X
dynaTrace 3.X
Design
Recording a Test Scenario
Recording HTTP Applications
Set-up
SSL support
Manually configuring the recording proxy settings
Filtering out unwanted requests
Recording Adobe RTMP Applications
How it's done
Limitations
Starting Recording
Creating a Virtual User Profile
Supported browsers
The Recording Bar
Post-Recording Wizard
Troubleshooting
Servers
Authentication
Supported authentication mechanisms
The Negotiate scheme with SPNEGO and Kerberos
Scheme priority order
Virtual Users
Creating a Virtual User
Virtual User Runtime Settings
Stop conditions
Think time
Tasks
Customizing a Virtual User
Virtual user content
Editing a virtual user
Adding an element
Deleting an element
Moving an element
The pop-up menu
Checking a Virtual User
Summary
Request
Pages
HTML page rendering
Advanced settings
Export
Import
Web pages
Requests
HTTP Requests
Type
Use a manual definition
Request parameters
Parameter Name
Parameter Value
POST parameters
POST requests with binary content
POST requests with text content
Multi-part POST parameters
Fields specific to the file part
Follow the redirect of the previous request
Follow a link from the previous request
Request parameters
Parameter Name
Parameter Value
Example
Submit a form from the previous request
Defining the form to be extracted
Request parameters
Parameter Name
Parameter Value
Example
SOAP requests
Creating a SOAP request
Recording a SOAP request
Editing a SOAP request
Editing the parameters extracted from the WSDL
Parameters
Headers
Advanced
XML preview
Editing the XML content
Flat XML
XML Tree
Preview
Configuring the "SOAPAction" HTTP header
Testing a SOAP request
Oracle Forms Requests
Overview
Configuring NeoLoad
Configuring the Oracle Forms Server
Recording Oracle Forms Requests
Recording SSL-Secure Oracle Forms Requests
User interface
Editing a request in text mode
Editing a request in advanced mode
Rules for using variables
Validating an XML response
Extracting variables in an XML response
Adobe Flex/AMF requests
Overview
AMF streaming
Post-Recording Wizard
Recording SSL-secure Adobe Flex/AMF requests
Recording requests with an Adobe AIR application
Introduction
Prerequisites
Configuring the recording and proxy settings
Identifiers handled by NeoLoad
User interface
Editing a request in text mode
Editing a request in advanced mode
Rules for using variables
Validating an XML response
Extracting variables in an XML response
Adobe RTMP Requests
Overview
RTMP channel
Post-Recording Wizard
Recording SSL-secure Adobe RTMPT requests
Identifiers handled by NeoLoad
SWF Verification
Disabling SWF verification
Ignoring SWF verification for NeoLoad
User interface
Editing a request in text mode
Editing a request in advanced mode
Rules for using variables
Validating an XML response
Extracting variables in an XML response
Google Web Toolkit requests
Overview
Post-recording wizard
User interface
Editing a request in text mode
Editing a request in advanced mode
Rules for using variables
Validating an XML response
Extracting variables in an XML response
Java Serialization Requests
Overview
Recording a Java Serialization request
Post-Recording Wizard
User interface
Editing a request in text mode
Editing a request in advanced mode
Rules for using variables
Validating an XML response
Extracting variables in an XML response
Polling Requests
Overview
Polling request specificities
Multi-response request
Push message container
Response time calculation
Creating a polling request
Streaming Requests
Overview
Streaming request specificities
Holding request
Multi-response request
Push message container
Response time calculation
Creating a streaming request
Push Messages
Overview
Defining a Push message
Using messages in profiles
Push message response times
AMF, RTMP and RTMPT frameworks
ICEfaces and Lightstreamer frameworks
Advanced parameters
Variable extractors
Validation
Validation
Duration
Content length
Reply content
Variable Extractors
Advanced Parameters
Shortcuts
Logical Actions
Delay
Loop
While
If ... Then ... Else
Variable Modifier
Containers
Random Containers
Try ... Catch
Stop Virtual User
Fork
How it works
The case of variables
Limitations
Wait Until
JavaScript
How it works
What you can do
What you cannot do
JavaScript actions
Creating a JavaScript action
Editing a JavaScript action
Errors
JavaScript libraries
Creating a JavaScript library
Editing a JavaScript library
API overview
Execution context
Managing Variables
Logger
Error management
Adding a cookie
Script example
Java Libraries
Rendezvous
Using rendezvous points
About rendezvous
Creating a rendezvous
Defining the attributes of a rendezvous action
Configuring a scenario's rendezvous
Overview
Enabling/disabling a rendezvous
Defining a rendezvous' release policy
Frequently-asked questions
How are the released users allocated?
Several users have the same rendezvous (rendezvous points with the same name). How are the lined-up users released?
Frameworks
Concept
Framework Dynamic Parameter Handling
Settings
Configuring a dynamic parameter
Managing frameworks
Managing framework dynamic parameters
Importing/Exporting
Generic Dynamic Parameter Handling
How it works
Example
Searching for Dynamic Parameters in NeoLoad
Push Frameworks
Context
Definition
Modified Virtual Users
Polling
Streaming
Push messages
Frameworks
AMF Polling
AMF Streaming
RTMP
RTMPT
ICEfaces
Lightstreamer Polling
Lightstreamer Streaming
Shared Containers
Sharing a Container
Using a Shared Container
Actions on Shared Containers
Populations
Percentage
Bandwidth
Browser
Use cookies
Connection
Cache management
Variables
Creating a Variable
Value change policy
Variable scope
The Variable Extractor
Testing a Variable
Using Variables
Search and Replace
Overview
Search Criteria
Search in request definitions globally
Search in request parameters
Search in URLs
Search in request headers
Search for a server in request definitions
Replacements
Flags
Flagging Criteria
Scope
Importing and exporting a project
Importing a project
Exporting a Project
Monitors
Overview
Presentation
Creating and Configuring a Monitored Machine
Creating a monitored machine
Configuring a monitored machine
Definition
Monitoring
Creating and Configuring a Monitor
Creating a monitor
Configuring a monitor
Definition
Properties
Connection status
Creating and Configuring a Counter or an Indicator
Creating a counter or an indicator
Configuring a counter or indicator
Definition
Properties
Advanced settings
Setting and Configuring a Counter Alert Threshold
Setting a counter alert threshold
Configuring a counter alert threshold
Thresholds definition
Operating Systems
Linux Monitor
Supported versions
Connection settings
Creating a Linux monitor
Available counters
Solaris Monitor
Supported versions
Connection settings
Creating a Solaris monitor
Available counters
AIX Monitor
Supported versions
Connection settings
Creating an AIX monitor
Available counters
HP-UX Monitor
Supported versions
Connection settings
Creating an HP-UX monitor
Available counters
Microsoft Monitors
Definition
Connecting to a remote server
Microsoft Windows Monitor
Connection Settings
Creating a Windows monitor
Available counters
Network
RSTAT Monitor
Connection settings
Creating an RSTAT monitor
Available counters
SNMP Monitor
Connection settings
Creating an SNMP monitor
Adding counters
Databases
Oracle DB monitor
Supported versions
Connection settings
Creating an Oracle monitor
Available counters
Microsoft SQL Server Monitor
Supported Versions
Connection settings
Creating an SQL Server monitor
Available counters
MySQL Monitor
Supported versions
Connection settings
Creating a MySQL monitor
Available counters
DB2 Monitor
Configuration
Supported versions
Connection settings
Creating a DB2 monitor
Available counters
PostgreSQL Monitor
Supported versions
Connection settings
Creating a PostgreSQL monitor
Available counters
Web/EJB Tier
Microsoft IIS Monitor
Supported Versions
Connection settings
Creating an IIS monitor
Apache Monitor
Configuration
Configuring the Apache server
Using custom counters
Connection settings
Creating an Apache monitor
Available counters
Apache web server
Other web servers
Microsoft .Net Monitor
Supported Versions
Connection settings
Creating a .NET monitor
Available counters
WebLogic 8 Monitor
Configuration
Connection settings
Creating a WebLogic 8 monitor
Available counters
WebLogic 9/10 Monitor
Configuration
Connection settings
Creating a WebLogic 9/10 monitor
Available counters
WebSphere Monitor
Configuration
WebSphere 6.0 configuration
WebSphere 6.1 configuration
WebSphere 7.0 configuration
Supported versions
Connection settings
Creating a WebSphere monitor
Available Counters
JBoss Monitor
Configuration
JBoss 4.X configuration
JBoss 5.X configuration
Supported versions
Connection settings
Creating a JBoss monitor
Available counters
Tomcat 5.5/6.0 Monitor
Configuration
Connection settings
Creating a Tomcat monitor
Available counters
Oracle Application Server 9.X-10.X Monitor
Configuration
Supported versions
Connection settings
Creating an Oracle Application Server 9.X-10.X monitor
Available counters
Oracle Application Server 10.1.3 Monitor
Configuration
Supported versions
Connection settings
Creating an Oracle Application Server 10.1.3 monitor
Available Counters
JOnAS Monitor
Supported versions
Connection settings
Creating a JOnAS monitor
Available counters
GlassFish Monitor
Supported versions
Connection settings
Creating a GlassFish monitor
Available counters
SAP NetWeaver Monitor 7.0
Supported versions
Configuration
Connection settings
Creating a SAP NetWeaver monitor
Available counters
SAP NetWeaver Monitor 7.1
Supported versions
Configuration
Connection settings
Creating a SAP NetWeaver monitor
Available counters
LiveCycle Data Services Monitor
Supported versions
Connection settings
Creating a LCDS monitor
Available counters
Runtime
Test Settings
Scenarios
Duration Policy
Load Policy
In standard mode:
In iteration mode:
Load Generator Hosts
Advanced host configuration
Network
Configure IP spoofing
Load balancing
Automatically updating load generators
Population Advanced Settings
Runtime policy
Scenario Advanced Settings
General information
Rendezvous policies
Scheduling a test
URL exclusion filter
Runtime supervision
Starting the Test
Stopping the Test
Runtime Overview
Graphs
Load generators
Real-Time Graphs
Filtering by load generator, population or virtual user
Working with graphs
Graph features
Restoring default graphs
Plotting interval
Alerts
Real-Time Errors
General error information
Selected error details
Request
Server response
Assertions
Previous request
Real-Time Alerts
Alert details
Alert graphs
Viewing Virtual Users in Real Time
Virtual user information
Virtual user run monitoring
Results
General Information
Selecting a Test
Deleting a Test
Filtering by Load Generator, Population or Virtual User
Virtual User, Container, Web Page and HTTP Request Statistics
Push Message Statistics
The Results Manager
Select
Compare
Filtering
Test folder
Generating a Report
Deleting a Test
Test Summary
Selecting a Summary
Content
Test summary
Statistics summary
Hot spots
Top 5 errors
Top 5 alerts
First critical alerts
Top 5 average response times
Top 5 maximum response times
Top SQL requests
Errors
Alerts
General statistics
Virtual user, container page and request results
Monitor results
Alert results
Scenario
Main graphs
Graphs
Working with Graphs
Selecting a graph
Plotting a statistic
Plotting a monitor
Deleting a graph
Deleting a graph curve
Moving a graph
Maximizing/minimizing a graph
Graph Features
Zoom
Pop-up menu
Caption bar
Alerts
Features Specific to the Results Section
Exporting data
Options
Deleting all graphs
Percentile graphs
Using graph templates
Comparing test results
Scale factor
Values
Element Types
Results Table
Virtual user statistics
Performance counter statistics
Advanced statistics
Plotting Curves
Indicators
Exporting Data
Errors
General Information
Detailed Error Information
Selected Error Details
Request
Server response
Assertions
Previous Request
Alerts
General Information
Alert Information
Alert Graphs
Graph options
Debug
General User Runtime Information
Validating a User's Runtime
Reports
The Report Wizard
Report Type
Report Contents
Output Options
Format
Presentation
Output
Open
Test Results Comparison
Comparing Results in the GUI
Launching a comparison
Using the GUI
Returning to Standard mode
Generating a Comparison Report
Test Result Filters
Filtering in the GUI
Available Filters
Time period filter
Time Period Selection Wizard
Application example
Population filter
Application example
Load generator filter
Prerequisite
Application example
Error filter
Application example
Filtering Test Results
Generating a Filtered Test Report
User guides
Design User Guide
Key Steps
To Learn More
Oracle Forms User Guide
Overview
Prerequisites
Configuring NeoLoad
Configuring the Oracle Forms Server
Examples of Recordings
Preview
Message Object
Message Structure
Request Naming
Advanced Configuration
General Settings
Project Settings
Advanced Design
Understanding the Context
A Component's Life cycle
Correlating Dynamic Component Names
Limitations
Best Practices
Design
Validation
Runtime
Troubleshooting
Design
Runtime
Best Practices
Defining Objectives
Types of objective
Defining criteria for success or failure
Producing a Realistic Test
Defining the number of Virtual Users.
Defining several types of Virtual Users
Using different user accounts and values
Testing load balancers
Simulating actual user bandwidth
Tips
Making your Results Talk
Producing informative results
Validating key pages
Beginning with low volumes
Stopping Virtual Users containing errors
Using Containers
Configuring monitors
Using results
Comparing results
Using filters
Interpreting the advanced statistics
Correlating statistics and monitors
Managing test results
Heavy Load Testing Guide
Introduction
NeoLoad Scenarios
Minimize the Number of Validations
Avoid Validations and Extractions on Bulky Inputs
Optimize Regular Expressions
Optimize Extractions from XML Responses
Avoid Multiplication of Virtual Users
Minimize the Use of JavaScript Actions
NeoLoad Controller
Launch Scenarios with a Fixed Duration
Monitor Using a Top-down Approach
Avoid Debug Mode
Warm Up Your Application Server
Plan for Large Amounts of Memory for the NeoLoad Controller
Reduce Error Management
Save your Projects Locally
Adapt the Controller/Load Generator Time Limit to Your Specific Project Requirements
NeoLoad Load Generators
Allocate Sufficient Memory to the Machines Hosting Controllers and Load Generators
Make Sure the Machines Running the Generators are Adequately Dimensioned
Caution when using virtual environments
Network Tuning and Configuration
Increase the Number of Simultaneously Opened Sockets
Use Several Network Cards for Load Generators
Distribute NeoLoad Communication Channels Over Different Networks
Prefer a "Server" Tagged Operating System for your Application Servers
Tutorials, F.A.Q and Troubleshooting Guide
F.A.Q
General
Design
Runtime
Analysis
Errors
Troubleshooting Guide
Tutorials
Introduction
Design - General
Creating Business Transactions
Understanding the Context
Example Overview
Building the Business Transaction when Recording
Building the Business Transaction after Recording
Building a Population and a Scenario
Analyzing Business Transaction Results
Related Links
Logging in With Multiple Accounts Using a CSV File
Creating and Linking a CSV Variable to Login Information
Creating and Defining a CSV Variable
Link the CSV Variable to Login Information
Link the CSV Variable for Basic and NTLM Authentication
Link the CSV Variable for Form Based Authentication
Multiple Accounts Using the Post-Recording Wizard and a CSV file
Multiple Accounts with Basic or NTLM Authentication
Multiple Accounts with Form-Based Authentication
Creating Realistic Populations
Validating a Server Response
Understanding the Context
Adding Validations to an HTTP response
Related Links
Executing Java Code
Introduction
Operation and Syntax
Writing the Java Code
Configuring NeoLoad
Preparing the Data
Designing the Virtual User
Validating the Virtual User
Tests and Results
Related Links
Design - Dynamic Parameters
Choosing a Data Extraction Method
Introduction
Extraction Methods
Framework Parameters
Handling an Application's Dynamic Parameters
Understanding the Problem
Running the Virtual User Validation
Identifying the Request Containing the Error
Identifying the Parameter to be Handled
Making the Parameter Dynamic Automatically
Globally Replacing a Parameter in a Recording
Re-checking the Virtual User
Making the Parameter Dynamic Manually
Searching for the Request whose Response Contains the Value to be Extracted
Extracting the Parameter Value
Globally Replacing the Parameter in the Recording
Re-checking the Virtual User
Additional Links
Creating a Variable Extractor
Understanding the Problem
Extracting Contents and Assigning it to a Variable
Using the Variable
Related Links
Submit a Form from the Previous Request
Understanding the Problem
Extracting and Re-injecting a Hidden Dynamic Value
Learning More about Form Extractors
Related Links
Follow a link from the previous request
Understanding the Problem
Ensure this Tutorial Applies to your Case
Following a Link Using an Attribute's Value
Following a Link Using the Definition
Using Framework Parameters to Automatically Search for Dynamic Parameters
Understanding the problem
Example
How a framework parameter works
Creating a framework parameter
Accessing framework parameters
Changes Implemented in the scenario
Design - Technologies
SOAP: Testing Web Services
Understanding the Context
Manually Defining a SOAP Request Based on a WSDL Definition
Manually Defining a SOAP Request From Ground up
Using the Variable Extractor
Recording a SOAP Request
A Quick Tour on Analyzing SOAP Results
Adobe Flex/AMF: Handling External Libraries
Understanding the Context
Recording AMF0 Requests
Recording AMF3 Requests
Fixing an AMF3 Request Post-Recording
Adobe Flex/AMF: Handling Polling and Streaming
Understanding the context
Defining a virtual user using polling-type AMF requests
Defining a virtual user using streaming-type AMF Requests
Adobe RTMP : Handling External Libraries
Understanding the context
Recording RTMP requests
Fixing an RTMP request after recording
Google Web Toolkit: Managing External Libraries
Understanding the Context
Recording GWT Requests
Fixing a GWT Request Post-Recording
Java Serialization: Handling External Libraries
Understanding the context
Recording Java Serialization requests
Fixing a Java Serialization request after recording
Oracle Forms: Designing a Scenario with Iterations
Understanding the Context
Prerequisites
Installing the Demo Applications
Creating a User
Configuring NeoLoad
Configuring the Oracle Forms Server
Recording the Scenario
Variabilizing the Scenario
Designing the Iterations
Configuring the Project
Validating the Virtual User
To Learn More
Analysis
Analyzing Errors in the Errors Panel
Understanding the Context
Checking a Virtual User's Validity
Analyzing Errors on a Scenario Run
Related Links
Comparing Several Test Results
Understanding the Context
Comparing Results in the GUI
Comparing Results in Reports
Miscellaneous Items
Monitoring an Application Server or Database
Understanding the context
Adding and defining monitors
Configuring the monitor
Checking the connection
Monitor information
Viewing the monitor information during a scenario's run
Combining NeoLoad statistics with monitor information
Using Additional Load Generators
Understanding the context
Installing a Load Generator
Running a Scenario Using Several Load Generators
Related Links
Scheduling a Test
Scheduling a Test with NeoLoad
Scheduling a Test with the OS
Appendix
Regular Expressions
Overview
Introduction
Using regular expressions
Quick Reference
Special character definitions
Character classes
Pre-defined character classes
Examples
Extracting a URL parameter value
Extracting a Form Parameter Value
Extracting from a text field
Extracting from a hidden field
Extracting from a radio button
Extracting from a checkbox
Extracting from a list
Extracting HTTP headers
Extracting miscellaneous values
Common Errors & Tips
Use of the question mark '?'
Brackets
Spaces
Multi-Line
Links to Regex Resources
Links to Regex Testers
Status Code Definitions
Informational 1xx
100 Continue
101 Switching Protocols
Successful 2xx
200 OK
201 Created
202 Accepted
203 Non-Authoritative Information
204 No Content
205 Reset Content
206 Partial Content
Redirection 3xx
300 Multiple Choices
301 Moved Permanently
302 Found
303 See Other
304 Not Modified
305 Use Proxy
306 (Unused)
307 Temporary Redirect
Client Error 4xx
400 Bad Request
401 Unauthorized
402 Payment Required
403 Forbidden
404 Not Found
405 Method Not Allowed
406 Not Acceptable
407 Proxy Authentication Required
408 Request Timeout
409 Conflict
410 Gone
411 Length Required
412 Precondition Failed
413 Request Entity Too Large
414 Request-URI Too Long
415 Unsupported Media Type
416 Requested Range Not Satisfiable
417 Expectation Failed
Server Error 5xx
500 Internal Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout
505 HTTP Version Not Supported
NeoLoad Status Codes
NeoLoad Javascript API
Class Logger
Synopsis
debug(String)
error(String)
fatal(String)
info(String)
isDebugEnabled()
isErrorEnabled()
isFatalEnabled()
isInfoEnabled()
isWarnEnabled()
warn(String)
Class RendezvousManager
Synopsis
hasRendezvous(String)
isEnabled(String)
setEnabled(String, Boolean)
unblock(String)
unblock(String, int)
unblockAll()
Class RuntimeContext
Synopsis
currentVU
variableManager
fail()
fail(String)
fail(String, String)
Class VariableManager
Synopsis
changeValue(String)
getValue(String)
parseString(String)
setValue(String, String)
Class VirtualUser
Synopsis
id
name
get(Object)
put(Object, Object)
remove(Object)
setCookieForServer(String, String)
stop()
Glossary