SlideShare a Scribd company logo
1 of 29
The Swiss Army Knife of testing
a web automation story
> WebdriverIO:
by Daniel Chivescu
> Who is this guy?!
QA Lead @ConnectWeb team (with Avira since 2015)
~5 years experience in the Automation field
!Disclaimer¡ > strongly *opinionated speaker
*opinionated – feelings might get hurt
– take it with a grain of salt
Who is this guy?!
You can find me here:
/iamdanchiv
/iamdanchiv
/iamdanchiv
/iamdanchiv
QA Lead @ConnectWeb team (with Avira since 2015)
~5 years experience in the Automation field
Who is this guy?!
> Content & Goals
Content:
 WebdriverIO Intro (Why, How & What)
 present the key features
 Live coding / Test running (in between)
Goals:
 become a WebdriverIO master
 hear less people say they use Protractor
 become a WebdriverIO master
Content & Goals
> Background
JavaScript 3,461,415
Java 2,323,315
CSS 1,810,013
Python 1,652,226
PHP 1,391,467
Ruby 1,106,259
C++ 1,013,761
C 804,339
Shell 592,046
C# 558,332
Objective-C 249,427
Go 196,130
R 163,807
TeX 156,070
VimL 131,261
Perl 124,818
Scala 116,911
CoffeeScript 111,910
Most Used Programming Languages
data by
Background
data by
Background
JavaScript 323,938
Java 222,852
Python 164,852
CSS 164,585
PHP 138,771
Ruby 134,828
C++ 86,505
C 73,075
Shell 65,670
C# 56,062
Objective-C 36,568
R 34,268
VimL 22,450
Go 22,264
Perl 16,188
CoffeeScript 14,302
TeX 13,329
Swift 11,138
Languages With the Most Active Repositories in GitHub
Scala 10,853
Lisp 9,978
• Mobile device numbers are growing exponentially
• Thus, JavaScript apps are developed exponentially
• Said apps need to work flawlessly (cross-platform)
•So testing becomes CRITICAL
•But, TESTING takes TIME
QED: The truthAUTOMATION will set you free.
Background
> Story time !!!
Rewind 2 years ago…
WebdriverJS-based Automation Harness
~180 functional tests => 94 min run-time (No Bueno!)
=> 90-95% pass-rate (Muy malo!)
Hell to maintain…
Hell to extend…
Hell to debug…
HELL!
Story time
> Enter WebdriverIO
Enter WebdriverIO
 a WebdriverJS fork (from Camilo Tapia's initial Selenium
project)
 renamed to WebdriverIO in 2014
 NodeJS-based WebDriver bindings
 Supports both TDD & BDD frameworks
 Extendable, Compatible, Feature-rich (integrations galore!)
 GOOD documentation, GREAT community (Gitter Chat)
 Currently maintained by Christian Bromann
 ~3500 on GitHub
> What’s in the box?
What’s in the box?
Features:
 synchronous command handling
 supports a variety of hooks
 command line interface support
 REPL interface
 Gulp, Grunt & Webpack support
 selector chaining
http://webdriver.io/
What’s in the box?
 WDIO Testrunner
 Reporters
 Services
 Plugins
 GREAT DOCUMENTATION
http://webdriver.io/guide.html
> Seeing is believing
Seeing is believing
Goal: Setup and run our first WebdriverIO test case.
Software dependencies:
 install (@latest)
 install Java (JRE 8)
 a console ( & ) and a text editor ( )
http://webdriver.io/guide/getstarted/install.html
Services
Sauce Labs Appium
Browserstack Firefox Profile
TestingBot Selenium Standalone
Visual Regression
Webpack
PhantomJS
Static Server
Selenium Cloud Testing services
Tools & Mobile support
Miscellaneous
Reporters
WebdriverIO also supports multiple reporters:
 Dot
 Spec
 Junit
 Allure
 Teamcity
http://webdriver.io/guide/reporters/<reporter>.html
 Json
 Concise
 Tap
 Customreporter
> Is it fast though?
WebdriverJS (Cucumber) vs. WebdriverIO (Mocha-Chai):
 run 2 test cases
 compare run-times
 extrapolate results to a real-life regression
Is it fast though?
 WebdriverIO regression:
 WebdriverJS regression:
WebdriverJS (Cucumber) vs. WebdriverIO (Mocha-Chai):
 run 2 test cases
 compare run-times
 extrapolate results to a real-life regression
Is it fast though?
 WebdriverIO regression:
 WebdriverJS regression:
> Let’s get visual!
Let’s get Visual!
(if time allows)
 WebdriverIO offers support for visual regression
 we’ll use `wdio-visual-regression-service`:
