SlideShare a Scribd company logo
1 of 66
Download to read offline
TEST AUTOMATISIERUNG
MIT WEBDRIVER.IO
Ich bin Christian Bromann
Software Engineer
bei Sauce Labs
1.
WebDriver
Protokoll
“WebDriver is a remote control
interface that enables
introspection and control of user
agents.
Was ist das WebDriver Protokoll?
▸ Offizieller W3C Standard für Browser Automatisierung
▸ Vorgänger des JSONWireProtocol
▸ WebDriver !== Selenium!!!
▸ Definiert ein REST Interface
▸ Ermöglicht Automatisierung aller Browser
▸ Kann mit allen Programmiersprachen genutzt werden
(minimale Anforderungen: das Senden von HTTP Anfragen)
const elem = $("#myElem")
elem.click()
Chromedriver
Geckodriver
IEDriver
EdgeDriver
SafariDriver
Appium
Selendroid
WebDriverAgent
HTTP
Selenium Grid
… even on a SmartTV
HTTP
const elem = $("#myElem")
elem.click()
1.
Webdriver.IO
KEY FEATURES
Einfache Installation
KEY FEATURES
Integration mit Applitools et al.
KEY FEATURES
Online Tutorials und Lern Inhalte
KEY FEATURES
Support Community
KEY FEATURES
Teil der OpenJS Foundation
❤
Standalone Mode
Nutzung der
Autom.-befehle über das
Node.js Modul:
WebdriverIO kann auf drei verschiedenen Arten genutzt werden!
WDIO Testrunner
Nutzung des Testrunners,
um Tests parallel laufen zu
lassen:
import {remote} from ‘webdriverio’
const client = remote({
capabilities: { ... }
})
$ wdio wdio.conf.js
Bare Metal Mode
Schnittstelle um direkt
auf das WebDriver
Protokoll zuzugreifen:
import WebDriver from 'webdriver'
const client = await WebDriver
.newSession({
capabilities: {
browserName: 'firefox'
}
})
import WebDriver from 'webdriver'
;(async () => {
const client = await WebDriver.newSession({
path: '/',
capabilities: { browserName: 'firefox' }
})
await client.navigateTo('https://www.google.com/ncr')
const searchInput = await client.findElement('css selector', '#lst-ib')
await client.elementSendKeys(
searchInput['element-6066-11e4-a52e-4f735466cecf'], 'WebDriver'
)
// ...
console.log(await client.getTitle()) // outputs "WebDriver - Google Search"
await client.deleteSession()
})()
BARE METAL MODE
import { remote } from 'webdriverio'
;(async () => {
const browser = await remote({
capabilities: {
browserName: 'chrome'
}
})
await browser.url('http://webdriver.io')
const elem = await browser.$('#someElem')
await elem.click()
// ...
await browser.deleteSession()
})()
STANDALONE MODE
var expect = require('chai').expect;
describe('webdriver.io api page', function() {
it('should be able to filter for commands', function () {
browser.url('http://webdriver.io/api.html');
$('.searchbar input').setValue('getT');
var results = $$('.commands.property a').filter(function (link) {
return link.isVisible();
});
expect(results.length).to.be.equal(3);
// check out second result
results[1].click();
expect($('.doc h1').getText()).to.be.equal('GETTEXT');
});
});
WDIO TESTRUNNER MODE
Die Konfigurationsdatei
Die Datei, die alle Konfigurationen für den Testlauf
beinhaltet.
UNTERSCHIEDLICHE
KONFIGURATIONS-
DATEIEN FÜR
VERSCHIEDENE
UMGEBUNGEN
development stagingwdio.conf.js
UNTERSTÜTZTE TEST FRAMEWORKS
PLUGINS & EXTENSIONS
Frameworks
▸ Mocha
▸ Jasmine
▸ Cucumber
Reporter
▸ Spec
▸ Dot
▸ Allure
▸ JUnit
▸ TeamCity
▸ Tap
▸ Mochaawesome
▸ ...
Services
▸ Sauce
▸ Appium
▸ Static Server
▸ Webpack
▸ Chromedriver
▸ Selenium Standalone
▸ Docker
▸ ...
SERVICES IN WEBDRIVER.IO
▸ Möglichkeit Code zu bestimmten Zeiten während des Tests auszuführen
▸ Dazu gibt es sog. Hooks:
▹ onPrepare / onComplete
▹ beforeSession / afterSession
▹ before / after
▹ beforeSuite / afterSuite
▹ beforeTest / afterTest
▹ beforeCommand / afterCommand
▸ Ermöglicht die Modifizierung von Optionen und kann die browser
Instanz mit nützlichen Funktionen bereichern
▸ Nutzung von selbst erstellten Services möglich
WDIO DEVTOOLS SERVICE
ChromedriverHTTP
browser.url("https://webdriver.io")
browser.startTracing()
WebSockets
WebSockets
WAS NOCH?
MEHR
FUNKTIONEN
Element with certain text
const header = $('h1=Welcome to my Page');
const header2 = $('h1*=Welcome');
AUSWÄHLEN VON ELEMENTEN
DURCH DAS WEBDRIVER PROTOKOLL
CSS Query Selector
const elem = $('h2.subheading a');
elem.click();
Link Text
<!-- index.html -->
<a href="http://webdriver.io">WebdriverIO</a>
<h1>Welcome to my Page</h1>
// test.js
const link = $('=WebdriverIO');
console.log(link.getText()); // outputs: "WebdriverIO"
Partial Link Text
const link = $('*=driver');
console.log(link.getText()); // outputs: "WebdriverIO"
XPath
const elem = $('//BODY/P[1]');
elem.click();
React.JS Support
<!-- my-component.jsx -->
import React from 'react'
import ReactDOM from 'react-dom'
const MyComponent = (props) => {
const { name } = props;
const [state] = React.useState(name === 'there'
? ', how are you?' : '')
return (<div>Hello {name || 'World'}{state}</div>)
}
ReactDOM.render(
<div>
<MyComponent />
<MyComponent name="Barry"/>
<MyComponent name="WebdriverIO"/>
<MyComponent name="there"/>
</div>,
document.getElementById('#root'),
)
// test.js
const myComponent = browser.react$('MyComponent')
expect(myComponent.isDisplayed()).toBe(true) // pass
const myComponent = browser.react$('MyComponent', {name: 'WebdriverIO'})
expect(myComponent.getText()).toBe('Hello WebdriverIO') // pass
const myComponent = browser.react$('MyComponent', {}, ', how are you?')
expect(myComponent.getText()).toBe('Hello there, how are you?') // pass
AUSWÄHLEN VON ELEMENTEN
DURCH DAS WEBDRIVER PROTOKOLL
Accessibility ID
const elem = $('~my_identifier');
elem.click();
UI Automator (iOS)
const selector = 'UIATarget.localTarget().frontMostApp().mainWindow().buttons()[0]';
const Button = $(`ios=${selector}`);
Button.click();
Class Name
// iOS example
$('UIATextField').click();
// Android example
$('android.widget.DatePicker').click();
UI Automator (Android)
const selector = 'new UiSelector().text("Cancel").className("android.widget.Button")';
const Button = $(`android=${selector}`);
Button.click();
AUSWÄHLEN VON ELEMENTEN
MIT Appium
Hervorragend geeignet, um spezifische (asynchrone) Logiken in
einen synchronen Befehl zu verwandeln:
browser.addCommand('deleteUser', (username) => {
return axios.post(
'/rest/v1/_test_helpers/delete_user',
{ user: username }
);
});
browser.deleteUser('anonymous123')
browser.url('/dashboard')
// ...
BENUTZERDEFINIERTE BEFEHLE
MULTIREMOTE
FEATURE
Normaler Test
Resultat
Multiremote Test
Resultat
...
EIN WENIG THEORIE!
Das Page
Objekt Model.
THE PAGE OBJECT MODEL
▸ Sehr populäres Design pattern in der Testautomatisierung
▸ Hält Code sauber und einfach zu managen
▸ In einer idealen Welt würde ein Page Redesign nur Änderungen im
POM erfordern und nicht in den Tests
▸ Alles kann in einem POM abstrahiert werden
▸ Ein POM enthält:
▹ Locators und Elemente
▹ Methoden die spezifische Workflows und Interaktionen mit der
Seite abbilden
EINE DEMO SAGT
MEHR ALS 1000 WORTE
MULTIREMOTE
PERFORMANCE
TESTING
VISUAL REGRESSION
TESTING
WATCH MODE
Zusammenfassung
● WebdriverIO ist ein Framework zur
Automatisierung von E2E (end-to
-end) Tests
● Unterstützt Automatisierung basierend
auf dem WebDriver Protokoll und kann
dadurch Browser als auch mobile Geräte
(web oder native Apps) steuern
● Bietet einen Testrunner, der neben dem
Reporting eine große Anzahl von weiteren
Aufgaben übernimmt, die beim täglichen
Testen anfallen (Integrationen)
Wo kann ich anfangen?
Projektdokumentation: https://webdriver.io
Online Kurs: https://learn.webdriver.io/
Support Chat: https://gitter.im/webdriverio/webdriverio
https://www.meetup.com/de-DE/continuous-testing-meetup-berlin/
DANKE!
Noch Fragen?
Schreibe mir auf Twitter an: @bromann
oder via E-Mail: christian@saucelabs.com
Slides: http://bit.ly/test-automation-with-webdriverio
BIG CONCEPT
Bring the attention of your audience over a key
concept using icons or illustrations
White
Is the color of milk and
fresh snow, the color
produced by the
combination of all the
colors of the visible
spectrum.
YOU CAN ALSO SPLIT YOUR CONTENT
Black
Is the color of coal, ebony,
and of outer space. It is
the darkest color, the
result of the absence of or
complete absorption of
light.
IN TWO OR THREE COLUMNS
Yellow
Is the color of gold,
butter and ripe
lemons. In the
spectrum of visible
light, yellow is found
between green and
orange.
Blue
Is the colour of the
clear sky and the
deep sea. It is located
between violet and
green on the optical
spectrum.
Red
Is the color of blood,
and because of this it
has historically been
associated with
sacrifice, danger and
courage.
WANT BIG IMPACT?
Use big
image.
USE CHARTS TO
EXPLAIN YOUR
IDEAS
WHITE BLACKGRAY
AND TABLES TO COMPARE DATA
A B C
Yellow 10 20 7
Blue 30 15 10
Orange 5 24 16
MAPS
our office
89,526,124Whoa! That’s a big number, aren’t you proud?
89,526,124$That’s a lot of money
100%Total success!
185,244 usersAnd a lot of users
OUR PROCESS IS
EASY
First
Second
Last
LET’S REVIEW SOME CONCEPTS
Yellow
Is the color of gold, butter and
ripe lemons. In the spectrum of
visible light, yellow is found
between green and orange.
Blue
Is the colour of the clear sky
and the deep sea. It is located
between violet and green on the
optical spectrum.
Red
Is the color of blood, and
because of this it has
historically been associated
with sacrifice, danger and
courage.
Yellow
Is the color of gold, butter and
ripe lemons. In the spectrum of
visible light, yellow is found
between green and orange.
Blue
Is the colour of the clear sky
and the deep sea. It is located
between violet and green on the
optical spectrum.
Red
Is the color of blood, and
because of this it has
historically been associated
with sacrifice, danger and
courage.
You can copy&paste graphs from Google Sheets
Place your screenshot here
ANDROID PROJECT
Show and explain your web, app
or software projects using
these gadget templates.
Place your screenshot
here
IPHONE PROJECT
Show and explain your web, app
or software projects using
these gadget templates.
Place your screenshot here
TABLET PROJECT
Show and explain your web, app
or software projects using
these gadget templates.
Place your screenshot here
DESKTOP PROJECT
Show and explain your
web, app or software
projects using these
gadget templates.
THANKS!
Any questions?
You can find me at @username &
user@mail.me
CREDITS
Special thanks to all the people who made and released these
awesome resources for free:
▸ Simple line icons by Mirko Monti
▸ E-commerce icons by Virgil Pana
▸ Streamline iconset by Webalys
▸ Presentation template by SlidesCarnival
▸ Photographs by Death to the Stock Photo (license)
PRESENTATION DESIGN
This presentations uses the following typographies and colors:
▸ Titles: Montserrat
▸ Body copy: Karla
You can download the fonts on this page:
http://www.google.com/fonts/#UsePlace:use/Collection:Montserrat:400,700|Karla:400,400italic,700,700italic
Click on the “arrow button” that appears on the top right
Red #F44336 Deep orange #FF5722 Orange #FF9800 Amber #FFC107
Yellow #FFEB3B Lime #CDDC39 Green #8BC34A Dark green #4CAF50
Teal #009688 Cyan #00BCD4 Blue #03A9F4 Dark blue #2196F3
Indigo #3F51B5 Deep Purple #673AB7 Purple #9C27B0 Magenta #E91E63
Blue gray #607D8B
You don’t need to keep this
slide in your presentation.
It’s only here to serve you
as a design guide if you
need to create new slides
or download the fonts to
edit the presentation in
PowerPoint®
What’s this?
This is a free presentation template for
Google Slides designed by
SlidesCarnival.
We believe that good design serves to
better communicate ideas, so we create
free quality presentation templates for
you to focus on the content.
Enjoy them at will and share with us
your results at:
twitter.com/SlidesCarnival
facebook.com/slidescarnival
ABOUT THIS TEMPLATE
How can I use it?
Open this document in Google Slides (if you are at
slidescarnival.com use the button below this presentation).
You have to be signed in to your Google account
EDIT IN GOOGLE SLIDES
Go to the File menu and select Make a copy. You will get a
copy of this document on your Google Drive and will be able
to edit, add or delete slides.
EDIT IN MICROSOFT POWERPOINT®
Go to the File menu and select Download as Microsoft
PowerPoint. You will get a .pptx file that you can edit in
PowerPoint. Remember to download and install the fonts
used in this presentation (you’ll find the links to the font files
needed in the Presentation design slide)
This template is free to use
under Creative Commons
Attribution license. If you
use the graphic assets
(photos, icons and
typographies) provided with
this presentation you must
keep the Credits slide.
Line Icons by Webalys, Virgil Pana and Mirko Monti are published under a Creative Commons Attribution license and Free for both personal and commercial
use. You can copy, adapt, remix, distribute or transmit them. If you use these sets on your presentation remember to keep the “Credits” slide or provide a
mention and link to these resources:
● Mirko Monti - Simple line icons
● Virgil Pana - E-commerce icons
● Webalys - Streamline iconset

