Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Continuous Testing in the Cloud

6,533 views

Published on

Come explore how you can create a full Continuous Integration solution entirely in the Cloud using GitHub, Selenium, Sauce Labs, and Travis CI. We'll show you how you can take advantage of these hosted development resources to improve the velocity of your releases and increase application quality demanded by your users.

Published in: Software, Technology
  • Be the first to comment

Continuous Testing in the Cloud

  1. 1. Continuous Testing in the Cloud Using Selenium, Sauce Labs, GitHub, and Travis-CI
  2. 2. What is Continuous Integration? “Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several times a day. Each check- in is then verified by an automated build, allowing teams to detect problems early.” http://www.thoughtworks.com/continuous-integration
  3. 3. Our Continuous Integration Process 1. Create automated functional tests with Selenium 2. Our functional tests will run on Sauce Labs’ hosted browsers 3. Push our code changes to our hosted repository in GitHub 4. Our pushes will trigger a build run by the Travis-CI service which will run our tests on Sauce
  4. 4. Using Selenium for our Tests
  5. 5. What is Selenium? “Selenium, also known as Selenium 2 and WebDriver, is a UI automation toolkit used by software developers and QA engineers to test their web application on different web browsers. ” — Satya Avasarala, Selenium WebDriver Practical Guide
  6. 6. Working with Selenium Tests WebDriver driver = new FirefoxDriver(); driver.get("https://www.google.com/"); driver.findElement(By.id("gbqfq")).click(); driver.findElement(By.id("gbqfq")).sendKeys("sauce labs"); Selenium interacts with browser apps, like this Google search:
  7. 7. Demo
  8. 8. Using Sauce for our Test Runs
  9. 9. Sauce supports just about any platform you need for your test runs!
  10. 10. Configuring Tests for Sauce WebDriver driver = new FirefoxDriver(); driver.get("https://www.google.com/"); driver.findElement(By.id("gbqfq")).click(); driver.findElement(By.id("gbqfq")).sendKeys("sauce labs"); RemoteWebDriver driver = new RemoteWebDriver( new URL(“http://user:key@ondemand.saucelabs.com:80/wd/hub”), caps); DesiredCapabilities caps = new DesiredCapabilities(); caps.setCapability("browserName", “firefox"); caps.setCapability("version", "22"); caps.setCapability("platform", "LINUX"); For Sauce we replace the standard WebDriver with RemoteWebDriver: Selenium interacts with browser apps, like this Google search: And then we add our desired browser and platform:
  11. 11. Demo
  12. 12. Using GitHub for our Project
  13. 13. What is GitHub? “GitHub is a web-based hosting service for software development projects that use the Git revision control system. GitHub offers both paid plans for private repositories, and free accounts for open source projects. ” — http://en.wikipedia.org/wiki/GitHub
  14. 14. Using Travis for our Builds
  15. 15. What is Travis-CI? “Travis-CI is a hosted, distributed continuous integration service used to build and test projects hosted at GitHub. Travis-CI automatically detects when a commit has been made and will try to build the project and run tests.” — http://en.wikipedia.org/wiki/Travis_CI
  16. 16. Configuring Travis for Sauce gem install travis travis init travis encrypt SAUCE_USERNAME=your_sauce_username --add travis encrypt SAUCE_ACCESS_KEY=XXXXXXXXXXXXXXXXX --add Next, initialize your project for use with Travis CI: First, install the Travis gem locally: We need to encrypt our credentials for safe use in GitHub:
  17. 17. language: java jdk: - oraclejdk7 env: global: - secure: HOTmOq6r+fjDDvr7gzETG7rS9IQtZ7QQ= - secure: NFM+4hE1VdaGs/lhaiVdn9Vi9P5L8Nb2t= addons: sauce_connect: true .travis.yml example
  18. 18. Configuring GitHub for Travis git add .travis.yml git push origin master ..and commit our changes Now we add our Travis config file to our GitHub project: READY TO BUILD!!!
  19. 19. Q&A

×