Delivery Manager, Arctern
Abhinav is having 15 Years of Experience in Software Testing, Test Automation, Product Release Ma... more>>
Best Practices for Performance Testing
I. Clear the application and database logs after each performance test run. Excessively large log files may artificially skew the performance results.
II. Identify the correct server software and hardware to mirror your production environment.
III. Use a single graphical user interface (GUI) client to capture end-user response time while a load is generated on the system. You may need to generate load by using different client computers, but to make sense of client-side data, such as response time or requests per second, you should consolidate data at a single client and generate results based on the average values.
IV. Include a buffer time between the incremental increases of users during a load test.
V. Use different data parameters for each simulated user to create a more realistic load simulation.
VI. Monitor all computers involved in the test, including the client that generates the load. This is important because you should not overly stress the client.
VII. Prioritize your scenarios according to critical functionality and high-volume transactions.
VIII. Use a zero think time if you need to fire concurrent requests. This can help you identify bottleneck issues.
IX. Stress test critical components of the system to assess their independent thresholds.
X. Do not allow the test system resources to cross resource threshold limits by a significant margin during load testing, because this distorts the data in your results.
XI. Do not run tests in live production environments that have other network traffic. In case you still need to test on production environment, make sure that the other web sites are powered off. Running the tests over the weekend might be a good option as it will reduce the risk of any unexpected/erratic behavior of the application that might effect other live web sites hosted on Production environment. Ideally using an isolated test environment which is replica of the Production environment is the best option.
XII. Do not try to break the system during a load test. The intent of the load test is not to break the system. The intent is to observe performance under expected usage conditions. You can stress test to determine the most likely modes of failure so they can be addressed or mitigated.
XIII. In case there are Load Balancers in the Load Test environment, ensure that their nodes are configured properly. The important point here is that the load should get equally get distributed to all the web/database servers. It might be a good idea to capture the performance counters on all the servers configured.
Measuring Numbers in Performance Testing
When you need to measure how many system resources your application consumes, you need to pay particular attention to the following. These are just the high level counters which have sub sets which need to be enabled for Web Servers/Database Servers before executing the Performance Tests. As the Test Progresses, they are displayed as a real-time graph and also get captured in the Test Execution Reports.
Memory. Amount of available memory, virtual memory, and cache utilization.
Processor. Processor utilization, context switches, interrupts and so on.
Network. Percent of the available bandwidth being utilized, network bottlenecks.
Disk I/O. Amount of read and write disk activity. I/O bottlenecks occur if read and write operations begin to queue.
CPU Percentage of CPU utilization. The utilization going above 80% is considered a bottleneck (whether explicitly stated or not)
Database Database utilization should be measured and related counters(as stated in SLA should be captured)
Experts on QA
Latest postings by this author
Top Expert Articles