More Related Content

Similar to [Deu] Test Automatisierung Mit Web Driver.io

Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...
Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...
Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...COMAQA.BY
 
Chrome Devtools Protocol via Selenium/Appium (English)
Chrome Devtools Protocol via Selenium/Appium (English)Chrome Devtools Protocol via Selenium/Appium (English)
Chrome Devtools Protocol via Selenium/Appium (English)Kazuaki Matsuo
 
Session on Selenium Powertools by Unmesh Gundecha
Session on Selenium Powertools by Unmesh GundechaSession on Selenium Powertools by Unmesh Gundecha
Session on Selenium Powertools by Unmesh GundechaAgile Testing Alliance
 
Cross browser testing using BrowserStack
Cross browser testing using BrowserStack Cross browser testing using BrowserStack
Cross browser testing using BrowserStack RapidValue
 
Session on Selenium 4 : What’s coming our way? by Hitesh Prajapati
Session on Selenium 4 : What’s coming our way? by Hitesh PrajapatiSession on Selenium 4 : What’s coming our way? by Hitesh Prajapati
Session on Selenium 4 : What’s coming our way? by Hitesh PrajapatiAgile Testing Alliance
 
Selenium 4 - What's coming our way - v1.0.pptx
Selenium 4 - What's coming our way - v1.0.pptxSelenium 4 - What's coming our way - v1.0.pptx
Selenium 4 - What's coming our way - v1.0.pptxHitesh Prajapati
 
