TestCon Europe 2019

Oleksandr Kravchenko

Samsung Electronics Poland, Poland

BIO

Test Automation engineer for Samsung Electronics 4G/5G network infrasctucture units and infrastructure management tools.

Talk

Dealing with Data Driven Test Combinatorial Complexity using Jenkins Job DSL

Using Jenkins UI to configure the jobs is rather user-friendly and intuitive. Rich repository of available plugins makes it easy to find a solution for some non-trivial tasks.

Unfortunately, there are several challenges with defining jobs:
One of them is the xml file format. In this context it may add complexity to tracking job modification history and job’s configuration in CMS.
Another aspect is the maintenance of the jobs performing same or similar actions on slightly different set of data (i.e. different test data in Data Driven Test approach, different code branches, different testbeds etc.).
There are several patterns to deal with such situation.
One of them is to copy jobs manually and create new ones with different parameters. The downside of such approach is that any minor modification in “parent” job requires manual modifications in all “cloned” jobs, which leads to a maintenance nightmare.
Another pattern is to create a single parametrized job and invoke the job with different parameters. Although this approach significantly reduces the number of jobs, the job execution history becomes untrackable, especially with a large number of jobs.

These problems may be easily addressed using Configuration as Code concept with Jenkins DSL Plugin. The presentation will use a real-life example to demonstrate how to manage job combinatorial complexity using plugins and compare this approach with manual job creation and cloning.

Session Keywords
Jenkins
Jenkins Job DSL
Groovy