Selenium Webdriver - jOpenSpace 2015

Preview:

Citation preview

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

Recommended