Sauce Labs+Applitools - Automated Visual Testing in the Cloud
Sauce Labs+Applitools - Automated Visual Testing in the CloudSauce Labs+Applitools - Automated Visual Testing in the Cloud
Sauce Labs+Applitools - Automated Visual Testing in the CloudSauce Labs
 
EmacsConf 2019: Interactive Remote Debugging and Development with TRAMP Mode
EmacsConf 2019: Interactive Remote Debugging and Development with TRAMP ModeEmacsConf 2019: Interactive Remote Debugging and Development with TRAMP Mode
EmacsConf 2019: Interactive Remote Debugging and Development with TRAMP ModeMatt Ray
 
Selenium Clinic Eurostar 2012 WebDriver Tutorial
Selenium Clinic Eurostar 2012 WebDriver TutorialSelenium Clinic Eurostar 2012 WebDriver Tutorial
Selenium Clinic Eurostar 2012 WebDriver TutorialAlan Richardson
 
Selenium Testing with TestingBot.com
Selenium Testing with TestingBot.comSelenium Testing with TestingBot.com
Selenium Testing with TestingBot.comtestingbot
 
Introduction to Codenvy / JugSummerCamp 2014
Introduction to Codenvy / JugSummerCamp 2014Introduction to Codenvy / JugSummerCamp 2014
Introduction to Codenvy / JugSummerCamp 2014Florent BENOIT
 
