Your Framework for Success Introduction to JavaScript Testing at Scale
Open Source Program Office @saucelabs Christian Bromann @christian-bromann @bromann Daniel Graham Sr. Software Engineer @saucelabs
—CARL SAGAN “You have to know the past to understand the present.”
2004 2007 2010 2013 2016 2019 ? Simon Stewart created WebDriver 05 Selenium and WebDriver merge into Selenium-WebDriver 09 Jason Huggins (Sauce Labs Co-Founder) created Selenium 04 Sauce Labs was founded 08 Cypress.io was founded 15 WebDriver becomes W3C Recommendation 18 WebDriver BiDi work initiated 19 1st Release of Selenium-WebDriver JS Bindings 1st Appium Release 1st Testcafe Release 1st Puppeteer Release Cypress Public Beta 1st Playwright Release WHAT HAPPENED PREVIOUSLY... 1st Protractor Release 1st WebdriverIO Release W3C WG starts to spec WebDriver Protocol 12 *v2
Types of Tools Conventional Non-Standard
Conventional Tools ● based on the W3C WebDriver specification ● true cross browser automation ● browser and mobile support ● limited automation capabilities - QA focus ● Open governed open source projects with long history and large communities
Non-Standard Tools ● custom (non-standardised) automation ○ based on browser APIs ○ or JavaScript emulation ● Limited cross browser support ● More automation capabilities - developer focus ● Company baked and governed Open Source projects ○ Cypress.io → Cypress ○ Testcafe → DevExpress ○ Playwright → Microsoft ○ Puppeteer → Google
Through the WebDriver protocol AUTOMATION STRATEGIES WebdriverIO Through WebDriver & browser APIs Selenium Testcafe Through Web APIs Puppeteer Through browser APIs Cypress.io Through Web + browser APIs Playwright Through custom / modified browser APIs
3rd generation of automating browsers Official Web Standard developed at W3C in a common effort by all browser vendors Thoroughly tested as part of the web platform test suite Limited capabilities - originally designed to automate from the user POV 2nd generation of automating browsers Available in all browser engines (Chromium/Gecko and WebKit) Accessible only in Chromium and Firefox Also used for debugging purposes (e.g. Chrome DevTools) WAYS TO AUTOMATE A BROWSER Browser APIs Web APIs 1st generation of automating (initially used by Selenium in 2004) Provides full control of the execution environment Automation commands are mostly emulated Comes with limitations, e.g. no switching windows or cross origin iFrame support WebDriver Protocol ● ● ● ● ● ● ● ● ● ● ● ●
Web APIs Proxy iFrame
3rd generation of automating browsers Official Web Standard developed at W3C in a common effort by all browser vendors Thoroughly tested as part of the web platform test suite Limited capabilities - originally designed to automate from the user POV 2nd generation of automating browsers Available in all browser engines (Chromium/Gecko and WebKit) Accessible only in Chromium and Firefox Also used for debugging purposes (e.g. Chrome DevTools) WAYS TO AUTOMATE A BROWSER Browser APIs Web APIs 1st generation of automating (initially used by Selenium in 2004) Provides full control of the execution environment Automation commands are mostly emulated Comes with limitations, e.g. no switching windows or cross origin iFrame support WebDriver Protocol ● ● ● ● ● ● ● ● ● ● ● ●
Browser API
3rd generation of automating browsers Official Web Standard developed at W3C in a common effort by all browser vendors Thoroughly tested as part of the web platform test suite Limited capabilities - originally designed to automate from the user POV 2nd generation of automating browsers Available in all browser engines (Chromium/Gecko and WebKit) Accessible only in Chromium and Firefox Also used for debugging purposes (e.g. Chrome DevTools) WAYS TO AUTOMATE A BROWSER Browser APIs JavaScript APIs 1st generation of automating (initially used by Selenium in 2004) Provides full control of the execution environment Automation commands are mostly emulated Comes with limitations, e.g. no switching windows or cross origin iFrame support WebDriver Protocol ● ● ● ● ● ● ● ● ● ● ● ●
Go to URL Current WebDriver Protocol
done 200ms Current WebDriver Protocol
CHALLENGES FOR CLOUD PROVIDER
CHALLENGES FOR CLOUD PROVIDER
CREDITS: This presentation template was created by Slidesgo, including icons by Flaticon, infographics & images by Freepik. SAUCECTL Sauce Testrunner Toolkit $ npm install --save-dev saucectl
SauceCTL Test Bundle Dashboard
CREDITS: This presentation template was created by Slidesgo, including icons by Flaticon, infographics & images by Freepik. Thank you! Any questions? @christian-bromann @bromann

