Skip to content

Large-scale device load testing

Cloud Pile Connect provides a control plane + load agent architecture: deploy agents on your servers to simulate many YKC 1.6 or OCPP 1.6-J chargers on the LAN, then use the console to start/stop runs, monitor metrics, analyze timeseries, and generate load-test reports for capacity planning and protocol validation.

Protocol support

ProtocolSimulated debuggingSimulated load test
YKC 1.6YesYes
OCPP 1.6-JYesYes

For single-device debugging, see Quick start. This page focuses on load testing.

Architecture

The platform is the control plane; load agents run on your servers or PCs. The control plane creates plans, sends start/stop commands, collects metrics, and generates reports. Agents talk to your protocol server on the LAN, avoiding public-bandwidth bottlenecks. Scale horizontally with multiple agents as needed.

Load test architecture diagram

Load test architecture overview

Quick start (6 steps)

Step 1: Create a virtual device profile

Load-test plans bind to a virtual device profile (protocol behaviour, connector count, charging params). In the console: Virtual device → Virtual device config, add a profile with YKC1.6 or OCPP1.6-J.

Step 2: Create a load-test node

Open Virtual device → Stress nodes, click Add, enter a name, and save. The system assigns a node ID and token for agent authentication.

Create stress test node

Step 3: Deploy the load agent

For offline nodes, click Command in the list to view startup commands. After deployment, Online status shows Online.

Stress node list and agent startup command

When online, click the node name to open real-time status (CPU, memory, online devices, etc.).

Stress node real-time status

See Agent deployment below.

Step 4: Create a test plan

Open Virtual device → Test plans and configure:

FieldDescription
Server IP / portTarget charging platform protocol server
Virtual profileProfile from Step 1
Device countTotal simulated devices for this plan
Device codesSequential or custom encoding
Launch intervalDelay between each device coming online (ms)

Create load test plan

Step 5: Start the load test

On the Stress nodes list, for an online node click Launch, select a plan, and confirm. The device quota banner at the top shows your account limit; launches are blocked if quota is exceeded.

Launch load test plan

Step 6: Monitor, stop, and report

  • Load monitor: All running plans — online/target, connect P95, heartbeat RTT, SLA indicators (30 s refresh)
  • Stop: Click Stop on the node row and select running plans
  • Reports: Generated automatically when a plan stops; view, compare, and export under Load test reports

Load test monitor dashboard

Agent deployment

Run as JAR

Get the agent JAR

shell
java -jar \
  -DsecurityKey=YOUR_NODE_ID \
  -DsecurityToken=YOUR_NODE_TOKEN \
  ruoyi-device-agent.jar

Run with Docker (optional)

Use the image version shown in the console Command dialog. Example:

shell
docker run \
  -e JAVA_OPTS='-DsecurityKey=YOUR_NODE_ID -DsecurityToken=YOUR_NODE_TOKEN' \
  -v ./logs/agent:/ruoyi/device-agent/logs/ruoyi-device-agent \
  --name device-agent -d \
  registry.cn-guangzhou.aliyuncs.com/plus-prod/device-agent:2.6.2

Agent startup command in console

Startup parameters

ParameterMeaningDefault
securityKeyStress-test node ID from the systemRequired
securityTokenStress-test node token from the systemRequired
workingTimeSeconds after remote start until auto-stop (±15 s tolerance)
ctl.hostControl plane hostapi.qiulin2018.cn
ctl.portControl plane port80
ctl.pathWebSocket path/ctl/
ctl.sslUse SSLfalse

Console features

MenuCapabilities
Stress nodesNode CRUD, agent commands, launch/stop plans, stop orders, click name for status
Test plansPlan CRUD, run status, links to monitor / timeseries / reports
Load monitorRunning plans overview, online/target, SLA tags, 30 s refresh
Load metricsPlan-level timeseries (connect, RTT, business success rates, etc.)
Load test reportsHistory, compare two reports, Excel export
Plan groupsMulti-plan / multi-node aggregation, online reconciliation, group SLA
Node resource timeseriesAgent CPU, memory, bandwidth, device count curves

Plan load metrics timeseries

Load test reports

Load test report comparison

Node resource timeseries

Metrics and SLA

Agents report node resources and plan business metrics every 30 seconds. The console groups metrics as:

LayerExamples
ConnectionOnline count, connect P50/P95/P99, failures, disconnect/reconnect
ProtocolProtocol heartbeat RTT P50/P95/P99
BusinessRemote start/stop success, transaction closure rate, monitor-data jitter P95
StabilityFail reason TopN, frame rate snapshot
Node resourcesProcess/system CPU, heap, in/out bandwidth

SLA (reports and monitor): connect success ≥ 99%, heartbeat RTT P95 ≤ 3000 ms, transaction rate ≥ 99.5%. Plan groups can define custom SLA thresholds for reconciliation.

Quota and permissions

  • Each account has a device quota; check the banner before launching
  • Monitor, reports, plan groups, etc. require admin-assigned permissions
  • New deployments need menu SQL applied and services restarted

Use cases and limitations

Good for:

  • LAN capacity testing of YKC and OCPP charging platforms
  • Multi-node distributed simulation of many piles
  • Dev/test protocol validation and regression

Current limitations:

  • Reports use a stop-time snapshot; peak values are indicative, not full-run aggregation
  • Plan groups do not support one-click batch start/stop across nodes
  • Treat as MVP / internal beta; formal SLA gates need your own validation

FAQ

Where must load agents run?

Agents must reach your target protocol server. Same LAN as the server is recommended for bandwidth and stability.

How many devices per node?

Depends on machine specs and protocol load. Hard limit is your account device quota (see the quota banner).

When is a load test report generated?

After you stop a plan from the console or agent, the control plane generates a report automatically under Load test reports.

How do I run multi-node load tests?

  1. Create multiple nodes and deploy agents on different machines
  2. Create one plan per node (avoid overlapping device IDs)
  3. Launch each plan on its node
  4. Use Plan groups to aggregate total online count and per-node contribution

Is OCPP load testing supported?

OCPP 1.6-J and YKC 1.6 both support load testing. Choose the matching virtual device profile when creating a test plan; OCPP plans require the correct WebSocket path.

What if the agent shows offline?

Verify securityKey / securityToken and ctl.* connectivity, and check agent logs. Start/stop commands cannot be sent while offline.