Background: Project was for a global leader in enterprise data, helping customers to connect, unify, and solve complex data-driven challenges in financial crime, risk, and compliance for regional and global financial institutions, as well as government regulators.
We required parallel and quick execution of long and memory-intensive automation tests on multiple OS platforms. Some applications were inherently data and memory-heavy. The tests sets on these applications were large in quantity and required parallel execution, not on just one OS but on clean and multiple OS platforms to make sure that certification is achieved across all platforms with an acceptable pass threshold percentage achieved.
Goals: Deploying archived middleware applications in a dockerized environment on dynamic multiple OS cloud and on-premise platforms. Followed by running automation tests, storing, and publishing results for further visualization.
"Jenkins reduced the time required from build development to testing to delivery. It allowed for an automated approach to result reporting and reduced the need for costly infrastructure required for testing."
Solution & Results: Our solution, capabilities used and results are as follows:
Solutions achieved via these steps:
Leveraged the Jenkins EC2 plugin and created AMIs of the required platforms using AWS and configured them on Jenkins.
Parallel launched EC2 nodes for each OS platform and ran Java, Ant, and Maven-based unit and automation tests across all platforms.
These nodes were dynamic, hence destroyed after use. This presented an opportunity to save costs.
Leveraged the Jenkins Docker plugin and Docker on nodes to run pipelines in a clean dockerized environment. Stability tests lasting up to 72 hours were also run.
Published all test results via Jenkins to Grafana and our in-house analytics tool for visualization.
Jenkins Capabilities utilized:
Jenkins EC2 Plugin
Docker plugin
Pipeline
Maven
Ant
SCM (Git, Subversion)
Extensible Email Plugin
Project Matrix Access Control
Groovy Sandbox
Multi job plugin
Test result analysis
Blue Ocean plugin
Replay capabilities
Unit test reporting
These are the results we received:
Unit test to regression testing time reduced from 3 days to 8 hours
Reduced requirement of on-premise static nodes from 10+ to dynamic cloud Jenkins nodes
Multi-OS certification achieved with 1 day compared to 5 days of manual effort