Learn how you can create a full continuous integration solution entirely in the cloud using GitHub, Selenium, Sauce Labs, and Travis CI. Michael will show you how to take advantage of these hosted development resources to improve the velocity of your releases and provide the application quality your users demand. He will demonstrate how Sauce Labs can securely execute your Selenium tests in parallel and dramatically reduce the time required to run your critical integration and acceptance tests—so you can finally realize the promise of continuous delivery. www.saucelabs.com/signup/trial
Continuous Testing and New Tools for Automation - Presentation from StarWest 2014
1. Continuous Testing and New Tools for
Automation
Using Selenium, Sauce Labs, GitHub, and Travis-CI
**Presentation given at StarWest 2014
2. How I Spent My Summer Testing
Continuous Testing on the Beach
3. 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
4.
5. My Continuous Testing Process
1. Commit and push
2. Set up test server and env
3. Check out the code
4. Set up the test dependencies
5. Set up the test databases
6. Run the tests
7. (Optionally) deploy code
12. 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
13. My Continuous Testing Process
1. Commit and push
2. Set up test server and env
3. Check out the code
4. Set up the test dependencies
5. Set up the test databases
14. Simple .travis.yml example
language: Python
python:
- 2.7
before_script:
- lots of shell scripting here for setup for
apache, etc.
script:
- flask --app=flaskr run &> flask.log &
16. Dependencies and DB Setup
• Flask configuration and restart
with document root and port
• SQLite setup routines create the
DB and CREATE TABLE
• “pip install” runs to fetch
and install various
dependency packages
17. Using Selenium for my Tests
Need help getting started with Selenium? Download the Selenium
Bootcamp series here!
18. My Continuous Testing Process
1. Commit and push
2. Set up test server and env
3. Check out the code
4. Set up the test dependencies
5. Set up the test databases
6. Run the tests
19. My Super Simple Test Case
1.Go to index page
2. Click Login link
3.Select Username text field element
4.Enter our username
5.Select Password text field element
6.Enter our password
7. Click login button
20. My Super Simple Test in Python
1.Go to index page
2. Click Login menu
3.Select Username text field element
4.Enter our username
5.Select Password text field element
6.Enter our password
7. Click login button
21. A Selenium server can be installed
and run in the build env via
.travis.yml
22. Using Sauce for our Test Runs
Try Sauce for free, get an account here!
23. Running Tests on Sauce
Sauce Connect is what enables the grid to run
inside the Travis env
24.
25. Configuring Travis for Sauce
First, install the Travis gem locally:
gem install travis
Next, initialize your project for use with Travis CI:
travis init
We need to encrypt our credentials for safe use in GitHub:
travis encrypt SAUCE_USERNAME=your_sauce_username --add
travis encrypt SAUCE_ACCESS_KEY=XXXXXXXXXXXXXXXXX --add
26. .travis.yml example for Sauce Connect
language: python
python:
- 2.7
env:
global:
- secure: HOTmOq6r+fjDDvr7gzETG7rS9IQtZ7QQ=
- secure: NFM+4hE1VdaGs/lhaiVdn9Vi9P5L8Nb2t=
addons:
sauce_connect: true
before_script:
- lots of shell scripting here for apache, etc.
script:
- flask --app=flaskr run &> flask.log &
- py.test -n4 --boxed example.py
27. My Continuous Testing Process
1. Commit and push
2. Set up test server and env
3. Check out the code
4. Set up the test dependencies
5. Set up the test databases
6. Run the tests
7. (Optionally) deploy code
28. .travis.yml example for deployment
language: python
php:
- 2.7
env:
global:
- secure: HOTmOq6r+fjDDvr7gzETG7rS9IQtZ7QQ=
- secure: NFM+4hE1VdaGs/lhaiVdn9Vi9P5L8Nb2t=
addons:
sauce_connect: true
before_script:
- lots of shell scripting here for apache, etc.
script:
- flask --app=flaskr run &> flask.log &
deploy:
- your deployment instructions go here
Why should customers care about out product? Sell the dream of a better future
1. Deliver a story or statement that arouses the audience’s interest
Sauce Labs was founded 4 years ago by Jason Huggins (inventor of Selenium), Steve Hazel and John Dunham, with the goal of making testing awesome.
2. Pose a problem or question that has to be solved or answered
Cross browser lab maintenance. How much time and money will it take you to setup and maintain on internal grid
3. Offer a solution to the problem you raised
Sauce’s client cloud
4. Describe specific benefits for adopting the course of action set forth in your solution
Time sand money savings
5. State a call to action
.
.
Why should customers care about out product? Sell the dream of a better future
1. Deliver a story or statement that arouses the audience’s interest
Sauce Labs was founded 4 years ago by Jason Huggins (inventor of Selenium), Steve Hazel and John Dunham, with the goal of making testing awesome.
2. Pose a problem or question that has to be solved or answered
Cross browser lab maintenance. How much time and money will it take you to setup and maintain on internal grid
3. Offer a solution to the problem you raised
Sauce’s client cloud
4. Describe specific benefits for adopting the course of action set forth in your solution
Time sand money savings
5. State a call to action
Why should customers care about out product? Sell the dream of a better future
1. Deliver a story or statement that arouses the audience’s interest
Sauce Labs was founded 4 years ago by Jason Huggins (inventor of Selenium), Steve Hazel and John Dunham, with the goal of making testing awesome.
2. Pose a problem or question that has to be solved or answered
Cross browser lab maintenance. How much time and money will it take you to setup and maintain on internal grid
3. Offer a solution to the problem you raised
Sauce’s client cloud
4. Describe specific benefits for adopting the course of action set forth in your solution
Time sand money savings
5. State a call to action