selenium webdriver - jopenspace 2015

24
www.fg.cz Selenium Webdriver Michal Franc - @michalfranc

Upload: michal-franc

Post on 14-Apr-2017

636 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Selenium Webdriver - jOpenSpace 2015

www.fg.cz

Selenium WebdriverMichal Franc - @michalfranc

Page 2: Selenium Webdriver - jOpenSpace 2015

2

O čem bude řeč?

Testování UI webové aplikaceEnd to End testyFunkční / akceptační testy

Náhrada ručních testů - automatizace

Page 3: Selenium Webdriver - jOpenSpace 2015

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#…

Page 4: Selenium Webdriver - jOpenSpace 2015

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

Page 5: Selenium Webdriver - jOpenSpace 2015

5

Základní ukázka

Page 6: Selenium Webdriver - jOpenSpace 2015

6

API – přístup k DOM

org.openqa.selenium.SearchContext

org.openqa.selenium.By

Page 7: Selenium Webdriver - jOpenSpace 2015

7

API – čekání na DOM

org.openqa.selenium.support.ui.WebDriverWait

Page 8: Selenium Webdriver - jOpenSpace 2015

8

Před prvním testem

Co vlastně testovat a jaké testy?

Simulujeme uživatele (testera)Testovací scénářReálné workflow

Page 9: Selenium Webdriver - jOpenSpace 2015

9

PageObject pattern

Pozor na rychlý začátek

Nedělejte to!

Page 10: Selenium Webdriver - jOpenSpace 2015

10

PageObject pattern

Cíl – vytvořit vrstvu nad obsahem na stránce

org.openqa.selenium.support.PageFactoryorg.openqa.selenium.support.FindBy

Page 11: Selenium Webdriver - jOpenSpace 2015

11

PageObject pattern

Page 12: Selenium Webdriver - jOpenSpace 2015

12

PageObject pattern – rozšířit na komponenty

Page 13: Selenium Webdriver - jOpenSpace 2015

13

PageObject pattern - komponenty

Stránku rozložit na malé komponenty

Page 14: Selenium Webdriver - jOpenSpace 2015

14

PageObject pattern - komponenty

Page 15: Selenium Webdriver - jOpenSpace 2015

15

Reálný test - ukázka

Page 16: Selenium Webdriver - jOpenSpace 2015

16

JUnit - Organizace testů - Suite

Page 17: Selenium Webdriver - jOpenSpace 2015

17

JUnit – Organizace testů - Rule

Page 18: Selenium Webdriver - jOpenSpace 2015

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

Page 19: Selenium Webdriver - jOpenSpace 2015

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

Page 20: Selenium Webdriver - jOpenSpace 2015

20

BrowserStack Automate

Page 21: Selenium Webdriver - jOpenSpace 2015

21

Continuous Integration

Build pipelineChange -> Commit -> Compile -> Unit tests -> Deploy to test server -> IT tests -> UI test

Page 22: Selenium Webdriver - jOpenSpace 2015

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í

Page 23: Selenium Webdriver - jOpenSpace 2015

23

Dotazy

Page 24: Selenium Webdriver - jOpenSpace 2015

24

@michalfranc@EdeeCMS

www.edee-cms.czwww.fg.cz