Having a wide range of automation tools used by our client, they needed a way to provision the large number of virtual machines and prepare the test environment for automated test execution. The client’s virtual environment was a bunch of ESXs servers managed by VMware Virtual Center. Our goal was to support multiple client’s products build and integrated in different CI processes.
Solution and Benefits
We have designed a universal framework that can deploy and provision virtual machines, no matter what is the software that has to be installed and regardless the number of instances needed for faster execution.
To illustrate the process easily we will use as an example one of the client’s products. It was a typical distributed system containing front-end, back-end and DB servers. One of the challenges was that all automated tests have to be executed for 2 hours. In order to complete this goal we had to prepare 30 test environments each containing the set of 3 virtual machines needed by the product. Total number of virtual machines has grown faster to 90 which we handled with parallel VM deployments using vSphere Perl SDK. The next steps of test environment setup were downloading and installation of product build followed by the setup of testing tool. In this particular example the build was downloaded from Jenkins CI server and installed silently on each front and back-end virtual machines (in total 60 VMs). Because of the modular architecture different testing tools was easily integrated and supported. In the example project QFTest and SoapUI were the testing arsenal used by the QA team. As a final step tests results and/or coverage reports were collected and send to LogEye (automation result storage system).