Metrics to Measure
About
Load testing is not just about sending traffic — it’s about measuring the right system behaviors under stress. The success of a load test depends heavily on the metrics you capture, how you interpret them, and whether they align with your performance goals.
This section outlines the most important categories of metrics to track during load testing, across system layers and target types.
Category
Metric
What It Measures
Why It Matters
Where It's Relevant
User-Facing Performance
Response Time (Avg, P95, Max)
Time taken to serve a request (including network, processing, DB)
Indicates latency under load; high percentiles expose tail-end latency and bottlenecks
API, UI, Backend
Throughput (TPS, RPS)
Requests/transactions processed per second
Shows system's processing capacity and how it scales
API, Messaging, Backend
Error Rate (%)
% of failed requests (4xx, 5xx, timeouts, validation errors)
Affects user experience, SLA compliance, and system correctness
API, UI, Backend
Concurrent Users / Sessions
Simultaneous users or sessions being handled
Determines concurrency limits and helps validate user load handling
All
Request Completion Rate
Total successful vs attempted requests
Verifies system stability; low completion rate under load may indicate failures or dropped requests
All
Infrastructure & System
CPU Utilization (%)
CPU usage per service, container, or node
High CPU causes thread delays, processing lag, and degraded throughput
Backend, DB, Load Generator
Memory Usage (Heap/Non-Heap)
RAM used during test; includes garbage-collected memory
Memory leaks or GC pressure can slow the app or crash it
Backend, JVM Apps
GC Activity (JVM)
GC frequency, pause duration, memory reclaimed
Long GC pauses cause latency spikes and request timeout
JVM-Based Apps
Disk I/O
Read/write latency, IOPS, queue time
Affects DB performance, logging, and caching behavior
DB, File-Intensive Apps
Network I/O
Bytes sent/received, latency
Measures external call impact, CDN load, or backend communication lag
API, Integrations, Messaging
Load Generator Usage
Resource utilization of load testing tool
Ensures tool doesn’t become the bottleneck and can handle simulated load
Load Generator
Database Behavior
Query Execution Time
Average and percentile durations for key queries
Identifies slow DB operations and poor indexing
API, Backend, DB
Connection Pool Usage
Active, idle, waiting, and maxed-out connections
Pool saturation delays backend responses and increases error rates
Backend, DB
Slow Query Count
Number of queries exceeding performance threshold
Highlights inefficient or blocking queries
DB
Lock Contention / Deadlocks
Time spent waiting for locks or number of conflicts
Indicates concurrency issues or poor transaction design
DB
Transaction Rate
Total commits/rollbacks per second
Reveals DB’s processing throughput, especially for write-heavy workflows
DB
Application Runtime
Active Thread Count
Number of currently executing threads
Reflects service load; rising threads may indicate pooling issues or blocking I/O
Backend, Microservices
Thread Pool Utilization
Thread pool in-use vs available threads
Full pools mean requests queue or time out
Backend
Request Queuing Time
Time a request waits before being processed
Helps detect queue saturation and slow backend response
Async Services, APIs
Queue Depth (Messaging)
Length of processing queues (e.g., Kafka, RabbitMQ)
Backlogs show consumer underperformance or processing delay
Messaging, Event-driven Systems
Retry / Fallback Counts
Circuit breaker or retry invocations
Excessive fallback shows downstream fragility or threshold breaches
Microservices
Functional Correctness
Business Flow Success Rate
% of transactions that completed the full functional flow
Validates that core business actions succeed under stress (e.g., order placed, payment complete)
All
Data Integrity Issues
Duplicate, missing, or corrupted data under concurrency
Ensures correct handling of concurrent operations and transactions
DB, Backend
Side-Effects Validity
Were all expected updates, logs, messages created?
Confirms completeness of side operations like audits, event pushes, etc.
Backend
Execution Details
Test Ramp-up Duration
Time taken to reach full user load
Helps observe system behavior as load increases gradually
All
Steady-State Duration
How long the system was tested under full load
Important for soak or endurance testing, revealing gradual degradation
All
Requests Sent vs Scheduled
How many requests were planned vs how many were executed
Detects tool-side issues or throttling limits on request injection
All
Script / Assertion Failures
Errors from broken scripts or failed test assertions
Ensures script validity; separates tool errors from app behavior
All
Last updated