Generate and run performance tests for your RIO Server using k6 or JMeter
TLOGic's Load Test tab allows you to generate complete test packages for industry-standard load testing tools. Use your actual TLOG transactions to simulate realistic store traffic against your RIO Server, measuring performance, throughput, and identifying bottlenecks.
TLOGic provides everything you need - just install the testing tool and run! Each exported package includes:
script.js - Complete test script, ready to executeconfig.json - All configuration settingsdata/transactions.json - Your TLOG transaction dataREADME.md - Detailed usage instructionsrun.sh / run.bat - One-click run scriptsrio-load-test.jmx - Complete test plan, ready to openconfig.properties - All configuration settingstransactions.csv - Your TLOG transaction dataREADME.md - Detailed usage instructionsNo scripting required! Simply install k6 or JMeter, extract the ZIP, update the server URL in the config file, and run.
The Load Test feature generates complete, self-contained test packages that you can run immediately on your own infrastructure. TLOGic does all the heavy lifting - generating scripts, encoding transaction data, and configuring test parameters. You just need to install the testing tool and run. TLOGic supports two popular load testing frameworks:
A modern, developer-friendly load testing tool written in Go. Uses JavaScript for test scripts with powerful CLI options.
The industry-standard Java-based load testing tool with a graphical interface and extensive plugin ecosystem.
| Criteria | k6 | JMeter |
|---|---|---|
| Best For | Developers, CI/CD automation, modern workflows | QA teams, complex test scenarios, GUI-based testing |
| Learning Curve | Easy if you know JavaScript | Moderate - GUI helps but can be complex |
| Resource Usage | Very low (Go-based) | Higher (Java-based) |
| Scripting | JavaScript (ES6) | XML + optional Groovy/BeanShell |
| Distributed Testing | Via k6 Cloud or custom setup | Built-in master/slave architecture |
Click the Config button in the Load Test tab to customize these settings:
| Setting | Default | Description |
|---|---|---|
| Service URL | (required) | Your RIO Server endpoint URL (e.g., https://rio.example.com/api/tlog) |
| Start Store | 1001 | First store number in the simulation range |
| End Store | 3200 | Last store number in the simulation range |
| Max Concurrent | 2200 | Maximum number of concurrent virtual users (stores) |
| Ramp Up (seconds) | 30 | Time to gradually increase to max concurrent users |
| Duration (minutes) | 5 | How long to sustain peak load |
| Ramp Down (seconds) | 30 | Time to gradually decrease users after test |
| Delay Min/Max (ms) | 100-500 | Random delay between requests per store (simulates real behavior) |
| Basic Auth User/Pass | (optional) | Credentials for HTTP Basic Authentication |
| Format | BBBY | RioRequest format identifier |
| Division | 05 | Division code for RioRequest |
| UTC Offset | -05:00 | Timezone offset for transaction timestamps |
k6 run script.jsInstall k6 on your testing machine. This only needs to be done once:
After exporting and extracting the k6 package, edit config.json:
maxConcurrent values (e.g., 100) for initial testing, then gradually increase to find your server's limits.
k6 displays a summary in the console after each run:
Key metrics to monitor:
java -version)After exporting and extracting the JMeter package:
rio-load-test.jmxThe test plan includes:
Edit the User Defined Variables in the test plan:
| SERVICE_URL | Your RIO Server endpoint |
| AUTH_TOKEN | Base64-encoded credentials (leave empty if not needed) |
| THREADS | Number of concurrent threads (stores) |
| RAMP_UP | Ramp-up period in seconds |
| DURATION | Test duration in seconds |
Click the green play button in the JMeter toolbar.
Parameters:
-n: Non-GUI mode-t: Test plan file-l: Log file for results-e: Generate HTML report-o: Output folder for HTML reportJMeter provides several ways to analyze results:
-e -o flags)Key metrics in JMeter reports:
| Average | Mean response time in milliseconds |
| 90% Line | 90th percentile response time |
| Error % | Percentage of failed requests |
| Throughput | Requests per second |
| KB/sec | Data transfer rate |
serviceUrl is correct and accessiblecurl -v https://your-rio-server/api/tlogbase64(username:password)maxConcurrent or thread count