Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Automatic Functional Testing with Selenium and SauceLabs

Build automatic functional testing environment easily (Tool used: Selenium Webdriver, Grunt, TravisCI, WebdriverIO, SauceLabs, Github, and Jasmine)

Ähnliche Bücher

Kostenlos mit einer 30-tägigen Testversion von Scribd

Alle anzeigen

Ähnliche Hörbücher

Kostenlos mit einer 30-tägigen Testversion von Scribd

Alle anzeigen
  • Als Erste(r) kommentieren

Automatic Functional Testing with Selenium and SauceLabs

  1. 1. FUNCTIONAL TESTING automatically with Selenium @josephj6802
  2. 2. What’s FT?
  3. 3. Functional Testing in Stackla Can u borrow me your iPhone 5?
  4. 4. Headless vs. Selenium Headless Browser Selenium
  5. 5. Misunderstandings Only available in Firefox Need to write Java for Selenium test cases or use Selenium IDE to record (Probably true in Selenium 1.0)
  6. 6. Selenium 2.0 Selenium 1.0 + = Selenium 2.0 npm install selenium-webdriver gem install selenium-webdriver composer.phar require facebook/webdriver
  7. 7. Manipulate Chrome w/ Node.js + ChromeDriver Get Feet Wet! var webdriver = require(‘selenium-webdriver'), expect = require('expect'), driver = new webdriver.Builder().forBrowser('chrome').build(); driver.get('http://stackla.com'); driver.getTitle().then(function (title) { expect(title).toBe(“Stackla - Social Media Aggregator“); }); driver.quit(); Tip: Node.JS 4.x
  8. 8. Scalability
  9. 9. Scalability
  10. 10. Trial Run with
  11. 11. Manual Testing
  12. 12. Manual Testing
  13. 13. Automated Testing
  14. 14. My Tools Browser testing on SauceLabs Jasmine Webdriver.io Grunt SauceLabs
  15. 15. exports.config = { user: process.env.SAUCE_USERNAME, key: process.env.SAUCE_ACCESS_KEY, updateJob: true, specs: ['./tests/*_test.js'], capabilities: [{ browserName: 'firefox', version: 37, name: 'Firefox Selenium tests', build: 'build-' + process.env.TRAVIS_BUILD_ID, 'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER },{ browserName: 'chrome', version: 43, name: 'Chrome Selenium tests', build: 'build-' + process.env.TRAVIS_BUILD_ID, 'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER },{ browserName: 'internet explorer', version: 11, name: 'IE Selenium tests', build: 'build-' + process.env.TRAVIS_BUILD_ID, 'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER },{ browserName: 'safari', version: 6, name: 'Safari Selenium tests', build: 'build-' + process.env.TRAVIS_BUILD_ID, 'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER }], baseUrl: 'http://localhost:8585', framework: 'jasmine', reporter: ‘spec' }; ./wdio-saucelab.conf.js // browser - webdriver instance describe('Index Page', function() { it('should have title', function* () { yield browser.url('/index.html'); expect(yield browser.getTitle()).toBe('Browser Testing'); }); it('shoud have Stackla widget', function* () { yield browser.url('/'); expect(yield browser.isExisting('.stackla-widget')); }); }); ./tests/index_test.js <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Browser Testing</title> </head> <body> <h1>Browser Testing</h1> <div class="stackla-widget" data-id="6605" data- hash="5663ac9e3843f" data-ct="" data-alias="josephj.stackla.com" data-ttl="30" style="width: 100%; overflow: hidden;"></div> <script type="text/javascript"> (function (d, id) { if (d.getElementById(id)) return; var t = d.createElement('script'); t.type = 'text/javascript'; t.src = '//assetscdn.stackla.com/media/js/widget/ fluid-embed.js'; t.id = id; (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(t); }(document, 'stackla-widget-js')); </script> </body> </html> http://localhost:8585/index.html Need to build a web server and tunnel $ wdio wdio-saucelab.conf.js
  16. 16. Automated Build
  17. 17. TravisCI My Tools Delegating testing task to CI Server Jasmine Webdriver.io Grunt SauceLabs
  18. 18. Enable Build https://github.com/josephj/browser-testing
  19. 19. Whenever user makes git push Set environment variables for SauceConnect Settings
  20. 20. language: node_js node_js: - "4.1" before_script: - npm install grunt-cli -g - npm install webdriverio -g - npm install jasmine -g addons: sauce_connect: true branches: only: - master - gh-pages script: - grunt test:saucelabs Config File ./travis.yml
  21. 21. https://travis-ci.org/josephj/browser-testing Let’s Build! $ git push
  22. 22. Todo List
  23. 23. Pricing Unlimted Automation Testing but slow with 1 parallel VM Better speed but with limited time Fastest and quiet enough time
  24. 24. Google Trends BrowserStack is the most popular one
  25. 25. Resources https://github.com/josephj/browser-testing

×