Your Framework for Success: introduction to JavaScript Testing at Scale

  • 1.
    Your Framework for Success Introductionto JavaScript Testing at Scale
  • 2.
    Open Source ProgramOffice @saucelabs Christian Bromann @christian-bromann @bromann Daniel Graham Sr. Software Engineer @saucelabs
  • 3.
    —CARL SAGAN “You haveto know the past to understand the present.”
  • 4.
    2004 2007 20102013 2016 2019 ? Simon Stewart created WebDriver 05 Selenium and WebDriver merge into Selenium-WebDriver 09 Jason Huggins (Sauce Labs Co-Founder) created Selenium 04 Sauce Labs was founded 08 Cypress.io was founded 15 WebDriver becomes W3C Recommendation 18 WebDriver BiDi work initiated 19 1st Release of Selenium-WebDriver JS Bindings 1st Appium Release 1st Testcafe Release 1st Puppeteer Release Cypress Public Beta 1st Playwright Release WHAT HAPPENED PREVIOUSLY... 1st Protractor Release 1st WebdriverIO Release W3C WG starts to spec WebDriver Protocol 12 *v2
  • 5.
  • 6.
    Conventional Tools ● basedon the W3C WebDriver specification ● true cross browser automation ● browser and mobile support ● limited automation capabilities - QA focus ● Open governed open source projects with long history and large communities
  • 7.
    Non-Standard Tools ● custom(non-standardised) automation ○ based on browser APIs ○ or JavaScript emulation ● Limited cross browser support ● More automation capabilities - developer focus ● Company baked and governed Open Source projects ○ Cypress.io → Cypress ○ Testcafe → DevExpress ○ Playwright → Microsoft ○ Puppeteer → Google
  • 8.
    Through the WebDriver protocol AUTOMATIONSTRATEGIES WebdriverIO Through WebDriver & browser APIs Selenium Testcafe Through Web APIs Puppeteer Through browser APIs Cypress.io Through Web + browser APIs Playwright Through custom / modified browser APIs
  • 9.
    3rd generation ofautomating browsers Official Web Standard developed at W3C in a common effort by all browser vendors Thoroughly tested as part of the web platform test suite Limited capabilities - originally designed to automate from the user POV 2nd generation of automating browsers Available in all browser engines (Chromium/Gecko and WebKit) Accessible only in Chromium and Firefox Also used for debugging purposes (e.g. Chrome DevTools) WAYS TO AUTOMATE A BROWSER Browser APIs Web APIs 1st generation of automating (initially used by Selenium in 2004) Provides full control of the execution environment Automation commands are mostly emulated Comes with limitations, e.g. no switching windows or cross origin iFrame support WebDriver Protocol ● ● ● ● ● ● ● ● ● ● ● ●
  • 10.
  • 11.
    3rd generation ofautomating browsers Official Web Standard developed at W3C in a common effort by all browser vendors Thoroughly tested as part of the web platform test suite Limited capabilities - originally designed to automate from the user POV 2nd generation of automating browsers Available in all browser engines (Chromium/Gecko and WebKit) Accessible only in Chromium and Firefox Also used for debugging purposes (e.g. Chrome DevTools) WAYS TO AUTOMATE A BROWSER Browser APIs Web APIs 1st generation of automating (initially used by Selenium in 2004) Provides full control of the execution environment Automation commands are mostly emulated Comes with limitations, e.g. no switching windows or cross origin iFrame support WebDriver Protocol ● ● ● ● ● ● ● ● ● ● ● ●
  • 12.
  • 13.
    3rd generation ofautomating browsers Official Web Standard developed at W3C in a common effort by all browser vendors Thoroughly tested as part of the web platform test suite Limited capabilities - originally designed to automate from the user POV 2nd generation of automating browsers Available in all browser engines (Chromium/Gecko and WebKit) Accessible only in Chromium and Firefox Also used for debugging purposes (e.g. Chrome DevTools) WAYS TO AUTOMATE A BROWSER Browser APIs JavaScript APIs 1st generation of automating (initially used by Selenium in 2004) Provides full control of the execution environment Automation commands are mostly emulated Comes with limitations, e.g. no switching windows or cross origin iFrame support WebDriver Protocol ● ● ● ● ● ● ● ● ● ● ● ●
  • 14.
    Go to URL CurrentWebDriver Protocol
  • 15.
  • 16.
  • 17.
  • 18.
    CREDITS: This presentationtemplate was created by Slidesgo, including icons by Flaticon, infographics & images by Freepik. SAUCECTL Sauce Testrunner Toolkit $ npm install --save-dev saucectl
  • 19.
  • 20.
    CREDITS: This presentationtemplate was created by Slidesgo, including icons by Flaticon, infographics & images by Freepik. Thank you! Any questions? @christian-bromann @bromann