- Faster delivery of software
- Set us on the path of Continuos Delivery
- Immediate discovery of regression
- Build an automation framework which will simulate user interactions, and run these tests consistently on real and headless browsers alike
- Set up integration with CI server(Jenkins)
- Import test results into our Test Management Platform(QMetry)
We chose Selenium’s webdriverJs primarily for the following reasons:
- It is the official implementation by the Selenium team who have written bindings in various other languages
- The patterns of writing a test is very similar to a test written in java world with which our QA team was familiar
- Its use of promises to prevent callback hell
For more detailed explanation with examples, please refer here.
The last piece of the puzzle was integration with the CI server. With PhantomJs already in place, all we needed to figure out was the reporting format of the tests that our CI server (Jenkins) could understand. One of the reasons we had picked Mocha is for its extensive reporting capabilities. Xunit was the obvious choice because of Jenkins support for it.
In the past couple months, we have successfully automated our E2E tests that provide coverage for regression of our web platform, and use it on a daily basis. Now that we have an established framework and gained immense experience writing tests, we are one step closer to Continuous Delivery. Integration with our Test Management Platform is in the works and we will post our findings soon.