SlideShare ist ein Scribd-Unternehmen logo
1 von 24
www.fg.cz
Selenium Webdriver
Michal Franc - @michalfranc
2
O čem bude řeč?
Testování UI webové aplikace
End to End testy
Funkč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.0
Nástupce Selenium RC
Poskytuje API pro webdriver
Java
JavaScript
Python
Ruby
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.PageFactory
org.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.RemoteWebDriver
org.openqa.selenium.remote.DesiredCapabilities
Infrastruktura
Více browserů v různých verzích
Více systémů
Virtualizace vs licence windows
19
BrowserStack Automate
Selenium Grid infrastruktura
Podporované 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 pipeline
Change -> Commit -> Compile -> Unit tests -> Deploy to
test server -> IT tests -> UI test
22
Problémy
Stabilita
Kontrola předpokladů – fail fast
DOM – StaleElementException
Postranní info
Příprava prostředí
Testovací data
Paralelizace
Implementace WebDriver
Rozdíly mezi prohlížeči
Někdy nutné dělat ošklivé věci
Svádí ke zneužití
23
Dotazy
24
@michalfranc
@EdeeCMS
www.edee-cms.cz
www.fg.cz

Weitere ähnliche Inhalte

Andere mochten auch

Automation Testing using Selenium
Automation Testing using SeleniumAutomation Testing using Selenium
Automation Testing using SeleniumNaresh Chintalcheru
 
Využití NodeJS pro Javisty - jOpenSpace 2014
Využití NodeJS pro Javisty - jOpenSpace 2014Využití NodeJS pro Javisty - jOpenSpace 2014
Využití NodeJS pro Javisty - jOpenSpace 2014Michal Franc
 
Exception handling in Java
Exception handling in JavaException handling in Java
Exception handling in JavaPrasad Sawant
 
Understanding Selenium/RC, Webdriver Architecture and developing the page obj...
Understanding Selenium/RC, Webdriver Architecture and developing the page obj...Understanding Selenium/RC, Webdriver Architecture and developing the page obj...
Understanding Selenium/RC, Webdriver Architecture and developing the page obj...Atirek Gupta
 
Java Collections Framework
Java  Collections  FrameworkJava  Collections  Framework
Java Collections Frameworkguestd8c458
 
Java exception handling ppt
Java exception handling pptJava exception handling ppt
Java exception handling pptJavabynataraJ
 
Java Exception handling
Java Exception handlingJava Exception handling
Java Exception handlingkamal kotecha
 
Web Test Automation with Selenium
Web Test Automation with SeleniumWeb Test Automation with Selenium
Web Test Automation with Seleniumvivek_prahlad
 
Manual testing interview question by INFOTECH
Manual testing interview question by INFOTECHManual testing interview question by INFOTECH
Manual testing interview question by INFOTECHPravinsinh
 

Andere mochten auch (12)

Automation Testing using Selenium
Automation Testing using SeleniumAutomation Testing using Selenium
Automation Testing using Selenium
 
Využití NodeJS pro Javisty - jOpenSpace 2014
Využití NodeJS pro Javisty - jOpenSpace 2014Využití NodeJS pro Javisty - jOpenSpace 2014
Využití NodeJS pro Javisty - jOpenSpace 2014
 
Selenium intro
Selenium introSelenium intro
Selenium intro
 
Exception handling in Java
Exception handling in JavaException handling in Java
Exception handling in Java
 
Understanding Selenium/RC, Webdriver Architecture and developing the page obj...
Understanding Selenium/RC, Webdriver Architecture and developing the page obj...Understanding Selenium/RC, Webdriver Architecture and developing the page obj...
Understanding Selenium/RC, Webdriver Architecture and developing the page obj...
 
Java Collections Framework
Java  Collections  FrameworkJava  Collections  Framework
Java Collections Framework
 
Java exception handling ppt
Java exception handling pptJava exception handling ppt
Java exception handling ppt
 
Exception handling
Exception handlingException handling
Exception handling
 
