Test Automation Solution for Web Applications in Windows Environment
Lehtelä, Rami (2017)
Lehtelä, Rami
Tampereen ammattikorkeakoulu
2017
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2017112017396
https://urn.fi/URN:NBN:fi:amk-2017112017396
Tiivistelmä
There has been a need to verify functionality of web application in an end-user like environment. Until now all automated tests are run against web applications in Linux environment on Mozilla Firefox web browser. This setup doesn’t match the majority of end-user environments in the field.
The purpose of this project was to create solution into continuous integration pipe where web applications can be tested automatically in web browsers running on Windows operating system. Requirement was to create solution which can be easily taken into use from one web application testing to another. Focus was defining Windows environment and applications needed to enable test execution in Windows environment. Also, connectivity and file transfer issues needed to be solved between Windows and Linux systems.
First Windows environment was specified so that it would have possibility to run Robot Framework test automation cases and allow remote connection from Jenkins running on Linux. Image of the specified Windows was then introduced to vCenter where it could be cloned to virtual machines by request and accommodate parallel test execution. The test execution orchestration was implemented into Jenkins, which was responsible of requesting clone of the Windows environment, communication and transferring test files to and from Windows environment, and visualization of test results.
As a result, the test automation solution was introduced into continuous integration pipe as a separate entity. Test automation possibility for web browsers running on Windows environment have already caught some faults specific to Windows web browsers, which could not have been detected in Linux environment. Test results were visualized in Jenkins, where developers and verification engineers can monitor the quality of the product.
It is crucial to automate as much as feasible when testing software. This project will act as an enabler when moving from continuous integration towards continuous delivery, where web applications must be verified in end-user like environment. It was noted that automating test execution and maintaining Windows environment is really complicated and time consuming. Although the maintenance load of this solution seems big, it was a must to develop. In the future, there might be alternative solutions to automate web application testing in Windows environment using containers. Containers have become more and more popular in software development and should be considered as a candidate also in Windows environment.
The purpose of this project was to create solution into continuous integration pipe where web applications can be tested automatically in web browsers running on Windows operating system. Requirement was to create solution which can be easily taken into use from one web application testing to another. Focus was defining Windows environment and applications needed to enable test execution in Windows environment. Also, connectivity and file transfer issues needed to be solved between Windows and Linux systems.
First Windows environment was specified so that it would have possibility to run Robot Framework test automation cases and allow remote connection from Jenkins running on Linux. Image of the specified Windows was then introduced to vCenter where it could be cloned to virtual machines by request and accommodate parallel test execution. The test execution orchestration was implemented into Jenkins, which was responsible of requesting clone of the Windows environment, communication and transferring test files to and from Windows environment, and visualization of test results.
As a result, the test automation solution was introduced into continuous integration pipe as a separate entity. Test automation possibility for web browsers running on Windows environment have already caught some faults specific to Windows web browsers, which could not have been detected in Linux environment. Test results were visualized in Jenkins, where developers and verification engineers can monitor the quality of the product.
It is crucial to automate as much as feasible when testing software. This project will act as an enabler when moving from continuous integration towards continuous delivery, where web applications must be verified in end-user like environment. It was noted that automating test execution and maintaining Windows environment is really complicated and time consuming. Although the maintenance load of this solution seems big, it was a must to develop. In the future, there might be alternative solutions to automate web application testing in Windows environment using containers. Containers have become more and more popular in software development and should be considered as a candidate also in Windows environment.