CHAPTER 2 ■ PERFORMANCE TESTING PRIMER
9
The Performance Test Environment
The hardware and software used to conduct performance testing is called the performance test environment.
It is usually separate from the production environment. Although not advisable, sometimes performance
testing is done in the production environment itself.
The Need for Separate Performance Environment
Performance testing should not be performed in the production environment as it may negatively impact
the user experience.
The load from performance testing may:
• Crash the system
• Degrade the application response time
• Create security holes due to the use of test accounts
• Litter the production databases with performance test input and output data
• Fill up the databases, application log files, and system log files
• Affect the analytics
In the long run, it is wise to have a dedicated performance environment as it would avoid these pitfalls
and would provide the benefit of Continuous Integration (CI). In fact, some companies have more than one.
The advent of cloud computing enables such environments to be provisioned on demand at a low cost.
Performance testing needs to happen before software is deployed into production. Ideally this needs to
be a part of the build process so that any performance defects introduced as a result of software changes can
quickly be detected and rectified.
Despite the benefits of a performance test environment, sometimes performance testing is done in the
production environment because it is prohibitively expensive to duplicate the production environment in
terms of hardware, additional software licenses, and third-party services.
The Performance Environment Should Be Like the Production
Environment
The performance environment should be modeled after the production environment. In an ideal scenario,
the performance environment should be a replica of the production environment in terms of hardware,
software, network, components, and topology. However, due to budget and other constraints, this may not
be possible. In such cases, the performance environment should mimic the production environment in all
key aspects. Some logical compromises will have to be made. For example, instead of a cluster of four web
servers, the team may choose to go with a minimal cluster of two servers. They may decide to go with a
single instance of the database instead of a master-slave database configuration in production.
The Performance Environment Should Be Isolated
The performance environment should be on a different subnet, isolated from the production environment
so that any activity on the performance subnet will not influence production and vice versa.