result-api-scaled-2-500rps.json
Overview
The `result-api-scaled-2-500rps.json` file is a structured JSON report representing performance testing metrics for an API under a scaled load scenario targeting 500 requests per second (RPS). It captures detailed statistical data about HTTP request timings, throughput, error rates, and virtual user (VU) activity collected during a test run lasting approximately 300 seconds.
This file is typically generated by a load testing tool (e.g., [k6.io](https://k6.io/)) to provide insight into the system's behavior and performance under sustained traffic load, assisting developers and DevOps teams in identifying bottlenecks, stability issues, and verifying SLA compliance.
File Structure and Contents
The JSON structure is organized into top-level keys:
root_group: Metadata about the top-level grouping of the test scenario.options: Configuration options used during the test.state: Runtime state details about the test execution environment.metrics: The core performance metrics collected during the test.
Detailed Explanation of Sections
1. root_group
{
"path": "",
"id": "d41d8cd98f00b204e9800998ecf8427e",
"groups": [],
"checks": [],
"name": ""
}
Purpose: Describes the hierarchical groupings of requests or scenarios in this test. Here, it is empty indicating a flat or single scenario test.
Fields:
path: The hierarchical path of the group (empty here).id: Unique identifier for the group.groups: Nested groups (empty array here).checks: Validation checks applied (empty).name: Name of the group (empty).
2. options
{
"summaryTrendStats": ["avg", "min", "med", "max", "p(90)", "p(95)", "p(99)", "count"],
"summaryTimeUnit": "",
"noColor": false
}
Purpose: Defines reporting options for summary statistics.
Fields:
summaryTrendStats: List of statistical measures shown in summaries (average, min, median, max, percentiles, count).summaryTimeUnit: Unit to display time values (empty indicates default).noColor: Flag to disable color in terminal output (false here).
3. state
{
"isStdOutTTY": true,
"isStdErrTTY": true,
"testRunDurationMs": 300399.202744
}
Purpose: Provides runtime environment information.
Fields:
isStdOutTTY: Boolean indicating if standard output is a terminal.isStdErrTTY: Boolean indicating if standard error is a terminal.testRunDurationMs: Duration of the entire test run in milliseconds (~300 seconds).
4. metrics
The largest section, containing multiple named metrics objects, each describing a specific measurement tracked during the test.
Explanation of Key Metrics
Each metric entry has:
type: The metric type, e.g.,"trend","counter","rate", or"gauge".contains: The type of data, usually"time"(milliseconds),"default", or"data".values: An object with statistical values relevant to the metric.(Optional)
thresholds: Pass/fail criteria for the metric.
Metric Types and Their Meaning
Trend: Measures timings, reporting distribution statistics (avg, min, max, percentiles).
Counter: Counts occurrences or volume (e.g., number of requests).
Rate: Percentage or ratio (e.g., failure rate).
Gauge: Snapshot values (e.g., current VU count).
Selected Important Metrics
Metric Name | Description |
|---|---|
`http_req_blocked` | Time spent blocked before sending the HTTP request (DNS lookup, socket acquisition). |
`http_req_connecting` | Time spent establishing TCP connection. |
`http_req_tls_handshaking` | Time spent performing TLS handshake for HTTPS connections. |
`http_req_sending` | Time spent sending the HTTP request to the server. |
`http_req_waiting` | Time waiting for the server to send response headers (TTFB - Time To First Byte). |
`http_req_receiving` | Time spent receiving the response data from the server. |
`http_req_duration` | Total duration of the HTTP request from start to finish (sum of above phases). |
`http_req_failed` | Rate and counts of failed HTTP requests. |
`http_reqs` | Total number of HTTP requests made during the test. |
`iterations` | Number of completed iterations (test script loops). |
`vus` / `vus_max` | Number of Virtual Users active during the test (min/max values). |
`data_sent` / `data_received` | Amount of data sent and received in bytes during the test. |
`dropped_iterations` | Number and rate of iterations dropped (e.g., due to overload). |
`iteration_duration` | Duration of each iteration cycle. |
Example Metric Interpretation
`http_req_duration` has:
avg: 246.9 ms (average request duration)min: 124.2 ms (fastest request)max: 15773.6 ms (slowest request)p(95): 403.4 ms (95th percentile)count: 147,795 requests total
The 95th percentile is below the threshold of 800 ms, indicating acceptable performance under test conditions.
Important Implementation Details / Algorithms
Metrics use standard statistical calculations to summarize large volumes of timing data, including percentiles (p90, p95, p99) which help identify outliers and tail latency.
Thresholds allow automated pass/fail evaluation of critical performance criteria, enabling CI/CD integration.
The file captures both raw counts and rates (per second) to provide throughput insights.
Grouping structure supports complex test scenarios with nested subgroups and checks, although not used here.
Interaction with Other System Components
This JSON file is an output artifact typically generated by a load testing framework during or after executing a test script against an API endpoint.
It can be consumed by:
Reporting tools or dashboards that visualize test results.
Automated CI/CD pipelines to gate deployments based on performance.
Monitoring and alerting systems to track SLA compliance.
Performance engineers for root cause analysis and optimization.
The file complements test scripts and configuration files that define the test scenario, load profile, and target system.
Usage Example
A developer or performance engineer may use this file as follows:
# Run a load test (example command, depending on tool)
k6 run --out json=result-api-scaled-2-500rps.json test-script.js
# Analyze results programmatically (e.g., parse JSON)
python analyze_results.py --input result-api-scaled-2-500rps.json
# Visualize key metrics in a dashboard
load_test_reporter --input result-api-scaled-2-500rps.json --dashboard
Mermaid Flowchart Diagram
Below is a flowchart representing the main sections and metric relationships in this JSON file:
flowchart TD
A[Root Group]
B[Options]
C[State]
D[Metrics]
D --> M1[http_req_blocked]
D --> M2[http_req_connecting]
D --> M3[http_req_tls_handshaking]
D --> M4[http_req_sending]
D --> M5[http_req_waiting]
D --> M6[http_req_receiving]
D --> M7[http_req_duration]
D --> M8[http_req_failed]
D --> M9[http_reqs]
D --> M10[iterations]
D --> M11[vus & vus_max]
D --> M12[data_sent & data_received]
D --> M13[dropped_iterations]
D --> M14[iteration_duration]
A --> B
A --> C
A --> D
style A fill:#f9f,stroke:#333,stroke-width:2px
style D fill:#bbf,stroke:#333,stroke-width:1px
Summary
This JSON file is a comprehensive snapshot of API performance metrics under a 500 RPS scaled load test.
It uses structured metric types and statistical values to detail request timings, error rates, throughput, and user simulation.
The data supports performance evaluation, SLA verification, and system tuning.
It integrates with testing frameworks, analysis pipelines, and monitoring tools as a key performance artifact.
**End of documentation**