Skip to content

What is Performance Testing#

Performance testing is a non-functional software testing technique that determines how the stability, speed, scalability, and responsiveness of an application holds up under a given workload. It’s a key step in ensuring software quality, but unfortunately, is often seen as an afterthought, in isolation, and to begin once functional testing is completed, and in most cases, after the code is ready to release.

Importance of Performance Testing#

Application Performance Testing, or Performance Testing for short, is vital in guaranteeing that your software meets performance testing to verify whether an application can handle thousands of users logging in simultaneously or executing different actions concurrently. Through such tests, you can pinpoint and eliminate any performance bottlenecks within the application.

Types of Performance Testing#

  • Load Testing - Tests system behavior under expected loads
  • Stress Testing - Pushes the system beyond It’s limits to assess failure points
  • Scalability Testing - Evaluates how well a system scales with increased users
  • Soak Testing - Examines system stability over extended periods
  • Spike Testing - Tests sudden surge in user activity

Performance Testing Process#

  1. Prepare the environment and select the testing tool - Set up a test environment that mimics production, including hardware, software, and network settings. Use real devices and monitoring tools for accuracy. For example, a virtual machine running Grafana, Prometheus and k6 could be a test environment.

  2. Define performance testing objectives - Set clear goals to evaluate response time, scalability, and system limits under different workloads.

  3. Create test scenarios - Design realistic user workflows, define load conditions, and select key performance metrics to simulate real-world usage.

  4. Execute - Run performance tests using tools like K6 or JMeter, monitor system behavior, and record results for analysis.

  5. Debug and repeat - Analyze test results, identify bottlenecks, optimize system performance, and re-run tests to validate improvements.

Key Performance Indicators (KPIs) for Performance Testing#

Deriving results from performance testing can be done corresponding metrics or KPIs, for example:

  • Memory: The amount of RAM a system requires or utilises when it is processing data and executing an action.
  • Latency/Response Time: The latency between an incoming user request and the start of the system response is an essential factor to consider.
  • Throughput: The amount of data processed by the system over a given period.
  • Bandwidth: The data transmission capacity of one or more networks per second is considerable.
  • CPU interrupts per second: Hardware interruptions a system encounters while processing data.
  • Speed: The speed at which a webpage containing multiple elements like text, video, images, etc., loads.