Good practices for debugging Selenium and Appium tests
Good practices for debugging Selenium and Appium testsGood practices for debugging Selenium and Appium tests
Good practices for debugging Selenium and Appium testsAbhijeet Vaikar
 
performancetestingjmeter-121109061704-phpapp02
performancetestingjmeter-121109061704-phpapp02performancetestingjmeter-121109061704-phpapp02
performancetestingjmeter-121109061704-phpapp02Gopi Raghavendra
 
performancetestingjmeter-121109061704-phpapp02 (1)
performancetestingjmeter-121109061704-phpapp02 (1)performancetestingjmeter-121109061704-phpapp02 (1)
performancetestingjmeter-121109061704-phpapp02 (1)QA Programmer
 
Mastering Test Automation: How To Use Selenium Successfully
Mastering Test Automation: How To Use Selenium SuccessfullyMastering Test Automation: How To Use Selenium Successfully
Mastering Test Automation: How To Use Selenium SuccessfullySpringPeople
 
UI Testing Automation
UI Testing AutomationUI Testing Automation
UI Testing AutomationAgileEngine
 

Similar to [Deu] Test Automatisierung Mit Web Driver.io (20)

Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...
Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...
Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...
 
Chrome Devtools Protocol via Selenium/Appium (English)
Chrome Devtools Protocol via Selenium/Appium (English)Chrome Devtools Protocol via Selenium/Appium (English)
Chrome Devtools Protocol via Selenium/Appium (English)
 
Session on Selenium Powertools by Unmesh Gundecha
Session on Selenium Powertools by Unmesh GundechaSession on Selenium Powertools by Unmesh Gundecha
Session on Selenium Powertools by Unmesh Gundecha
 
Cross browser testing using BrowserStack
Cross browser testing using BrowserStack Cross browser testing using BrowserStack
Cross browser testing using BrowserStack
 
Session on Selenium 4 : What’s coming our way? by Hitesh Prajapati
Session on Selenium 4 : What’s coming our way? by Hitesh PrajapatiSession on Selenium 4 : What’s coming our way? by Hitesh Prajapati
Session on Selenium 4 : What’s coming our way? by Hitesh Prajapati
 
Selenium 4 - What's coming our way - v1.0.pptx
Selenium 4 - What's coming our way - v1.0.pptxSelenium 4 - What's coming our way - v1.0.pptx
Selenium 4 - What's coming our way - v1.0.pptx
 
Sauce Labs+Applitools - Automated Visual Testing in the Cloud
Sauce Labs+Applitools - Automated Visual Testing in the CloudSauce Labs+Applitools - Automated Visual Testing in the Cloud
Sauce Labs+Applitools - Automated Visual Testing in the Cloud
 
EmacsConf 2019: Interactive Remote Debugging and Development with TRAMP Mode
EmacsConf 2019: Interactive Remote Debugging and Development with TRAMP ModeEmacsConf 2019: Interactive Remote Debugging and Development with TRAMP Mode
EmacsConf 2019: Interactive Remote Debugging and Development with TRAMP Mode
 
The unintended benefits of Chef
The unintended benefits of ChefThe unintended benefits of Chef
The unintended benefits of Chef
 
JavaScript Unit Testing
JavaScript Unit TestingJavaScript Unit Testing
JavaScript Unit Testing
 
Selenium Clinic Eurostar 2012 WebDriver Tutorial
Selenium Clinic Eurostar 2012 WebDriver TutorialSelenium Clinic Eurostar 2012 WebDriver Tutorial
Selenium Clinic Eurostar 2012 WebDriver Tutorial
 
loadrunner
loadrunnerloadrunner
loadrunner
 
Selenium Testing with TestingBot.com
Selenium Testing with TestingBot.comSelenium Testing with TestingBot.com
Selenium Testing with TestingBot.com
 
Selenium
SeleniumSelenium
Selenium
 
Introduction to Codenvy / JugSummerCamp 2014
Introduction to Codenvy / JugSummerCamp 2014Introduction to Codenvy / JugSummerCamp 2014
Introduction to Codenvy / JugSummerCamp 2014
 
Good practices for debugging Selenium and Appium tests
Good practices for debugging Selenium and Appium testsGood practices for debugging Selenium and Appium tests
Good practices for debugging Selenium and Appium tests
 
performancetestingjmeter-121109061704-phpapp02
performancetestingjmeter-121109061704-phpapp02performancetestingjmeter-121109061704-phpapp02
performancetestingjmeter-121109061704-phpapp02
 
performancetestingjmeter-121109061704-phpapp02 (1)
performancetestingjmeter-121109061704-phpapp02 (1)performancetestingjmeter-121109061704-phpapp02 (1)
performancetestingjmeter-121109061704-phpapp02 (1)
 
Mastering Test Automation: How To Use Selenium Successfully
Mastering Test Automation: How To Use Selenium SuccessfullyMastering Test Automation: How To Use Selenium Successfully
Mastering Test Automation: How To Use Selenium Successfully
 
UI Testing Automation
UI Testing AutomationUI Testing Automation
UI Testing Automation
 

More from Sauce Labs

Simplify Salesforce Testing with AI-Driven Codeless Tools
Simplify Salesforce Testing with AI-Driven Codeless ToolsSimplify Salesforce Testing with AI-Driven Codeless Tools
Simplify Salesforce Testing with AI-Driven Codeless ToolsSauce Labs
 
