Continuous Integration : combining Jenkins, Rails and headless Selenium

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

description

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

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

Page 1: Continuous Integration : combining Jenkins, Rails and headless Selenium

Continuous IntegrationCombining Jenkins, Rails and headless selenium

Panggi Libersa Jasri [email protected]

Page 2: Continuous Integration : combining Jenkins, Rails and headless Selenium

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

Page 3: Continuous Integration : combining Jenkins, Rails and headless Selenium

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

Page 4: Continuous Integration : combining Jenkins, Rails and headless Selenium

Jakarta.rb

Page 5: Continuous Integration : combining Jenkins, Rails and headless Selenium

Jakarta.rb

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

Jenkins ( previously hudson)

Page 6: Continuous Integration : combining Jenkins, Rails and headless Selenium

Jakarta.rb

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

Ruby on Rails

Page 7: Continuous Integration : combining Jenkins, Rails and headless Selenium

Jakarta.rb

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

Selenium

Page 8: Continuous Integration : combining Jenkins, Rails and headless Selenium

Jakarta.rb

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

Headless ?

Page 9: Continuous Integration : combining Jenkins, Rails and headless Selenium

Jakarta.rb

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

Jenkins + Rails + Selenium

Page 10: Continuous Integration : combining Jenkins, Rails and headless Selenium

Jakarta.rb

Rails :Test results

Page 11: Continuous Integration : combining Jenkins, Rails and headless Selenium

Jakarta.rb

Rails :Test results

Page 12: Continuous Integration : combining Jenkins, Rails and headless Selenium

Jakarta.rb

Selenium :Test results

Page 13: Continuous Integration : combining Jenkins, Rails and headless Selenium

Jakarta.rb

Selenium :Test results

Page 14: Continuous Integration : combining Jenkins, Rails and headless Selenium

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

Page 15: Continuous Integration : combining Jenkins, Rails and headless Selenium

Jakarta.rb

Discussion

Page 16: Continuous Integration : combining Jenkins, Rails and headless Selenium

Jakarta.rb

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

http://www.bistip.com/jobs

Software Engineer ( Ruby on Rails )

We're Hiring!