what i learned through my experience as a developer dealing with load test teams

Unlike functional testing, where all that’s needed for a test is a desk and a desktop, building a load test environment is a challenging task regardless of the load testing tools being used and can require resolving technological, organizational, and security issues.

in this article i’d like to serve as a roadmap for building a faster and more efficient load testing environment that leads to quicker deployments, the article also provides tips for doing it better, whether you are building a real environment from scratch or using your production environment.

from my experience as a developer dealing with load tests teams , for an effective load test environement 6 steps must be respected :

1 Use your production environment

Yes, this a bit awkward as the first tip, and it is not always feasible. But still, your production environment is the ideal environment for testing too. No need for replications, and it always includes those unnoticed background processes and environment variables that affect performance and are often missed.

A few of our customers use their live production environment to run load tests during night hours and/or weekends. So it’s definitely do-able, and would be my first choice whenever possible.

When using a production environment for testing, make sure to:

  • Backup production data so that you can quickly revert to the real environment once testing is done

2 Make an exact replica of your production environment

Extrapolating load test results is a very risky business. If you run the test on a 1GB machine with 2 cores, what will results look like on a 2GB machine with 4 cores? It’s practically impossible to know.

Make sure, therefore, to replicate your production environment in every aspect machine profiles, configuration, DB, network architecture, load balancers, firewalls, etc. One method is to create complete images of production machines, to be duplicated in your test environment.

3 Replicate a customer environment

Let’s assume your product is an on-premises software for instance, an information system for universities, managing students, registration, administration, etc. It would be quite difficult for your R&D or QA teams to simulate a real-life environment for testing purposes. The most effective way would be to duplicate a customer’s production environment. Try working with selected customers with the assurance that you’ll protect or remove critical data, and by providing discounts or free support. Essentially you’re offering to test your customer’s real environment and take over some of their test efforts, no?

4 Build a real environment from scratch

In some cases, you’ll have no production environment to copy and will have to build a load test environment from scratch. Possibly, you’re in early stages of developing your software and don’t have a production environment or enough customers yet. Or you may also be restricted by security issues and have no access to the real production environment.

In such a case, make sure to:

  • Take into account different types of potential deployments that you might want to test small, medium, large, etc. With each, address the number of users configured, how many records in the DB, etc.

5 Establish a procedure to quickly setup your test environment

You want to be able to set up your load test environment as quickly as possible, so that you can re-used it for new tests. Once you have your environment working and configured, create a snapshot or image so that you can re-create it in minutes. Also, there are many configuration management and IT automation tools you can use to quickly setup a server environment such as Docker, or Vagrant.

6 Isolate the test environment (most important point🔥 🔥)

Computing resources are always scarce and test machines are often the solution. When the new product team are looking for a machine to run a process or trial, they’ll often land on some test machine 😥 so don’t be disappointed if you’re not notified 😌.

You want to make sure that no one but your virtual clients can reach your tested application. Also important is that your test network is isolated so it is not affected by other company activities, of which you’re not aware.

A passionate Full Stack Software SpringBoot/Angular Developer 🚀 having an experience of building Web applications with Spring boot / Angular / Postgres / Elast