Testing on Mobile Devices with Location Services
Testing on Mobile Devices with Location ServicesTesting on Mobile Devices with Location Services
Testing on Mobile Devices with Location ServicesSauce Labs
 
Your Framework for Success: introduction to JavaScript Testing at Scale
Your Framework for Success: introduction to JavaScript Testing at ScaleYour Framework for Success: introduction to JavaScript Testing at Scale
Your Framework for Success: introduction to JavaScript Testing at ScaleSauce Labs
 
Automating Hybrid Applications with Appium
Automating Hybrid Applications with AppiumAutomating Hybrid Applications with Appium
Automating Hybrid Applications with AppiumSauce Labs
 
Quality at Speed: More API Testing, Less UI Testing
Quality at Speed: More API Testing, Less UI TestingQuality at Speed: More API Testing, Less UI Testing
Quality at Speed: More API Testing, Less UI TestingSauce Labs
 
Creating Digital Confidence with Test Automation
Creating Digital Confidence with Test AutomationCreating Digital Confidence with Test Automation
Creating Digital Confidence with Test AutomationSauce Labs
 
Just Enough (Automated) Testing
Just Enough (Automated) TestingJust Enough (Automated) Testing
Just Enough (Automated) TestingSauce Labs
 
Using Axe to Add Accessibility Checks to Your Existing Selenium Tests
Using Axe to Add Accessibility Checks to Your Existing Selenium TestsUsing Axe to Add Accessibility Checks to Your Existing Selenium Tests
Using Axe to Add Accessibility Checks to Your Existing Selenium TestsSauce Labs
 
How Open Source Helps to Bring Back Product Obsession
How Open Source Helps to Bring Back Product ObsessionHow Open Source Helps to Bring Back Product Obsession
How Open Source Helps to Bring Back Product ObsessionSauce Labs
 
Webinar: A Sneak Peek at Selenium 4 with Simon Stewart
Webinar: A Sneak Peek at Selenium 4 with Simon StewartWebinar: A Sneak Peek at Selenium 4 with Simon Stewart
Webinar: A Sneak Peek at Selenium 4 with Simon StewartSauce Labs
 
Accelerating Innovation: Leveraging Open Source to Optimize Your Shift-Left I...
Accelerating Innovation: Leveraging Open Source to Optimize Your Shift-Left I...Accelerating Innovation: Leveraging Open Source to Optimize Your Shift-Left I...
Accelerating Innovation: Leveraging Open Source to Optimize Your Shift-Left I...Sauce Labs
 
Accelerating Your Digital Agenda with Continuous Testing ft. Forrester
Accelerating Your Digital Agenda with Continuous Testing ft. ForresterAccelerating Your Digital Agenda with Continuous Testing ft. Forrester
Accelerating Your Digital Agenda with Continuous Testing ft. ForresterSauce Labs
 
How to Measure Success in Continuous Testing
How to Measure Success in Continuous TestingHow to Measure Success in Continuous Testing
How to Measure Success in Continuous TestingSauce Labs
 
From Zero to 2.7 Million - How Verizon Media Embraced Open Source to Accelera...
From Zero to 2.7 Million - How Verizon Media Embraced Open Source to Accelera...From Zero to 2.7 Million - How Verizon Media Embraced Open Source to Accelera...
From Zero to 2.7 Million - How Verizon Media Embraced Open Source to Accelera...Sauce Labs
 
5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test AutomationSauce Labs
 
Sauce Labs Webinar: Rising Importance of Software Testing
Sauce Labs Webinar: Rising Importance of Software TestingSauce Labs Webinar: Rising Importance of Software Testing
Sauce Labs Webinar: Rising Importance of Software TestingSauce Labs
 
BDD With Selenide by Hima Bindu Peteti
BDD With Selenide by Hima Bindu PetetiBDD With Selenide by Hima Bindu Peteti
BDD With Selenide by Hima Bindu PetetiSauce Labs
 
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...Sauce Labs
 
Continuous Delivery for "Mature" Codebases by Melisa Benua
Continuous Delivery for "Mature" Codebases by Melisa BenuaContinuous Delivery for "Mature" Codebases by Melisa Benua
Continuous Delivery for "Mature" Codebases by Melisa BenuaSauce Labs
 
Building Automation Engineers From Scratch by Jenny Bramble
Building Automation Engineers From Scratch by Jenny BrambleBuilding Automation Engineers From Scratch by Jenny Bramble
Building Automation Engineers From Scratch by Jenny BrambleSauce Labs
 

More from Sauce Labs (20)

Simplify Salesforce Testing with AI-Driven Codeless Tools
Simplify Salesforce Testing with AI-Driven Codeless ToolsSimplify Salesforce Testing with AI-Driven Codeless Tools
Simplify Salesforce Testing with AI-Driven Codeless Tools
 
Testing on Mobile Devices with Location Services
Testing on Mobile Devices with Location ServicesTesting on Mobile Devices with Location Services
Testing on Mobile Devices with Location Services
 
Your Framework for Success: introduction to JavaScript Testing at Scale
Your Framework for Success: introduction to JavaScript Testing at ScaleYour Framework for Success: introduction to JavaScript Testing at Scale
Your Framework for Success: introduction to JavaScript Testing at Scale
 
Automating Hybrid Applications with Appium
Automating Hybrid Applications with AppiumAutomating Hybrid Applications with Appium
Automating Hybrid Applications with Appium
 
Quality at Speed: More API Testing, Less UI Testing
Quality at Speed: More API Testing, Less UI TestingQuality at Speed: More API Testing, Less UI Testing
Quality at Speed: More API Testing, Less UI Testing
 
