selenium webdriver - jopenspace 2015
TRANSCRIPT
www.fg.cz
Selenium WebdriverMichal Franc - @michalfranc
2
O čem bude řeč?
Testování UI webové aplikaceEnd to End testyFunkční / akceptační testy
Náhrada ručních testů - automatizace
3
Co je Selenium Webdriver
Webdriver W3C specifikace protokolu pro vzdálené ovládání prohlížeče - http://www.w3.org/TR/webdriver/
Selenium Webdriver 2.0Nástupce Selenium RC
Poskytuje API pro webdriverJavaJavaScriptPythonRuby C#…
4
Alternativní nástroje
Sahi (JS,Java,Ruby) http://sahipro.com/CasperJS (JS)http://casperjs.org/WATIR (Ruby)http://watir.com/Capybara (Ruby)https://github.com/jnicklas/capybara
5
Základní ukázka
6
API – přístup k DOM
org.openqa.selenium.SearchContext
org.openqa.selenium.By
7
API – čekání na DOM
org.openqa.selenium.support.ui.WebDriverWait
8
Před prvním testem
Co vlastně testovat a jaké testy?
Simulujeme uživatele (testera)Testovací scénářReálné workflow
9
PageObject pattern
Pozor na rychlý začátek
Nedělejte to!
10
PageObject pattern
Cíl – vytvořit vrstvu nad obsahem na stránce
org.openqa.selenium.support.PageFactoryorg.openqa.selenium.support.FindBy
11
PageObject pattern
12
PageObject pattern – rozšířit na komponenty
13
PageObject pattern - komponenty
Stránku rozložit na malé komponenty
14
PageObject pattern - komponenty
15
Reálný test - ukázka
16
JUnit - Organizace testů - Suite
17
JUnit – Organizace testů - Rule
18
Selenium Server
Vzdálený browser
org.openqa.selenium.remote.RemoteWebDriverorg.openqa.selenium.remote.DesiredCapabilities
InfrastrukturaVíce browserů v různých verzíchVíce systémůVirtualizace vs licence windows
19
BrowserStack Automate
Selenium Grid infrastrukturaPodporované prohlížeče a systémy
FF, Chrome, IE, Opera, Safari Windows XP, 7, 8, 8.1 / Mac OS X Snow Leopard, Lion, Mountain Lion, Mavericks, Yosemite / Android / iOS https://www.browserstack.com/list-of-browsers-and-platforms?product=automate
20
BrowserStack Automate
21
Continuous Integration
Build pipelineChange -> Commit -> Compile -> Unit tests -> Deploy to test server -> IT tests -> UI test
22
Problémy
StabilitaKontrola předpokladů – fail fastDOM – StaleElementExceptionPostranní info
Příprava prostředíTestovací data
ParalelizaceImplementace WebDriver
Rozdíly mezi prohlížečiNěkdy nutné dělat ošklivé věciSvádí ke zneužití
23
Dotazy
24
@michalfranc@EdeeCMS
www.edee-cms.czwww.fg.cz