Continuous Integration : combining Jenkins, Rails and headless Selenium

Post on 14-Sep-2014

1.503 views 2 download

Tags:

description

My Presentation at Jakarta Ruby Meetup [17-10-2011]

Transcript of Continuous Integration : combining Jenkins, Rails and headless Selenium

Continuous IntegrationCombining Jenkins, Rails and headless selenium

Panggi Libersa Jasri Akadolpanggi@bistip.com

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

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

Jakarta.rb

Jakarta.rb

- Information : jenkins-ci.org- Open source (http://pkg.jenkins-ci.org/debian/) - Hosted : cloudbees.com

Jenkins ( previously hudson)

Jakarta.rb

- Information : rubyonrails.org- Open source (http://rubyonrails.org/download)- PaaS : heroku.com

Ruby on Rails

Jakarta.rb

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

Selenium

Jakarta.rb

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

Headless ?

Jakarta.rb

Dependencies :- Java- Ruby- xvfb ( X virtual framebuffer )- Web browser ( firefox )- VNC server

Jenkins + Rails + Selenium

Jakarta.rb

Rails :Test results

Jakarta.rb

Rails :Test results

Jakarta.rb

Selenium :Test results

Jakarta.rb

Selenium :Test results

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

Jakarta.rb

Discussion

Jakarta.rb

“entrepreneur is hard , come and work with us!”

http://www.bistip.com/jobs

Software Engineer ( Ruby on Rails )

We're Hiring!