Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Continuous Integration: Combining Jenkins, Rails and headless selenium

Continuous Integration: Combining Jenkins, Rails and headless selenium

Jakarta Ruby Meetup 2011

57c64c6a4766cebbda1bf13983f64fb8?s=128

Panggi Libersa Jasri Akadol

October 17, 2011
Tweet

Transcript

  1. Continuous Integration Combining Jenkins, Rails and headless selenium Panggi Libersa

    Jasri Akadol panggi@bistip.com
  2. 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
  3. 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
  4. Jakarta.rb

  5. Jakarta.rb - Information : jenkins-ci.org - Open source (http://pkg.jenkins-ci.org/debian/) -

    Hosted : cloudbees.com Jenkins ( previously hudson)
  6. Jakarta.rb - Information : rubyonrails.org - Open source (http://rubyonrails.org/download) -

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

    Hosted : saucelabs.com Selenium
  8. Jakarta.rb A headless software is a software without a head

    *eh? I mean without User Graphical Interface :) Headless ?
  9. Jakarta.rb Dependencies : - Java - Ruby - xvfb (

    X virtual framebuffer ) - Web browser ( firefox ) - VNC server Jenkins + Rails + Selenium
  10. Jakarta.rb Rails : Test results

  11. Jakarta.rb Rails : Test results

  12. Jakarta.rb Selenium : Test results

  13. Jakarta.rb Selenium : Test results

  14. 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
  15. Jakarta.rb Discussion

  16. Jakarta.rb “entrepreneur is hard , come and work with us!”

    http://www.bistip.com/jobs Software Engineer ( Ruby on Rails ) We're Hiring!