Wilson Mar bio photo

Wilson Mar

Hello. Hire me!

Email me Calendar Skype call 310 320-7878

LinkedIn Twitter Gitter Google+ Youtube

Github Stackoverflow Pinterest

Load generation




The application that NeoLoad uses as a sample, JPetStore is not installed and needs to be. Refer to the page Here,


openmentor.net YouTube channel has severl videos based on v4 in 2014:

  1. Record and Validate Vuser

  2. Poplulations, Vuser Iterations

  3. Ramp-up users

  4. Pass Parameters

  5. Correlation



Clicking on the blue question mark icon at the top of the app takes you NeoLoad’s internal web server at port 50000:

Also available over the internet at:



“User Paths” in NeoLoad is equivalent to “scripts” in other apps. This is apropo because NeoLoad aims to provide check boxes where other apps require additional coding.

The trouble with a UI is that one must remember where the UI element is located and what happens when one checks each box.

Neoload’s various UI forms is obtained by a hierarchy of buttons. Three larger menu buttons in the middle of the heading brings up a different lower-level menu button. Each of the 3 larger buttons is for a phase of the workflow.

  1. Design: User Paths, Populations, Monitors
  2. Runtime: Scenarios, Graphs, Erros, Alerts, Users
  3. Results: Summary, Values, Graphs, Erros, Alerts, Logs, Details

Before recording

Browser Configuration

  1. Get in Properties > General Settings > Browsers.

    Select the default browser.

  2. Quit that browser. In fact, all browsers, and all other apps.

    Like many other similar tools, NeoLoad records by attaching itself to a browser’s process and capturing network transmissions in and out of it. So stray transmissions for other programs may be picked up, and require manual effort to remove (a hassle).

    ADVANTAGE: NeoLoad records in Safari browser.

  3. Get in Properties > General Settings > HTTP Recorder.
    NeoLoad provides a list of domains that it will ignore, a time-saving feature not available in most of its competitor’s apps.

  4. Add other URLs to the exclusion list.

    Each specification is a RegEx format. Thus, a question mark after https so that both http and https are recognized. A .* is added at the end for any folder or file name added to the host name.

    PROTIP: One line is used for each resource.

    • https://clients2.google.com/
    • https://translate.googleapis.com/
    • https://www.googleapis.com/
    • https://clients4.google.com/
    • https://clients1.google.com
    • http://cache.pack.google.com/
    • https://ssl.gstatic.com/
    • https://www.gstatic.com/
    • https://safebrowsing.google.com/
    • https://safebrowsing-cache.google.com/

User workflow

PROTIP: It is common industry best practice to have a written plan of what your users will be doing. This document will also make it easier for others understand what the script is supposed to do.

See the post about JPetStore for a description of steps and how they are used to focus performance testing.

Proxy or Tunnel recording conditions

  1. PROTIP: Find out if your server under test supports HTTP/2 (h2), Websockets, or Adobe RTMP (Real Time Messaging Protocol for Flex AMP), so you can check or uncheck the appropriate box in Advanced.

    If you don’t know whether your application makes use of HTTP/2, put its public URL in this website tool:


  2. Identify what percentage of visitors are returners?

    When starting from a clear cache on the client, the browser must load all resources.

    Since returning users have their cache filled, less downloading occurs than a completely new visitor. The difference can be very significant.

  3. Uncheck “Clear cache” if you are recording in the middle of a workflow sequence.

QUESTION: How to establish cookies and cache as starting points in NeoLoad?


  1. File New project.

    If you type a dash, a space, or other character it doesn’t like, “The project name is invalid” appears.

    PROTIP: Use underline characters to separate words.

  2. Click Finish.

  3. If the Quick Start dialog appears, uncheck “Display next time”, then “Start recording”.


NeoLoad works much like JMeter’s UI by requiring right-click action on the list at the left of the screen.

PROTIP: Liberally use abbreviations in names because there is not many characters visible.

Post Recording

In the tree, there is a line for each resource requested.

Internally, the “script” is stored as an minified XML file within the config.zip file.

### URL Variable

  1. Click the Variables icon.

    Define a variable for the domain, which will change when the script is used on different environments. For example:


    URL Parametization

    Replace URLs captured with the variable between curly braces:

  2. Click the Variables icon.

    Flag requests to correlate

    Right-click on User Paths to select Flag Requests, or press command-G.

    Correlation Framework

    Make NeoLoad remember custom correlations so it’s done automatically next time you record again.

Check User Path

  1. Click Check User

PROTIP: With Registration functionality, use “First time”. Others should use a returning user. To do otherwise would have the script download instead of re-using what’s already in the browser cache.

Logical actions

In Design, Virtual Users, the list of “Actions” on the lower-left panel is called the Logical Actions.


“Populations” in NeoLoad specify WAN emulation which imposes delays experienced by various mobile network types and speeds.

Further Reading