The core load-test.exe engine is built for reliability. It follows a strict precedence contract: CLI Flags > JSON Script Config > Environment Variables.
1. Installation & Environment Prep
Before running load tests, ensure the Chromium engine and OS dependencies are installed on your worker nodes.
// Windows / PowerShell
.\OS_Scripts\Install-Playwright-Chromium.ps1 -BinDir "C:\FWL\bin"
2. Base Commands
| Command |
Behavior |
load-test.exe | Opens the visual editor (defaults to recording.json). |
load-test.exe -edit <file.json> | Opens the editor directly on the specified script. |
load-test.exe -replay <file.json> | Executes the script in headless mode by default. |
3. Replay & Orchestration Options
These flags control the concurrency, speed, and behavior of the browser workers.
| Option |
Description |
Example |
-runXUser <N> |
Concurrency: runs up to N users in isolated contexts. |
-runXUser 50 |
-useDatabank <sel> |
Databank index: 1, N, or random. |
-useDatabank random |
-recycleUsers |
Recycles databank users when the end of the file is reached. |
-runXUser 100 -recycleUsers |
-replaySpeed <X> |
Scaling factor for waits (e.g., 2 = 2x faster). random uses jitter. |
-replaySpeed 2.5 |
--dry-run |
Validates JSON and summary without launching browsers. |
--dry-run |
-withUX |
Shows the browser windows (Headful mode). |
-withUX |
-outDir <path> |
Sets the root directory for artifacts and reports. |
-outDir "C:\Runs" |
-chromePath <path> |
Override path to Chromium/Chrome binary. |
-chromePath "/usr/bin/google-chrome" |
-baseUrlOverride <url> |
Overrides the script base URL for navigation. |
-baseUrlOverride "https://staging.acme.com" |
4. Advanced Orchestration (Internal Contracts)
Used primarily by shard-run or cloud orchestrators to manage sync points and distributed state.
| Flag |
Environment Variable |
Description |
-runSlot <N> |
RUN_SLOT |
Identifies the node slot (e.g., worker-1). Mapped to FWL_RUN_ID. |
-cloudTaskKey |
FWL_CLOUD_TASK_KEY |
Unique key for identifying the run in SaaS/Cloud APIs. |
-cloudSyncTimeoutSec |
FWL_CLOUD_SYNC_TIMEOUT |
Wait time for distributed sync points (JSON-only support). Default 600s. |
5. Vitals & Metrics Tuning
Control the overhead of telemetry collection for massive scale runs.
| Option |
Description |
Default |
-noVitals |
Completely disables browser vitals collection. |
Enabled |
-maxVitalsPerMinute <N> |
Caps the sampling rate of vitals per user. |
60 |
-runtimeMetricsIntervalMs |
Interval for browser resource sampling (CPU/RAM). |
5000ms |
-noBrowserSnapshot |
Disables screenshots and trace snapshots for maximum throughput. |
Enabled |
6. The Deterministic Engine
Futuristic Webload differs from traditional tools by using a Time-Independent Replay logic. Instead of hardcoded "Wait 5s" commands, the engine observes the state of the DOM and the network to determine when it is safe to proceed, ensuring your tests don't flake during server-side lag.
Sync Points
In distributed runs, workers can be configured to "Wait for Go" at specific steps. This allows you to coordinate 10,000 users to click "Submit" at the exact same millisecond, creating a true peak-load spike.
7. Environment Fallbacks
| Variable |
Fallback For |
FWL_CLIENT_CERT_PASSWORD | -clientCertPassword |
FWL_CAPTCHA_BYPASS_LICENSE | -captchaBypassLicense |
FWL_NETWORK_POLICY_PATH | -networkPolicy |
FWL_IDENTITY_INJECTION_FOLDER | -identitiesFolder |
8. Practical Examples
Multi-Environment Testing
Run the same recording.json against different environments without modifying the script:
// Test against Staging
load-test.exe -replay recording.json -baseUrlOverride "https://staging.myapp.com"
// Test against Production
load-test.exe -replay recording.json -baseUrlOverride "https://prod.myapp.com"
Extreme Load Optimization (10k+ Users)
When scaling to massive numbers, disable all heavy telemetry to minimize node CPU/RAM usage:
load-test.exe -replay recording.json -runXUser 200 -noVitals -noBrowserSnapshot
Longevity & Soak Testing
Keep the load constant by recycling databank users indefinitely:
load-test.exe -replay recording.json -runXUser 50 -recycleUsers
Headful Debugging
Watch exactly what the browser is doing during a failure:
load-test.exe -replay recording.json -withUX -replaySpeed 0.5
Using External Databanks
Inject a fresh dataset without touching your main script file:
load-test.exe -replay recording.json -databankFile "prod_users.json" -useDatabank random