Best practices while configuring performance test infrastructure
Environment setup and maintenance happens to be one of the key activities in a tester’s kitty. A tester not only has to monitor the setup of performance test environment but also has to drive the process of building performance test infrastructure consisting of servers, machines, software and tools that will be used to test the application. He has to participate in discussions related to server, tool, software purchase (or allocation). Also most of these activities consume a lot of time and hence there is a necessity of setting up standards or best practices so that significant amount of time is saved for the testers and thus the technology solution delivery team.
Importance of properly set environment:
Saves a lot of time for the testers and thus the managers
Reduces extra money spent on un-utilized systems (or servers)
Reduces extra money spent on un-utilized tool / software licenses
It simplifies the task of tester thus allowing him to focus more on test execution and analysis part of the business and not on the secondary activities
Avoids issues like data loss after test which may require the team to re-work on something which takes time
Sometimes tests have to be repeated due to excess load subjected on the load generators and a properly designed infrastructure and planned tests can avoid such scenarios and rework
Try to build your load generators at geographic locations from where the business users would be accessing the application
Always have a count on the memory footprint of your single user and make a judgment on the memory consumption at load generator during test execution at the load on the test
In the arena of cloud, if you have Amazon (or similar) services available in your organization, try to build your test controller and load generator templates based on your usual business (or test) requirements and try building instances of those templates whenever any testing is required
It is better to control the test run settings done from one machine (controller machine) to avoid test run issues because of infrastructure during the test
Try to have an idea about the bandwidth availability between your controller machines, load generator machines and web servers. Also keep an eye on the latency of each of those against the other.
IP Spoofing: IP Spoofing is a technique adopted by many load testing tools wherein the application to be tested is subjected upon load from multiple simultaneous virtual users each of which would have a different IP address. Thus the test moves more close to real time situation. Also it becomes easier to track individual user data (test result data) after test execution while analysis and debugging
Enable movement of test data from agent machines to controller machines after test execution. This will help availability of test result data at one machine and make analysis and debugging easier.