Creating Digital Confidence with Test Automation
Creating Digital Confidence with Test AutomationCreating Digital Confidence with Test Automation
Creating Digital Confidence with Test Automation
 
Just Enough (Automated) Testing
Just Enough (Automated) TestingJust Enough (Automated) Testing
Just Enough (Automated) Testing
 
Using Axe to Add Accessibility Checks to Your Existing Selenium Tests
Using Axe to Add Accessibility Checks to Your Existing Selenium TestsUsing Axe to Add Accessibility Checks to Your Existing Selenium Tests
Using Axe to Add Accessibility Checks to Your Existing Selenium Tests
 
How Open Source Helps to Bring Back Product Obsession
How Open Source Helps to Bring Back Product ObsessionHow Open Source Helps to Bring Back Product Obsession
How Open Source Helps to Bring Back Product Obsession
 
Webinar: A Sneak Peek at Selenium 4 with Simon Stewart
Webinar: A Sneak Peek at Selenium 4 with Simon StewartWebinar: A Sneak Peek at Selenium 4 with Simon Stewart
Webinar: A Sneak Peek at Selenium 4 with Simon Stewart
 
Accelerating Innovation: Leveraging Open Source to Optimize Your Shift-Left I...
Accelerating Innovation: Leveraging Open Source to Optimize Your Shift-Left I...Accelerating Innovation: Leveraging Open Source to Optimize Your Shift-Left I...
Accelerating Innovation: Leveraging Open Source to Optimize Your Shift-Left I...
 
Accelerating Your Digital Agenda with Continuous Testing ft. Forrester
Accelerating Your Digital Agenda with Continuous Testing ft. ForresterAccelerating Your Digital Agenda with Continuous Testing ft. Forrester
Accelerating Your Digital Agenda with Continuous Testing ft. Forrester
 
How to Measure Success in Continuous Testing
How to Measure Success in Continuous TestingHow to Measure Success in Continuous Testing
How to Measure Success in Continuous Testing
 
From Zero to 2.7 Million - How Verizon Media Embraced Open Source to Accelera...
From Zero to 2.7 Million - How Verizon Media Embraced Open Source to Accelera...From Zero to 2.7 Million - How Verizon Media Embraced Open Source to Accelera...
From Zero to 2.7 Million - How Verizon Media Embraced Open Source to Accelera...
 
5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation
 
Sauce Labs Webinar: Rising Importance of Software Testing
Sauce Labs Webinar: Rising Importance of Software TestingSauce Labs Webinar: Rising Importance of Software Testing
Sauce Labs Webinar: Rising Importance of Software Testing
 
BDD With Selenide by Hima Bindu Peteti
BDD With Selenide by Hima Bindu PetetiBDD With Selenide by Hima Bindu Peteti
BDD With Selenide by Hima Bindu Peteti
 
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...
 
Continuous Delivery for "Mature" Codebases by Melisa Benua
Continuous Delivery for "Mature" Codebases by Melisa BenuaContinuous Delivery for "Mature" Codebases by Melisa Benua
Continuous Delivery for "Mature" Codebases by Melisa Benua
 
Building Automation Engineers From Scratch by Jenny Bramble
Building Automation Engineers From Scratch by Jenny BrambleBuilding Automation Engineers From Scratch by Jenny Bramble
Building Automation Engineers From Scratch by Jenny Bramble
 