Java Exception handling
Java Exception handlingJava Exception handling
Java Exception handling
 
Web Test Automation with Selenium
Web Test Automation with SeleniumWeb Test Automation with Selenium
Web Test Automation with Selenium
 
Selenium ppt
Selenium pptSelenium ppt
Selenium ppt
 
Manual testing interview question by INFOTECH
Manual testing interview question by INFOTECHManual testing interview question by INFOTECH
Manual testing interview question by INFOTECH
 

Ähnlich wie Selenium Webdriver - jOpenSpace 2015

Trendy a nové možnosti test automation
Trendy a nové možnosti test automationTrendy a nové možnosti test automation
Trendy a nové možnosti test automationOndřej Machulda
 
20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitněJiří Mareš
 
Představení Ruby on Rails
Představení Ruby on RailsPředstavení Ruby on Rails
Představení Ruby on Railsigloonet
 
2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEEMartin Ptáček
 
WordPress REST API + React + TypeScript
WordPress REST API + React + TypeScriptWordPress REST API + React + TypeScript
WordPress REST API + React + TypeScriptBorek Bernard
 
2007 Technologie Pro Tvorbu Java Enterprise Aplikací
2007 Technologie Pro Tvorbu Java Enterprise Aplikací2007 Technologie Pro Tvorbu Java Enterprise Aplikací
2007 Technologie Pro Tvorbu Java Enterprise AplikacíMartin Ptáček
 
atoto.cz - jak na snadnou integraci Codeception
atoto.cz - jak na snadnou integraci Codeceptionatoto.cz - jak na snadnou integraci Codeception
atoto.cz - jak na snadnou integraci Codeceptionatotocz
 
2011 X33EJA Výkonové Aspekty JEE Monitoring a optimalizace
2011 X33EJA Výkonové Aspekty JEE Monitoring a optimalizace2011 X33EJA Výkonové Aspekty JEE Monitoring a optimalizace
2011 X33EJA Výkonové Aspekty JEE Monitoring a optimalizaceMartin Ptáček
 
INPTP Rekapitulace
INPTP Rekapitulace INPTP Rekapitulace
INPTP Rekapitulace Jan Hřídel
 
