Know your baseline
Knowing your baseline metrics is a critical first step before embarking on performance testing. Baseline metrics provide a quantifiable foundation that represents the performance of your system under normal conditions. These metrics can include response times, throughput rates, resource utilization levels (such as CPU, memory, disk I/O), and error rates.
Having a well-defined baseline simplifies validating enhancements, as improvements can be measured against established benchmarks. The testing feedback cycle will be guided by these targeted optimizations.
Know your test inputs/stages
After establishing your baseline, it is crucial to understand the specific test inputs for various types of performance tests. Test inputs, in performance testing, encompasses the volume of data or number of requests, as well as the time frame over which these are delivered to the system – also known as ‘stages’ (ex. ramping 100 requests over 5 min, and then 400 requests over 10 min).
For instance, in load testing, stages are designed to gradually increase the number of requests over time to mimic expected user traffic, allowing for the observation of system behavior under normal to peak loads. Stress testing, employs stages that rapidly escalate beyond typical load levels to identify the system’s breaking points. Endurance testing uses prolonged stages to assess the system’s performance over an extended period, highlighting issues like memory leaks.
Know where to look
To derive actionable insights, it is essential to focus on areas that directly correlate with your baseline metrics. For instance, examining spikes in response times or increased error rates during peak load stages can pinpoint potential bottlenecks. Similarly, a sudden drop in throughput may indicate a network bottleneck or database performance. Same goes for finding trends, throughput vs bandwidth, and other stability indicators under load.
By adeptly navigating these reports and correlating findings with specific test stages and conditions, you can uncover performance issues and opportunities for optimization.
Conclusion
Before selecting a tool or diving into any kind of performance testing, it is – just like any other type of testing – important to understand the goal of the tests. This non-functional type of testing focuses more on performance than output correctness, but should still fail on invalid outputs, just not in the same wy as unit/integration/system tests.
Grasping key performance metrics such as response time, throughput, latency, bandwidth, and standard deviation is fundamental. This knowledge equips you with the ‘language’ of performance testing, enabling identification and resolution of performance-related issues more quickly.
Thanks for reading!
Stijn
Subscribe to our RSS feed