Recently uploaded

Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
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
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
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
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
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
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
[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
 
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 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
 
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
 
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 Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
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
 
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
 
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
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
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...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
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
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
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
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
[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
 
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 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
 
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
 
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 Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 

[Deu] Test Automatisierung Mit Web Driver.io

  • 2. Ich bin Christian Bromann Software Engineer bei Sauce Labs
  • 4. “WebDriver is a remote control interface that enables introspection and control of user agents.
  • 5.
  • 6. Was ist das WebDriver Protokoll? ▸ Offizieller W3C Standard für Browser Automatisierung ▸ Vorgänger des JSONWireProtocol ▸ WebDriver !== Selenium!!! ▸ Definiert ein REST Interface ▸ Ermöglicht Automatisierung aller Browser ▸ Kann mit allen Programmiersprachen genutzt werden (minimale Anforderungen: das Senden von HTTP Anfragen)
  • 7. const elem = $("#myElem") elem.click() Chromedriver Geckodriver IEDriver EdgeDriver SafariDriver Appium Selendroid WebDriverAgent HTTP Selenium Grid
  • 8. … even on a SmartTV
  • 9. HTTP const elem = $("#myElem") elem.click()
  • 12. KEY FEATURES Integration mit Applitools et al.
  • 13. KEY FEATURES Online Tutorials und Lern Inhalte
  • 15. KEY FEATURES Teil der OpenJS Foundation ❤
  • 16. Standalone Mode Nutzung der Autom.-befehle über das Node.js Modul: WebdriverIO kann auf drei verschiedenen Arten genutzt werden! WDIO Testrunner Nutzung des Testrunners, um Tests parallel laufen zu lassen: import {remote} from ‘webdriverio’ const client = remote({ capabilities: { ... } }) $ wdio wdio.conf.js Bare Metal Mode Schnittstelle um direkt auf das WebDriver Protokoll zuzugreifen: import WebDriver from 'webdriver' const client = await WebDriver .newSession({ capabilities: { browserName: 'firefox' } })
  • 17. import WebDriver from 'webdriver' ;(async () => { const client = await WebDriver.newSession({ path: '/', capabilities: { browserName: 'firefox' } }) await client.navigateTo('https://www.google.com/ncr') const searchInput = await client.findElement('css selector', '#lst-ib') await client.elementSendKeys( searchInput['element-6066-11e4-a52e-4f735466cecf'], 'WebDriver' ) // ... console.log(await client.getTitle()) // outputs "WebDriver - Google Search" await client.deleteSession() })() BARE METAL MODE
  • 18. import { remote } from 'webdriverio' ;(async () => { const browser = await remote({ capabilities: { browserName: 'chrome' } }) await browser.url('http://webdriver.io') const elem = await browser.$('#someElem') await elem.click() // ... await browser.deleteSession() })() STANDALONE MODE
  • 19. var expect = require('chai').expect; describe('webdriver.io api page', function() { it('should be able to filter for commands', function () { browser.url('http://webdriver.io/api.html'); $('.searchbar input').setValue('getT'); var results = $$('.commands.property a').filter(function (link) { return link.isVisible(); }); expect(results.length).to.be.equal(3); // check out second result results[1].click(); expect($('.doc h1').getText()).to.be.equal('GETTEXT'); }); }); WDIO TESTRUNNER MODE
  • 20.
  • 21. Die Konfigurationsdatei Die Datei, die alle Konfigurationen für den Testlauf beinhaltet.
  • 24. PLUGINS & EXTENSIONS Frameworks ▸ Mocha ▸ Jasmine ▸ Cucumber Reporter ▸ Spec ▸ Dot ▸ Allure ▸ JUnit ▸ TeamCity ▸ Tap ▸ Mochaawesome ▸ ... Services ▸ Sauce ▸ Appium ▸ Static Server ▸ Webpack ▸ Chromedriver ▸ Selenium Standalone ▸ Docker ▸ ...
  • 25. SERVICES IN WEBDRIVER.IO ▸ Möglichkeit Code zu bestimmten Zeiten während des Tests auszuführen ▸ Dazu gibt es sog. Hooks: ▹ onPrepare / onComplete ▹ beforeSession / afterSession ▹ before / after ▹ beforeSuite / afterSuite ▹ beforeTest / afterTest ▹ beforeCommand / afterCommand ▸ Ermöglicht die Modifizierung von Optionen und kann die browser Instanz mit nützlichen Funktionen bereichern ▸ Nutzung von selbst erstellten Services möglich
  • 27.
  • 29. Element with certain text const header = $('h1=Welcome to my Page'); const header2 = $('h1*=Welcome'); AUSWÄHLEN VON ELEMENTEN DURCH DAS WEBDRIVER PROTOKOLL CSS Query Selector const elem = $('h2.subheading a'); elem.click(); Link Text <!-- index.html --> <a href="http://webdriver.io">WebdriverIO</a> <h1>Welcome to my Page</h1> // test.js const link = $('=WebdriverIO'); console.log(link.getText()); // outputs: "WebdriverIO" Partial Link Text const link = $('*=driver'); console.log(link.getText()); // outputs: "WebdriverIO" XPath const elem = $('//BODY/P[1]'); elem.click();
  • 30. React.JS Support <!-- my-component.jsx --> import React from 'react' import ReactDOM from 'react-dom' const MyComponent = (props) => { const { name } = props; const [state] = React.useState(name === 'there' ? ', how are you?' : '') return (<div>Hello {name || 'World'}{state}</div>) } ReactDOM.render( <div> <MyComponent /> <MyComponent name="Barry"/> <MyComponent name="WebdriverIO"/> <MyComponent name="there"/> </div>, document.getElementById('#root'), ) // test.js const myComponent = browser.react$('MyComponent') expect(myComponent.isDisplayed()).toBe(true) // pass const myComponent = browser.react$('MyComponent', {name: 'WebdriverIO'}) expect(myComponent.getText()).toBe('Hello WebdriverIO') // pass const myComponent = browser.react$('MyComponent', {}, ', how are you?') expect(myComponent.getText()).toBe('Hello there, how are you?') // pass AUSWÄHLEN VON ELEMENTEN DURCH DAS WEBDRIVER PROTOKOLL
  • 31. Accessibility ID const elem = $('~my_identifier'); elem.click(); UI Automator (iOS) const selector = 'UIATarget.localTarget().frontMostApp().mainWindow().buttons()[0]'; const Button = $(`ios=${selector}`); Button.click(); Class Name // iOS example $('UIATextField').click(); // Android example $('android.widget.DatePicker').click(); UI Automator (Android) const selector = 'new UiSelector().text("Cancel").className("android.widget.Button")'; const Button = $(`android=${selector}`); Button.click(); AUSWÄHLEN VON ELEMENTEN MIT Appium
  • 32. Hervorragend geeignet, um spezifische (asynchrone) Logiken in einen synchronen Befehl zu verwandeln: browser.addCommand('deleteUser', (username) => { return axios.post( '/rest/v1/_test_helpers/delete_user', { user: username } ); }); browser.deleteUser('anonymous123') browser.url('/dashboard') // ... BENUTZERDEFINIERTE BEFEHLE
  • 34. EIN WENIG THEORIE! Das Page Objekt Model.
  • 35. THE PAGE OBJECT MODEL ▸ Sehr populäres Design pattern in der Testautomatisierung ▸ Hält Code sauber und einfach zu managen ▸ In einer idealen Welt würde ein Page Redesign nur Änderungen im POM erfordern und nicht in den Tests ▸ Alles kann in einem POM abstrahiert werden ▸ Ein POM enthält: ▹ Locators und Elemente ▹ Methoden die spezifische Workflows und Interaktionen mit der Seite abbilden
  • 36.
  • 37.
  • 38. EINE DEMO SAGT MEHR ALS 1000 WORTE
  • 43. Zusammenfassung ● WebdriverIO ist ein Framework zur Automatisierung von E2E (end-to -end) Tests ● Unterstützt Automatisierung basierend auf dem WebDriver Protokoll und kann dadurch Browser als auch mobile Geräte (web oder native Apps) steuern ● Bietet einen Testrunner, der neben dem Reporting eine große Anzahl von weiteren Aufgaben übernimmt, die beim täglichen Testen anfallen (Integrationen) Wo kann ich anfangen? Projektdokumentation: https://webdriver.io Online Kurs: https://learn.webdriver.io/ Support Chat: https://gitter.im/webdriverio/webdriverio
  • 45. DANKE! Noch Fragen? Schreibe mir auf Twitter an: @bromann oder via E-Mail: christian@saucelabs.com Slides: http://bit.ly/test-automation-with-webdriverio
  • 46. BIG CONCEPT Bring the attention of your audience over a key concept using icons or illustrations
  • 47. White Is the color of milk and fresh snow, the color produced by the combination of all the colors of the visible spectrum. YOU CAN ALSO SPLIT YOUR CONTENT Black Is the color of coal, ebony, and of outer space. It is the darkest color, the result of the absence of or complete absorption of light.
  • 48. IN TWO OR THREE COLUMNS Yellow Is the color of gold, butter and ripe lemons. In the spectrum of visible light, yellow is found between green and orange. Blue Is the colour of the clear sky and the deep sea. It is located between violet and green on the optical spectrum. Red Is the color of blood, and because of this it has historically been associated with sacrifice, danger and courage.
  • 49. WANT BIG IMPACT? Use big image.
  • 50. USE CHARTS TO EXPLAIN YOUR IDEAS WHITE BLACKGRAY
  • 51. AND TABLES TO COMPARE DATA A B C Yellow 10 20 7 Blue 30 15 10 Orange 5 24 16
  • 53. 89,526,124Whoa! That’s a big number, aren’t you proud?
  • 54. 89,526,124$That’s a lot of money 100%Total success! 185,244 usersAnd a lot of users
  • 56. LET’S REVIEW SOME CONCEPTS Yellow Is the color of gold, butter and ripe lemons. In the spectrum of visible light, yellow is found between green and orange. Blue Is the colour of the clear sky and the deep sea. It is located between violet and green on the optical spectrum. Red Is the color of blood, and because of this it has historically been associated with sacrifice, danger and courage. Yellow Is the color of gold, butter and ripe lemons. In the spectrum of visible light, yellow is found between green and orange. Blue Is the colour of the clear sky and the deep sea. It is located between violet and green on the optical spectrum. Red Is the color of blood, and because of this it has historically been associated with sacrifice, danger and courage.
  • 57. You can copy&paste graphs from Google Sheets
  • 58. Place your screenshot here ANDROID PROJECT Show and explain your web, app or software projects using these gadget templates.
  • 59. Place your screenshot here IPHONE PROJECT Show and explain your web, app or software projects using these gadget templates.
  • 60. Place your screenshot here TABLET PROJECT Show and explain your web, app or software projects using these gadget templates.
  • 61. Place your screenshot here DESKTOP PROJECT Show and explain your web, app or software projects using these gadget templates.
  • 62. THANKS! Any questions? You can find me at @username & user@mail.me
  • 63. CREDITS Special thanks to all the people who made and released these awesome resources for free: ▸ Simple line icons by Mirko Monti ▸ E-commerce icons by Virgil Pana ▸ Streamline iconset by Webalys ▸ Presentation template by SlidesCarnival ▸ Photographs by Death to the Stock Photo (license)
  • 64. PRESENTATION DESIGN This presentations uses the following typographies and colors: ▸ Titles: Montserrat ▸ Body copy: Karla You can download the fonts on this page: http://www.google.com/fonts/#UsePlace:use/Collection:Montserrat:400,700|Karla:400,400italic,700,700italic Click on the “arrow button” that appears on the top right Red #F44336 Deep orange #FF5722 Orange #FF9800 Amber #FFC107 Yellow #FFEB3B Lime #CDDC39 Green #8BC34A Dark green #4CAF50 Teal #009688 Cyan #00BCD4 Blue #03A9F4 Dark blue #2196F3 Indigo #3F51B5 Deep Purple #673AB7 Purple #9C27B0 Magenta #E91E63 Blue gray #607D8B You don’t need to keep this slide in your presentation. It’s only here to serve you as a design guide if you need to create new slides or download the fonts to edit the presentation in PowerPoint®
  • 65. What’s this? This is a free presentation template for Google Slides designed by SlidesCarnival. We believe that good design serves to better communicate ideas, so we create free quality presentation templates for you to focus on the content. Enjoy them at will and share with us your results at: twitter.com/SlidesCarnival facebook.com/slidescarnival ABOUT THIS TEMPLATE How can I use it? Open this document in Google Slides (if you are at slidescarnival.com use the button below this presentation). You have to be signed in to your Google account EDIT IN GOOGLE SLIDES Go to the File menu and select Make a copy. You will get a copy of this document on your Google Drive and will be able to edit, add or delete slides. EDIT IN MICROSOFT POWERPOINT® Go to the File menu and select Download as Microsoft PowerPoint. You will get a .pptx file that you can edit in PowerPoint. Remember to download and install the fonts used in this presentation (you’ll find the links to the font files needed in the Presentation design slide) This template is free to use under Creative Commons Attribution license. If you use the graphic assets (photos, icons and typographies) provided with this presentation you must keep the Credits slide.
  • 66. Line Icons by Webalys, Virgil Pana and Mirko Monti are published under a Creative Commons Attribution license and Free for both personal and commercial use. You can copy, adapt, remix, distribute or transmit them. If you use these sets on your presentation remember to keep the “Credits” slide or provide a mention and link to these resources: ● Mirko Monti - Simple line icons ● Virgil Pana - E-commerce icons ● Webalys - Streamline iconset