$ npm install wdio-visual-regression-service --save-dev
http://webdriver.io/guide/services/visual-regression.html
Here’s your cookie!
Google Trends graph for Java (2004 - present)
ME JAVA
BEEP BOOP… INPUT
YOUR QUESTIONS
MORTAL AUDIENCE !!!
01110100 01101000
01100001 01101110
01101011 01110011,
errr… THANKS!

More Related Content

What's hot

Selenium - Introduction
Selenium - IntroductionSelenium - Introduction
Selenium - IntroductionAmr E. Mohamed
 
Selenium Page Object Model Using Page Factory | Selenium Tutorial For Beginne...
Selenium Page Object Model Using Page Factory | Selenium Tutorial For Beginne...Selenium Page Object Model Using Page Factory | Selenium Tutorial For Beginne...
Selenium Page Object Model Using Page Factory | Selenium Tutorial For Beginne...Edureka!
 
Saving Time By Testing With Jest
Saving Time By Testing With JestSaving Time By Testing With Jest
Saving Time By Testing With JestBen McCormick
 
Selenium Tutorial Java
Selenium Tutorial  JavaSelenium Tutorial  Java
Selenium Tutorial JavaAhmed HARRAK
 
Test Automation and Selenium
Test Automation and SeleniumTest Automation and Selenium
Test Automation and SeleniumKarapet Sarkisyan
 
Use Node.js to create a REST API
Use Node.js to create a REST APIUse Node.js to create a REST API
Use Node.js to create a REST APIFabien Vauchelles
 
Automated testing using Selenium & NUnit
Automated testing using Selenium & NUnitAutomated testing using Selenium & NUnit
Automated testing using Selenium & NUnitAlfred Jett Grandeza
 
Page Object Model and Implementation in Selenium
Page Object Model and Implementation in Selenium  Page Object Model and Implementation in Selenium
Page Object Model and Implementation in Selenium Zoe Gilbert
 
Selenium WebDriver Tutorial For Beginners | What Is Selenium WebDriver | Sele...
Selenium WebDriver Tutorial For Beginners | What Is Selenium WebDriver | Sele...Selenium WebDriver Tutorial For Beginners | What Is Selenium WebDriver | Sele...
Selenium WebDriver Tutorial For Beginners | What Is Selenium WebDriver | Sele...Edureka!
 
Automation Testing using Selenium Webdriver
Automation Testing using Selenium WebdriverAutomation Testing using Selenium Webdriver
Automation Testing using Selenium WebdriverPankaj Biswas
 
Introduction cypress
Introduction cypressIntroduction cypress
Introduction cypressOim Trust
 

What's hot (20)

Selenium - Introduction
Selenium - IntroductionSelenium - Introduction
Selenium - Introduction
 
Selenium Page Object Model Using Page Factory | Selenium Tutorial For Beginne...
Selenium Page Object Model Using Page Factory | Selenium Tutorial For Beginne...Selenium Page Object Model Using Page Factory | Selenium Tutorial For Beginne...
Selenium Page Object Model Using Page Factory | Selenium Tutorial For Beginne...
 
Saving Time By Testing With Jest
Saving Time By Testing With JestSaving Time By Testing With Jest
Saving Time By Testing With Jest
 
Selenium
SeleniumSelenium
Selenium
 
Selenium WebDriver
Selenium WebDriverSelenium WebDriver
Selenium WebDriver
 
Selenium Tutorial Java
Selenium Tutorial  JavaSelenium Tutorial  Java
Selenium Tutorial Java
 
Swagger
SwaggerSwagger
Swagger
 
Test Automation and Selenium
Test Automation and SeleniumTest Automation and Selenium
Test Automation and Selenium
 
Use Node.js to create a REST API
Use Node.js to create a REST APIUse Node.js to create a REST API
Use Node.js to create a REST API
 
Automated testing using Selenium & NUnit
Automated testing using Selenium & NUnitAutomated testing using Selenium & NUnit
Automated testing using Selenium & NUnit
 
Selenium IDE LOCATORS
Selenium IDE LOCATORSSelenium IDE LOCATORS
Selenium IDE LOCATORS
 
Page Object Model and Implementation in Selenium
Page Object Model and Implementation in Selenium  Page Object Model and Implementation in Selenium
Page Object Model and Implementation in Selenium
 
Cross browser testing
Cross browser testingCross browser testing
Cross browser testing
 
Deep dive into SoapUI
Deep dive into SoapUIDeep dive into SoapUI
Deep dive into SoapUI
 
