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?!
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
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
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
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:
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