Load Test Mode

Load Test Mode spins up many CPE devices at once to stress-test an ACS. You configure the ACS connection, a device data model (parameter tree), the batch size and behaviour options, then start the whole batch with one click.

Working with one device at a time — browsing its parameter tree, editing values, triggering individual TR-069 events, watching live logs? Use Single Emulator Mode instead. This page covers bulk load testing.

Getting Started

This walk-through takes you from a freshly started emulator to a running load test.

These steps assume the emulator is running and reachable at http://localhost:8555. If it is not, see Installation — Quick Start.

  1. Open http://localhost:8555 and choose Load Test Mode (direct URL: /load).

  2. In ACS Connection, set Protocol, Host, Port and URL Path. The full URL is shown below the form (e.g. http://localhost:8080/ftacs/ACS). Click Save.

  3. In Parameters XML, pick a Device Tree File that defines the CPE data model, then click Save. Upload a custom tree with Upload New if needed.

  4. In Emulator Configuration, set the batch size and behaviour:

    • Groups and Concurrent determine how many devices are created (≈ Groups × Concurrent).

    • Delay (ms) spreads registrations over time.

    • Enable the options you need (Periodic Inform, Connection Req, …​). Click Save Config.

  5. (Optional) In Updatable Parameters, add parameters that should change automatically during the test (see Updatable Parameters).

  6. Click Start (in the ACS Connection panel) to launch the batch. The header Total / Active counters reflect the running devices, and the bottom status shows Running.

  7. Click Stop to end the test and disconnect the devices.

Common Workflows

Task-oriented recipes. Each links to the detailed reference below.

Stress-test an ACS with N devices

  1. Configure ACS Connection and a Parameters XML tree.

  2. In Emulator Configuration set Groups and Concurrent to reach the target device count, and use Delay (ms) (and optionally Reg. Group) to control the registration ramp.

  3. Save Config, then Start. Watch the Total / Active counters in the header.

For very large counts, enable Lightweight mode and raise the JVM heap — see JAVA_OPTS and the load-test checklist.

Schedule a test to start later

Set Scheduled To (DD-MM-YYYY HH:MI:SS) in Emulator Configuration, Save Config, then Start — the batch begins at the scheduled time.

Simulate firmware transfers

Enable Transfer Emul and set a Transfer Delay (e.g. 0-100) so emulated devices report Download/Upload transfers with realistic timing.

Inject changing telemetry

Add entries under Updatable Parameters (e.g. an increasing byte counter or a random signal value). They mutate automatically while the test runs — see Updatable Parameters.

Drive the test from scripts

Every Load Test action maps to a /api REST endpoint (/api/properties, /api/paramsXml, /api/start, /api/stop, …​). See REST API — Load Test.

# Save config, then start the batch
curl -X POST http://localhost:8555/api/properties \
  -H 'Content-Type: application/json' \
  -d '{"protocol":"http","host":"acs","port":8080,"url":"ftacs/ACS","groups":10,"concurrent":5}'
curl -X POST http://localhost:8555/api/start

Control individual devices

Load Test Mode starts/stops the batch as a whole. To trigger events, browse the parameter tree, or read per-device logs, switch to Single Emulator Mode (or use the /apiV2 API).

Web Interface Overview

Open http://localhost:8555 and choose Load Test Mode (/load). The page is a responsive grid of collapsible panels (click a panel header to collapse/expand it).

TR-069 Emulator — Load Test Mode
Area Description

Header

Logo/title, live Total and Active device counters, and an API Docs link (Swagger UI). The back arrow returns to the landing page.

ACS Connection

Target ACS endpoint plus the Save / Start / Stop controls for the batch.

Parameters XML

Select, upload or delete the device-model XML used by the batch.

Emulator Configuration

Batch size (groups/concurrent), timing and behaviour options.

Updatable Parameters

Parameters that change automatically while the test runs.

Bottom bar

Status indicator (Ready / Running / …​) and the interface version (TR-069 Emulator Web Interface v4.1).

ACS Connection

Configure the connection to your ACS.

Field Description

Protocol

http or https

Host

ACS hostname or IP (e.g. localhost, 192.168.1.100)

Port

ACS port (e.g. 8080)

URL Path

ACS endpoint path (e.g. ftacs/ACS)

The full ACS URL is shown below the form (e.g. http://localhost:8080/ftacs/ACS).

Button Action

Save

Persist the ACS settings (POST /api/properties)

Start

Start the configured batch (POST /api/start)

Stop

Stop the batch (POST /api/stop)

Parameters XML

Manage the device-model XML files (served from the parameterstree/ directory).

Device Tree File

Select the XML file that defines the device data model (parameters, values, types). The dropdown lists every XML file available on the server.

Actions

Button Description

Save

Set the selected file as the active device tree (POST /api/paramsXml)

Del

Delete the selected file (the currently active file cannot be deleted)

Upload (with Upload New)

Upload a new .xml file to the server (POST /api/uploadParamsXml)

XML File Structure

<?xml version="1.0" encoding="UTF-8"?>
<device>
    <parameter>
        <name>Device.DeviceInfo.Manufacturer</name>
        <value>MyCompany</value>
        <type>string</type>
        <writable>false</writable>
    </parameter>
    <!-- More parameters... -->
</device>

Starting & Stopping the Batch

The Start and Stop buttons live in the ACS Connection panel and act on the whole batch using the saved configuration:

  • Start — creates the configured devices (≈ Groups × Concurrent) and registers them with the ACS, honouring Delay (ms) and Scheduled To.

  • Stop — stops and disconnects all running devices.

The header Total / Active counters and the bottom status bar reflect the current state.

Emulator Configuration

Configure batch size, timing and behaviour, then click Save Config (POST /api/properties).

Numeric Settings

Field Description

Groups

Number of device groups to create

Concurrent

Devices per group / concurrent registrations

Reg. Group

Registration group identifier

Delay (ms)

Delay between device registrations (milliseconds)

Scheduled To

Schedule the start (DD-MM-YYYY HH:MI:SS); leave empty to start immediately

Transfer Delay

Delay (range/CSV, e.g. 0-100) applied to emulated transfers when Transfer Emul is enabled

Task Execution Delays

Hold the emulated CPE for a number of seconds before it processes each ACS task, modelling real-CPE "thinking time". The section is collapsed by default — click the Task Execution Delays (seconds) header to expand it. There is one field per TR-069 task type — GetParameterValues, SetParameterValues, GetParameterNames, Get/SetParameterAttributes, Add/DeleteObject, Download, Upload, Reboot, FactoryReset, ChangeDUState (TR-157) and GetRPCMethods — each defaulting to 11 seconds. Set a field to 0 to disable the delay for that task, or enter a value next to Apply to all to fill every task type at once. The delays apply globally to every device and are persisted with Save Config (POST /api/properties); the section does not need to be expanded for its values to be saved. See EmulatorPropertiesDto for the exact JSON field names.

Emulator Configuration — Task Execution Delays expanded

The badge next to the section title summarises the current values without expanding the section: all N s when every task type shares the same delay, disabled when all delays are 0, or custom when they differ. The expanded/collapsed state is remembered by the browser (local storage), so the section stays the way you left it across page reloads.

Options

Option Maps to

Description

Periodic Inform

periodicInformEnabled

Send periodic Inform messages to the ACS

Connection Req

connectionRequestEnabled

Accept ACS-initiated Connection Requests (requires the listener on port 9999 — see Connection Request Host)

No Initial Inform

withoutInitialInform

Skip the initial 0 BOOTSTRAP/1 BOOT Inform when a device starts

Random Retry

randomRetryCount

Randomise retry counts on connection failures

Transfer Emul

transferEmulation

Emulate firmware Download/Upload transfer operations

Lightweight

loadingMode

Lightweight (Inform-focused) mode — reduces per-device work for maximum scale

File Log

fileLogEnabled

Write a per-device log file

Monitoring the Batch

While a test runs, the header shows live Total and Active device counts and the bottom bar shows the run status.

Per-device inspection (parameter tree, event invocation, live logs) is not part of Load Test Mode — use Single Emulator Mode for a single device, or the /apiV2 REST API for scripted per-device control.

Updatable Parameters

Configure parameters that change automatically during the test — useful for simulating sensor data, counters or signal metrics.

The list shows configured parameters (name | type | stepType); each has a delete button.

Add a Parameter

Field Description

Name

Full parameter path (e.g. Device.WiFi.Radio.1.Stats.BytesSent)

Type

INT, STRING or BOOL

Step

Update mode: RANDOM, INCR (increment) or DECR (decrement)

Min / Max

Value range (numeric types)

Step (numeric)

Step size for increment/decrement

Click Add to append the parameter; the list is saved via POST /api/updatableParameters.