Bdd and spec flow
Bdd and spec flowBdd and spec flow
Bdd and spec flow
 
Selenium WebDriver Tutorial For Beginners | What Is Selenium WebDriver | Sele...
Selenium WebDriver Tutorial For Beginners | What Is Selenium WebDriver | Sele...Selenium WebDriver Tutorial For Beginners | What Is Selenium WebDriver | Sele...
Selenium WebDriver Tutorial For Beginners | What Is Selenium WebDriver | Sele...
 
Automation Testing using Selenium Webdriver
Automation Testing using Selenium WebdriverAutomation Testing using Selenium Webdriver
Automation Testing using Selenium Webdriver
 
Automation Testing by Selenium Web Driver
Automation Testing by Selenium Web DriverAutomation Testing by Selenium Web Driver
Automation Testing by Selenium Web Driver
 
Introduction cypress
Introduction cypressIntroduction cypress
Introduction cypress
 
Web Accessibility Testing With Axe
Web Accessibility Testing With AxeWeb Accessibility Testing With Axe
Web Accessibility Testing With Axe
 

Similar to The Swiss Army Knife of Web Testing

Modern e2e-testing-for-complex-web-applications-with-cypressio
Modern e2e-testing-for-complex-web-applications-with-cypressioModern e2e-testing-for-complex-web-applications-with-cypressio
Modern e2e-testing-for-complex-web-applications-with-cypressioMarios Fakiolas
 
DYI - Starting your own webrtc project
DYI - Starting your own webrtc projectDYI - Starting your own webrtc project
DYI - Starting your own webrtc projectAlexandre Gouaillard
 
Scale security for a dollar or less
Scale security for a dollar or lessScale security for a dollar or less
Scale security for a dollar or lessMohammed A. Imran
 
Strengthen and Scale Security for a dollar or less
Strengthen and Scale Security for a dollar or lessStrengthen and Scale Security for a dollar or less
Strengthen and Scale Security for a dollar or lessMohammed A. Imran
 
The Ultimate Getting Started with Angular Workshop - Devoxx UK 2017
The Ultimate Getting Started with Angular Workshop - Devoxx UK 2017The Ultimate Getting Started with Angular Workshop - Devoxx UK 2017
The Ultimate Getting Started with Angular Workshop - Devoxx UK 2017Matt Raible
 
Lap around Visual Studio 2013
Lap around Visual Studio 2013Lap around Visual Studio 2013
Lap around Visual Studio 2013Valdis Iljuconoks
 
Strengthen and Scale Security Using DevSecOps - OWASP Indonesia
Strengthen and Scale Security Using DevSecOps - OWASP IndonesiaStrengthen and Scale Security Using DevSecOps - OWASP Indonesia
Strengthen and Scale Security Using DevSecOps - OWASP IndonesiaMohammed A. Imran
 
DevOps CTO Masterclass | Webinar Oct. 2020
DevOps CTO Masterclass | Webinar Oct. 2020DevOps CTO Masterclass | Webinar Oct. 2020
DevOps CTO Masterclass | Webinar Oct. 2020Cyber-Duck
 
Laravel CI / CD in Azure Web Apps - Global Azure Bootcamp Jakarta
Laravel CI / CD in Azure Web Apps -  Global Azure Bootcamp JakartaLaravel CI / CD in Azure Web Apps -  Global Azure Bootcamp Jakarta
Laravel CI / CD in Azure Web Apps - Global Azure Bootcamp JakartaBilly Riantono
 
WSO2Con EU 2015: Keynote - The Containerization of the Developer Workspace
WSO2Con EU 2015: Keynote - The Containerization of the Developer WorkspaceWSO2Con EU 2015: Keynote - The Containerization of the Developer Workspace
WSO2Con EU 2015: Keynote - The Containerization of the Developer WorkspaceWSO2
 
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...Janusz Nowak
 
Get Hip with JHipster - GIDS 2019
Get Hip with JHipster - GIDS 2019Get Hip with JHipster - GIDS 2019
Get Hip with JHipster - GIDS 2019Matt Raible
 
Surati Tech Talks 2022 / Build reliable Svelte applications using Cypress
Surati Tech Talks 2022 / Build reliable Svelte applications using CypressSurati Tech Talks 2022 / Build reliable Svelte applications using Cypress
Surati Tech Talks 2022 / Build reliable Svelte applications using CypressMaurice De Beijer [MVP]
 
Arm html5 presentation
Arm html5 presentationArm html5 presentation
Arm html5 presentationIan Renyard
 
Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021Matt Raible
 