Petr Nikolas Prokop - Symfony framework (0. sraz přátel Symfony v Hradci Král...
Petr Nikolas Prokop - Symfony framework (0. sraz přátel Symfony v Hradci Král...Petr Nikolas Prokop - Symfony framework (0. sraz přátel Symfony v Hradci Král...
Petr Nikolas Prokop - Symfony framework (0. sraz přátel Symfony v Hradci Král...Péhápkaři
 
vSphere automation workshop python
vSphere automation workshop pythonvSphere automation workshop python
vSphere automation workshop pythonVladan Laxa
 
Proč chcete testovat své aplikace
Proč chcete testovat své aplikaceProč chcete testovat své aplikace
Proč chcete testovat své aplikaceatotocz
 

Ähnlich wie Selenium Webdriver - jOpenSpace 2015 (20)

Trendy a nové možnosti test automation
Trendy a nové možnosti test automationTrendy a nové možnosti test automation
Trendy a nové možnosti test automation
 
20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně
 
Qualys Application Programming Interface (API) (2011)
Qualys Application Programming Interface (API) (2011)Qualys Application Programming Interface (API) (2011)
Qualys Application Programming Interface (API) (2011)
 
TechEd 2014 - MVC5
TechEd 2014 - MVC5TechEd 2014 - MVC5
TechEd 2014 - MVC5
 
Představení Ruby on Rails
Představení Ruby on RailsPředstavení Ruby on Rails
Představení Ruby on Rails
 
2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE
 
WordPress REST API + React + TypeScript
WordPress REST API + React + TypeScriptWordPress REST API + React + TypeScript
WordPress REST API + React + TypeScript
 
2007 Technologie Pro Tvorbu Java Enterprise Aplikací
2007 Technologie Pro Tvorbu Java Enterprise Aplikací2007 Technologie Pro Tvorbu Java Enterprise Aplikací
2007 Technologie Pro Tvorbu Java Enterprise Aplikací
 
TNPW2-2011-03
TNPW2-2011-03TNPW2-2011-03
TNPW2-2011-03
 
atoto.cz - jak na snadnou integraci Codeception
atoto.cz - jak na snadnou integraci Codeceptionatoto.cz - jak na snadnou integraci Codeception
atoto.cz - jak na snadnou integraci Codeception
 
QualysGuard InfoDay 2014 - WAS
QualysGuard InfoDay 2014 - WASQualysGuard InfoDay 2014 - WAS
QualysGuard InfoDay 2014 - WAS
 
2011 X33EJA Výkonové Aspekty JEE Monitoring a optimalizace
2011 X33EJA Výkonové Aspekty JEE Monitoring a optimalizace2011 X33EJA Výkonové Aspekty JEE Monitoring a optimalizace
2011 X33EJA Výkonové Aspekty JEE Monitoring a optimalizace
 
TNPW2-2012-03
TNPW2-2012-03TNPW2-2012-03
TNPW2-2012-03
 
TNPW2-2013-03
TNPW2-2013-03TNPW2-2013-03
TNPW2-2013-03
 
INPTP Rekapitulace
INPTP Rekapitulace INPTP Rekapitulace
INPTP Rekapitulace
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
ASP.NET MVC a TDD
ASP.NET MVC a TDDASP.NET MVC a TDD
ASP.NET MVC a TDD
 
Petr Nikolas Prokop - Symfony framework (0. sraz přátel Symfony v Hradci Král...
Petr Nikolas Prokop - Symfony framework (0. sraz přátel Symfony v Hradci Král...Petr Nikolas Prokop - Symfony framework (0. sraz přátel Symfony v Hradci Král...
Petr Nikolas Prokop - Symfony framework (0. sraz přátel Symfony v Hradci Král...
 
vSphere automation workshop python
vSphere automation workshop pythonvSphere automation workshop python
vSphere automation workshop python
 
Proč chcete testovat své aplikace
Proč chcete testovat své aplikaceProč chcete testovat své aplikace
Proč chcete testovat své aplikace
 

Selenium Webdriver - jOpenSpace 2015

Hinweis der Redaktion

  1. WebDriver driver = new HtmlUnitDriver(); WebDriver driver = new ChromeDriver(); WebDriver driver = new InternetExplorerDriver(); WebDriver driver = new FirefoxDriver(); // And now use this to visit Google driver.get("http://www.google.com"); // Find the text input element by its name WebElement element = driver.findElement(By.name("q")); // Enter something to search for element.sendKeys("Cheese!"); // Now submit the form. WebDriver will find the form for us from the element element.submit(); // Check the title of the page System.out.println("Page title is: " + driver.getTitle()); driver.quit();
  2. By.id(domId) By.className(cssClass) By.cssSelector(w3Selector) By.name(nameAttr) By.tagName(tagName) By.xpath(xpathExpression) By.linkText(anchorTagText)
  3. public WebElement waitUntilElementIsVisible(final By elementSpecifiedBy, final SearchContext ctx) { new WebDriverWait(driver,timeout) .ignoring(StaleElementReferenceException.class) .until( new ExpectedCondition<Boolean>() { public Boolean apply(WebDriver d) { return ctx.findElement(elementSpecifiedBy).isDisplayed(); } } ); return ctx.findElement(elementSpecifiedBy); }
  4. PageObject nutné rozšířit na komponenty, strom je komponenta, wysiwyg je komponenta, toolbar je komponenta ….
  5. Alternativy browserstack.com saucelabs.com testingbot.com
  6. Alternativy browserstack.com saucelabs.com testingbot.com
  7. Alternativy browserstack.com saucelabs.com testingbot.com
  8. Alternativy browserstack.com saucelabs.com testingbot.com