Testing

What is Performance Testing?

Performance testing measures how a system behaves under load, identifying bottlenecks, scalability limits, and degradation points before they affect production users.

By the Hyrax team·4 min read·May 1, 2026
TL;DR
  1. 1.Types of Performance Testing
  2. 2.Performance Testing Tools
  3. 3.Key Metrics
  4. 4.Performance Testing and Autonomous Code Governance
  5. 5.Frequently Asked Questions

Performance testing is a type of non-functional testing that evaluates how a system performs under specific conditions — load, stress, volume, and endurance. Unlike functional testing that verifies correctness, performance testing verifies speed, scalability, stability, and resource utilization. It identifies bottlenecks before they affect real users.

Types of Performance Testing

Load Testing

Simulates expected production load to verify the system meets performance requirements under normal conditions. Load tests answer: does the system handle our expected peak traffic while meeting response time SLAs?

Stress Testing

Pushes the system beyond its expected capacity to find breaking points and observe failure behavior. Stress tests answer: what happens when traffic exceeds capacity, and does the system fail gracefully?

Spike Testing

Applies sudden, sharp increases in load to test the system's response to rapid traffic changes. Important for applications that experience sudden viral traffic.

Endurance Testing

Runs the system at sustained load over an extended period to detect memory leaks, connection pool exhaustion, and degradation that only manifests over time.

Scalability Testing

Tests whether performance scales linearly as resources are added, and identifies the point of diminishing returns or non-linear degradation.

TypeLoad PatternPrimary Question
LoadExpected peakDoes it meet SLAs under normal load?
StressBeyond capacityWhere does it break and how?
SpikeSudden surgeHow does it handle rapid traffic spikes?
EnduranceSustained over timeDoes it degrade over hours or days?
ScalabilityIncremental increaseDoes performance scale with resources?

Performance Testing Tools

  • k6 — modern, developer-friendly load testing with JavaScript scripting
  • Locust — Python-based load testing with a web UI
  • JMeter — Apache-backed; feature-rich with a GUI and XML test plans
  • Gatling — Scala-based with excellent reporting; code-first test definitions
  • Artillery — Node.js-based with YAML configuration; integrates with CI

Key Metrics

  • Response time — time for the system to respond to a request
  • Throughput — requests processed per second
  • Error rate — percentage of requests resulting in errors
  • P95/P99 latency — tail latencies that affect the slowest users
  • CPU and memory utilization during load
  • Connection pool and database query latency

Performance Testing and Autonomous Code Governance

Hydra tracks performance test baselines and can flag pull requests that introduce significant regression in throughput or latency. When a dependency update or refactoring degrades p99 latency beyond a configured threshold, Hydra surfaces the finding in the PR review, preventing performance regressions from silently accumulating into production.

Frequently Asked Questions

When should performance testing happen in the development lifecycle?

Performance testing should be part of the CI/CD pipeline for critical paths. Lightweight load tests can run on every PR; full stress tests can run nightly or before major releases. Treating performance as a non-functional regression test prevents gradual degradation.

What is the difference between latency and throughput?

Latency is the time to process a single request. Throughput is the number of requests processed per unit of time. They are related but distinct: a system can have high throughput with high latency, or low latency with low throughput.

What is a percentile latency (p95, p99)?

P99 latency is the response time that 99% of requests fall below. It captures the experience of the slowest 1% of users, which average latency masks. Tail latency is critical for user experience because slow responses are disproportionately impactful.

What causes gradual performance degradation?

Common causes include memory leaks, unclosed connections accumulating in connection pools, growing database query times as data volumes increase, and cache eviction increasing as traffic grows. Endurance tests are designed to catch these.

Frequently Asked Questions

What is the difference between load testing and stress testing?

Load testing validates behavior under expected peak load. Stress testing pushes beyond capacity to find breaking points.

What is p99 latency?

The response time that 99% of requests fall below, capturing tail latency that average metrics hide.

When should performance testing run?

Lightweight load tests in CI on critical paths; full stress tests nightly or before major releases.

What causes gradual performance degradation?

Memory leaks, connection pool exhaustion, growing database query times, and cache saturation that accumulate over time.

Stop flagging. Start fixing.

Hyrax reviews your pull requests, remediates issues autonomously, and closes the ticket.

Join the waitlist