Java Web Application Security - Jazoon 2011
Java Web Application Security - Jazoon 2011Java Web Application Security - Jazoon 2011
Java Web Application Security - Jazoon 2011Matt Raible
 
Java Web Application Security - UberConf 2011
Java Web Application Security - UberConf 2011Java Web Application Security - UberConf 2011
Java Web Application Security - UberConf 2011Matt Raible
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxGrace Jansen
 
Java Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and MobileJava Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and MobileElias Nogueira
 

Similar to The Swiss Army Knife of Web Testing (20)

Modern e2e-testing-for-complex-web-applications-with-cypressio
Modern e2e-testing-for-complex-web-applications-with-cypressioModern e2e-testing-for-complex-web-applications-with-cypressio
Modern e2e-testing-for-complex-web-applications-with-cypressio
 
DYI - Starting your own webrtc project
DYI - Starting your own webrtc projectDYI - Starting your own webrtc project
DYI - Starting your own webrtc project
 
Scale security for a dollar or less
Scale security for a dollar or lessScale security for a dollar or less
Scale security for a dollar or less
 
Strengthen and Scale Security for a dollar or less
Strengthen and Scale Security for a dollar or lessStrengthen and Scale Security for a dollar or less
Strengthen and Scale Security for a dollar or less
 
The Ultimate Getting Started with Angular Workshop - Devoxx UK 2017
The Ultimate Getting Started with Angular Workshop - Devoxx UK 2017The Ultimate Getting Started with Angular Workshop - Devoxx UK 2017
The Ultimate Getting Started with Angular Workshop - Devoxx UK 2017
 
Lap around Visual Studio 2013
Lap around Visual Studio 2013Lap around Visual Studio 2013
Lap around Visual Studio 2013
 
Strengthen and Scale Security Using DevSecOps - OWASP Indonesia
Strengthen and Scale Security Using DevSecOps - OWASP IndonesiaStrengthen and Scale Security Using DevSecOps - OWASP Indonesia
Strengthen and Scale Security Using DevSecOps - OWASP Indonesia
 
DevOps CTO Masterclass | Webinar Oct. 2020
DevOps CTO Masterclass | Webinar Oct. 2020DevOps CTO Masterclass | Webinar Oct. 2020
DevOps CTO Masterclass | Webinar Oct. 2020
 
Devops course content
Devops course contentDevops course content
Devops course content
 
Laravel CI / CD in Azure Web Apps - Global Azure Bootcamp Jakarta
Laravel CI / CD in Azure Web Apps -  Global Azure Bootcamp JakartaLaravel CI / CD in Azure Web Apps -  Global Azure Bootcamp Jakarta
Laravel CI / CD in Azure Web Apps - Global Azure Bootcamp Jakarta
 
WSO2Con EU 2015: Keynote - The Containerization of the Developer Workspace
WSO2Con EU 2015: Keynote - The Containerization of the Developer WorkspaceWSO2Con EU 2015: Keynote - The Containerization of the Developer Workspace
WSO2Con EU 2015: Keynote - The Containerization of the Developer Workspace
 
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
 
Get Hip with JHipster - GIDS 2019
Get Hip with JHipster - GIDS 2019Get Hip with JHipster - GIDS 2019
Get Hip with JHipster - GIDS 2019
 
Surati Tech Talks 2022 / Build reliable Svelte applications using Cypress
Surati Tech Talks 2022 / Build reliable Svelte applications using CypressSurati Tech Talks 2022 / Build reliable Svelte applications using Cypress
Surati Tech Talks 2022 / Build reliable Svelte applications using Cypress
 
Arm html5 presentation
Arm html5 presentationArm html5 presentation
Arm html5 presentation
 
Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021
 
Java Web Application Security - Jazoon 2011
Java Web Application Security - Jazoon 2011Java Web Application Security - Jazoon 2011
Java Web Application Security - Jazoon 2011
 
Java Web Application Security - UberConf 2011
Java Web Application Security - UberConf 2011Java Web Application Security - UberConf 2011
Java Web Application Security - UberConf 2011
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptx
 
Java Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and MobileJava Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and Mobile
 

Recently uploaded

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 

Recently uploaded (20)

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 

