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

PyCon Workshop Slides

PyCon Workshop Slides

Santiago Suarez Ordoñez

March 14, 2013
Tweet

More Decks by Santiago Suarez Ordoñez

Other Decks in Programming

Transcript

  1. Selenium RC AKA ‘Selenium 1’ Uses javascript injection to drive

    browsers Has no mobile implementations Don’t use this.
  2. Selenium WebDriver AKA ‘Selenium 2’ Uses native OS events to

    drive browsers Has iOS and Android drivers Use this!
  3. Example Test from selenium import webdriver driver = webdriver.Firefox() driver.implicitly_wait(5)

    driver.get('http://www.saucelabs.com') driver.find_element_by_link_text('LOGIN') assert 'Sauce Labs' in driver.title driver.quit()  
  4. Tools I use: Jenkins Server - Github plugin - InjectEnv

    plugin - Sauce OnDemand plugin virtualenv/pip/distribute Selenium client library Sauce Connect Sauce Labs Account sauceclient library
  5. Writing Tests: Output session_id to stdout and the Sauce Plugin

    does the rest. Junit output is automatically parsed.
  6. Steps to get started: Put your project on Github Setup

    Travis CI Start Connect on Travis Run Selenium tests on Sauce Pass details to Sauce
  7. Travis Setup     language:  python   python:    

     -­‐  "2.5"      -­‐  "2.7"      -­‐  "3.2"   env:      global:          -­‐  secure:  "jE3y.....yRY="          -­‐  secure:  "V0e7.....4BQ="     install:      -­‐  pip  install  selenium  nose  -­‐-­‐use-­‐mirrors     script:      -­‐  nosetests  -­‐-­‐processes=5  -­‐-­‐process-­‐timeout=600  -­‐v  tests  
  8. Sauce Connect Setup       before_script:   -­‐  curl

     https://gist.github.com/…/setup.sh  |  bash    
  9. Pass On Additional Details       caps['build']  =  os.environ['TRAVIS_BUILD_NUMBER']

      caps['tags']  =  [      os.environ['TRAVIS_PYTHON_VERSION'],      'CI’   ]