On November 7, 2013, the FreeBSD Vendor Summit was held at the Yahoo! campus in Sunnyvale, California. Craig Rodrigues, iXsystems software engineer, gave a presentation, "Jenkins, BHyve, and WebDriver: Continuous Integration Testing on FreeNAS". Craig's presentation described how iXsystems is using modern best practices for building and testing FreeNAS code. Jenkins is a framework for doing continuous builds and integration, and is used by hundreds of companies. BHyve (BSD Hypvervisor) is the new virtual machine system which will be part of FreeBSD 10. Webdriver is a Python toolkit for testing web applications. By combining these technologies, iXsystems is developing a modern and sophisticated workflow for testing and improving the quality of FreeNAS.
Advantages of Hiring UIUX Design Service Providers for Your Business
Jenkins, Bhyve, and Webdriver: Continuous Integration testing on FreeNAS by Craig Rodrigues
1. Jenkins, Bhyve, and Webdriver:
Continuous Integration testing on
FreeNAS
Craig Rodrigues
rodrigc@ixsystems.com
2. What is Jenkins?
System which provides tools for
Continuous Integration, Testing
Open source (MIT licensed)
Written by Kohsuke Kawaguchi
3. How do I Install it?
pkg install devel/jenkins
Depends on OpenJDK
Needs a few few entries in /etc/rc.conf
Additional installation notes:
http://forums.freebsd.org/showthread.php?p=239397
4.
5. How do I configure it?
Easy to use web interface for configuration
Functionality extensible via
3rd party plugins (over 700)
6. Where do I Get Help?
http://jenkins-ci.org, active community
Books
Conferences
Consulting companies, http://cloudbees.com
9. How am I trying to use Jenkins?
Developer
SCM (git)
Build
Test
Deploy
10. BHyve
BSD Hypervisor, in FreeBSD 10
works great for booting/testing
images
Python pexpect over serial
interface to drive installer
thanks to Neel, Peter
11. Webdriver
Framework for automated web app
testing
Built into Firefox
I'm using Python Splinter library to
interface with Webdriver:
http://splinter.cobrateam.info
12. Webdriver example using
Python splinter library
from splinter import Browser
browser = Browser()
browser.visit("http://www.yahoo.com")
browser.find_by_id("p_13838465-p").fill("FreeBSD vendor summit")
browser.find_by_id("search-submit").click()