Slide 1

Slide 1 text

Continuous Integration Combining Jenkins, Rails and headless selenium Panggi Libersa Jasri Akadol [email protected]

Slide 2

Slide 2 text

Jakarta.rb Continuous Integration "A software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly." (Martin Fowler, http://martinfowler.com/articles/continuousIntegration.html) Continuous Integration

Slide 3

Slide 3 text

Jakarta.rb Continuous Integration - A software development practice - members of a team integrate their work frequently - leading to multiple integrations per day - Each integration is verified by an automated build (including test) - Verification is made to detect integration errors as quickly as possible Continuous Integration

Slide 4

Slide 4 text

Jakarta.rb

Slide 5

Slide 5 text

Jakarta.rb - Information : jenkins-ci.org - Open source (http://pkg.jenkins-ci.org/debian/) - Hosted : cloudbees.com Jenkins ( previously hudson)

Slide 6

Slide 6 text

Jakarta.rb - Information : rubyonrails.org - Open source (http://rubyonrails.org/download) - PaaS : heroku.com Ruby on Rails

Slide 7

Slide 7 text

Jakarta.rb - Information : seleniumhq.org - Open source (http://seleniumhq.org/download/) - Hosted : saucelabs.com Selenium

Slide 8

Slide 8 text

Jakarta.rb A headless software is a software without a head *eh? I mean without User Graphical Interface :) Headless ?

Slide 9

Slide 9 text

Jakarta.rb Dependencies : - Java - Ruby - xvfb ( X virtual framebuffer ) - Web browser ( firefox ) - VNC server Jenkins + Rails + Selenium

Slide 10

Slide 10 text

Jakarta.rb Rails : Test results

Slide 11

Slide 11 text

Jakarta.rb Rails : Test results

Slide 12

Slide 12 text

Jakarta.rb Selenium : Test results

Slide 13

Slide 13 text

Jakarta.rb Selenium : Test results

Slide 14

Slide 14 text

Jakarta.rb - “rake db:drop:all” make your tests fresh everytime. - use the firefox profile manager to customized the browser. - make many small tests to make it more manageable. - set the build interval frequently e.g 30 minutes. - include the Selenium test suite into the project repository. - be discipline, the code grows test must grows as well. - record the selenium test using https://github.com/leonid-shevtsov/headless Tips

Slide 15

Slide 15 text

Jakarta.rb Discussion

Slide 16

Slide 16 text

Jakarta.rb “entrepreneur is hard , come and work with us!” http://www.bistip.com/jobs Software Engineer ( Ruby on Rails ) We're Hiring!