The Swiss Army Knife of Web Testing

  • 1. The Swiss Army Knife of testing a web automation story > WebdriverIO: by Daniel Chivescu
  • 2. > Who is this guy?!
  • 3. QA Lead @ConnectWeb team (with Avira since 2015) ~5 years experience in the Automation field !Disclaimer¡ > strongly *opinionated speaker *opinionated – feelings might get hurt – take it with a grain of salt Who is this guy?!
  • 4. You can find me here: /iamdanchiv /iamdanchiv /iamdanchiv /iamdanchiv QA Lead @ConnectWeb team (with Avira since 2015) ~5 years experience in the Automation field Who is this guy?!
  • 5. > Content & Goals
  • 6. Content:  WebdriverIO Intro (Why, How & What)  present the key features  Live coding / Test running (in between) Goals:  become a WebdriverIO master  hear less people say they use Protractor  become a WebdriverIO master Content & Goals
  • 8. JavaScript 3,461,415 Java 2,323,315 CSS 1,810,013 Python 1,652,226 PHP 1,391,467 Ruby 1,106,259 C++ 1,013,761 C 804,339 Shell 592,046 C# 558,332 Objective-C 249,427 Go 196,130 R 163,807 TeX 156,070 VimL 131,261 Perl 124,818 Scala 116,911 CoffeeScript 111,910 Most Used Programming Languages data by Background
  • 9. data by Background JavaScript 323,938 Java 222,852 Python 164,852 CSS 164,585 PHP 138,771 Ruby 134,828 C++ 86,505 C 73,075 Shell 65,670 C# 56,062 Objective-C 36,568 R 34,268 VimL 22,450 Go 22,264 Perl 16,188 CoffeeScript 14,302 TeX 13,329 Swift 11,138 Languages With the Most Active Repositories in GitHub Scala 10,853 Lisp 9,978
  • 10. • Mobile device numbers are growing exponentially • Thus, JavaScript apps are developed exponentially • Said apps need to work flawlessly (cross-platform) •So testing becomes CRITICAL •But, TESTING takes TIME QED: The truthAUTOMATION will set you free. Background
  • 12. Rewind 2 years ago… WebdriverJS-based Automation Harness ~180 functional tests => 94 min run-time (No Bueno!) => 90-95% pass-rate (Muy malo!) Hell to maintain… Hell to extend… Hell to debug… HELL! Story time
  • 14. Enter WebdriverIO  a WebdriverJS fork (from Camilo Tapia's initial Selenium project)  renamed to WebdriverIO in 2014  NodeJS-based WebDriver bindings  Supports both TDD & BDD frameworks  Extendable, Compatible, Feature-rich (integrations galore!)  GOOD documentation, GREAT community (Gitter Chat)  Currently maintained by Christian Bromann  ~3500 on GitHub
  • 15. > What’s in the box?
  • 16. What’s in the box? Features:  synchronous command handling  supports a variety of hooks  command line interface support  REPL interface  Gulp, Grunt & Webpack support  selector chaining http://webdriver.io/
  • 17. What’s in the box?  WDIO Testrunner  Reporters  Services  Plugins  GREAT DOCUMENTATION http://webdriver.io/guide.html
  • 18. > Seeing is believing
  • 19. Seeing is believing Goal: Setup and run our first WebdriverIO test case. Software dependencies:  install (@latest)  install Java (JRE 8)  a console ( & ) and a text editor ( ) http://webdriver.io/guide/getstarted/install.html
  • 20. Services Sauce Labs Appium Browserstack Firefox Profile TestingBot Selenium Standalone Visual Regression Webpack PhantomJS Static Server Selenium Cloud Testing services Tools & Mobile support Miscellaneous
  • 21. Reporters WebdriverIO also supports multiple reporters:  Dot  Spec  Junit  Allure  Teamcity http://webdriver.io/guide/reporters/<reporter>.html  Json  Concise  Tap  Customreporter
  • 22. > Is it fast though?
  • 23. WebdriverJS (Cucumber) vs. WebdriverIO (Mocha-Chai):  run 2 test cases  compare run-times  extrapolate results to a real-life regression Is it fast though?  WebdriverIO regression:  WebdriverJS regression:
  • 24. WebdriverJS (Cucumber) vs. WebdriverIO (Mocha-Chai):  run 2 test cases  compare run-times  extrapolate results to a real-life regression Is it fast though?  WebdriverIO regression:  WebdriverJS regression:
  • 25. > Let’s get visual!
  • 26. Let’s get Visual! (if time allows)  WebdriverIO offers support for visual regression  we’ll use `wdio-visual-regression-service`: $ npm install wdio-visual-regression-service --save-dev http://webdriver.io/guide/services/visual-regression.html
  • 27. Here’s your cookie! Google Trends graph for Java (2004 - present) ME JAVA
  • 28. BEEP BOOP… INPUT YOUR QUESTIONS MORTAL AUDIENCE !!!
  • 29. 01110100 01101000 01100001 01101110 01101011 01110011, errr… THANKS!