Selenium + Jenkins for configuration management

Staging configuration changes in Drupal is a big challenge in many development workflows, where a site is developed and deployed across several staged environments. Code changes, of course, are easily tracked across environments using your preferred code versioning system. So you've refactored that messy hook implementation? No problem, Git will handily track that, and you'll easily be able to move it to staging and production.

Configurations stored in the database, however, are not so easy to handle. Replicating these changes by hand is unacceptably tedious and error-prone. Features module helps in some cases, but can't do everything. Cramming code into hook_update_n() implementations can help sometimes, but is also tedious and error-prone.

In this presentation, we'll look at some of the cases where existing methods fall short, and how the Selenium framework -- known for its value in functional UI testing -- can save your bacon when it comes to configuration management across multiple staged environments. Combined with the Jenkins continuous integration server, Selenium allows new feature deployments to be scripted, scheduled, and tested in a predictable way.

  • Do you have configuration changes that must be done in the UI? Script them in Selenium and repeat across environments.
  • Do you need to roll out new features with a series of prescribed steps? Build them with Jenkins.
  • Does your team need to distribute configuration tasks among two or more team members? Share a collection of Selenium scripts and work in parallel.

We'll also look at best practices for working with Selenium IDE, writing Selenium scripts, managing script files, and more.

Schedule info
Status: 
Proposed
Session Info
Speaker(s): 
Track: 
Coding + Development
Experience level: 
Intermediate

Comments

This is an interesting approach, I wonder about maintainability though. I do look forward to the talk. If you can show examples that would be great.