websites testen met selenium
TRANSCRIPT
![Page 1: Websites testen met Selenium](https://reader034.vdocuments.net/reader034/viewer/2022052602/55a029721a28abd7618b4822/html5/thumbnails/1.jpg)
Geautomatiseerd websites testen met SeleniumFedict – Brussel – 12 dec 2014
![Page 2: Websites testen met Selenium](https://reader034.vdocuments.net/reader034/viewer/2022052602/55a029721a28abd7618b4822/html5/thumbnails/2.jpg)
p. 2
Agenda
Websites testen
(Demo)
Componenten
Selenium
Vragen
![Page 3: Websites testen met Selenium](https://reader034.vdocuments.net/reader034/viewer/2022052602/55a029721a28abd7618b4822/html5/thumbnails/3.jpg)
© Fedict 2013. All rights reserved
Websites testen
![Page 4: Websites testen met Selenium](https://reader034.vdocuments.net/reader034/viewer/2022052602/55a029721a28abd7618b4822/html5/thumbnails/4.jpg)
p. 4
Verschillende soorten (complementair)
Schaalbaarheid / load testing Vb: JMeter
Beveiliging
Toegankelijkheid Vb: AnySurfer
Valideren HTML Vb: W3C Markup Validator
Via browser / eindgebruiker test Vb: Selenium
![Page 5: Websites testen met Selenium](https://reader034.vdocuments.net/reader034/viewer/2022052602/55a029721a28abd7618b4822/html5/thumbnails/5.jpg)
© Fedict 2013. All rights reserved
Demo
![Page 6: Websites testen met Selenium](https://reader034.vdocuments.net/reader034/viewer/2022052602/55a029721a28abd7618b4822/html5/thumbnails/6.jpg)
p. 6
Rapport
![Page 7: Websites testen met Selenium](https://reader034.vdocuments.net/reader034/viewer/2022052602/55a029721a28abd7618b4822/html5/thumbnails/7.jpg)
p. 7
Screenshots en video
![Page 8: Websites testen met Selenium](https://reader034.vdocuments.net/reader034/viewer/2022052602/55a029721a28abd7618b4822/html5/thumbnails/8.jpg)
p. 8
Beschikbare (Drupal) testen
Algemeen IP nummer, RSS-feed
Screenshots nemen per taal Homepage, pagina's hoofdmenu
Taalkeuze Controleren woorden op gekozen pagina
Zoekopdrachten per taal Controle aantal resultaten, woorden in resultaten
Inloggen
![Page 9: Websites testen met Selenium](https://reader034.vdocuments.net/reader034/viewer/2022052602/55a029721a28abd7618b4822/html5/thumbnails/9.jpg)
p. 9
Uitbreiden testen
Momenteel Fast2Web Drupal sites Automatisch gestart via cron job 10 à 30 minuten per site 10 à 50 MB video / screenshots per site
Bijkomende site: < 1 uur configuratie + testen
![Page 10: Websites testen met Selenium](https://reader034.vdocuments.net/reader034/viewer/2022052602/55a029721a28abd7618b4822/html5/thumbnails/10.jpg)
p. 10
Uitbreiden testen (2)
Bijkomende testen schrijven kan langer duren “Trial and error” en/of opnemen stappen
Niet gebonden aan Drupal
Hangt vooral af van hoe generiek een site is Gegenereerde HTML code / CSS-classes
![Page 11: Websites testen met Selenium](https://reader034.vdocuments.net/reader034/viewer/2022052602/55a029721a28abd7618b4822/html5/thumbnails/11.jpg)
p. 11
Componenten
Goedkope Linux server (< 10 EUR/maand) Vb: EuroVPS, Hetzner, Webtropia
Selenium (open source) Test software
Nosetest en Splinter (open source) Eenvoudiger maken testscripts
Xvfb, ffmpeg en Beheaded (open source) Recording zonder beeldscherm
Kennis van Python, basiskenis HTML / CSS
![Page 12: Websites testen met Selenium](https://reader034.vdocuments.net/reader034/viewer/2022052602/55a029721a28abd7618b4822/html5/thumbnails/12.jpg)
Selenium
![Page 13: Websites testen met Selenium](https://reader034.vdocuments.net/reader034/viewer/2022052602/55a029721a28abd7618b4822/html5/thumbnails/13.jpg)
p. 13
Selenium
Automatiseren browser acties Niet bedoeld voor load testing, HTML validaties...
Open source http://www.seleniumhq.org
Verzameling tools Selenium IDE (Firefox plugin) (Selenium Remote Control) Selenium WebDriver Selenium Grid (testen op meerdere servers tegelijk)
![Page 14: Websites testen met Selenium](https://reader034.vdocuments.net/reader034/viewer/2022052602/55a029721a28abd7618b4822/html5/thumbnails/14.jpg)
p. 14
Selenium Web Driver
Sturen browser Openen en sluiten browser Openen pagina, klikken op buttons, invullen velden, ... Testen van aanwezigheid elementen, tekst ...
Ondersteuning voor meerdere browsers Firefox 3.6+, HTMLUnit Chrome 12+, IE 7+, Opera 8+ IOS, Android browser
Via verschillende programmeertalen Java, C#, Python, Ruby (3rd party) PHP, Perl, …
![Page 15: Websites testen met Selenium](https://reader034.vdocuments.net/reader034/viewer/2022052602/55a029721a28abd7618b4822/html5/thumbnails/15.jpg)
p. 15
Voorbeeld (Python)
from selenium import webdriver
browser = webdriver.Firefox()browser.get('http://some.example/user')
elem = browser.find_element_by_id('edit-name')elem.send_keys('UserName')elem = browser.find_element_by_id('edit-pass')elem.send_keys('SecretPassword')
elem = browser.find_element_by_id('button-submit')elem.click()
browser.quit()
![Page 16: Websites testen met Selenium](https://reader034.vdocuments.net/reader034/viewer/2022052602/55a029721a28abd7618b4822/html5/thumbnails/16.jpg)
p. 16
Enkele mogelijkheden
Navigatie Pagina's laden, page history Navigeren naar frames, windows, alert dialogs
Invullen formulieren Tekstvelden, select, ...
Zoeken specifieke HTML-elementen Via attributen ID, class, name Via naam, CSS selector, XPath Linken: via (zichtbare) tekst van link
Javascript, cookies, ...
![Page 17: Websites testen met Selenium](https://reader034.vdocuments.net/reader034/viewer/2022052602/55a029721a28abd7618b4822/html5/thumbnails/17.jpg)
p. 17
Beperkingen
Geen toegang tot onzichtbare elementen Vb: <input type=”hidden”> => “Echte” gebruiker heeft dit ook niet
Geen HTTP authentication / .htaccess Verschilt per browser / pop-up schermen invullen
Proxy configureren verschilt per browser
![Page 18: Websites testen met Selenium](https://reader034.vdocuments.net/reader034/viewer/2022052602/55a029721a28abd7618b4822/html5/thumbnails/18.jpg)
Overige componenten
![Page 19: Websites testen met Selenium](https://reader034.vdocuments.net/reader034/viewer/2022052602/55a029721a28abd7618b4822/html5/thumbnails/19.jpg)
p. 19
Overzicht
Python
(Iets) eenvoudigere API dan Selenium
Abstractie PhantomJS / Selenium / Zope.testbrowser
Testen of bepaald element wel/niet aanwezig is Via naam, ID, XPath, …
Testen of bepaalde tekst wel/niet aanwezig is
Functies voor pagina titel / url / HTML code
![Page 20: Websites testen met Selenium](https://reader034.vdocuments.net/reader034/viewer/2022052602/55a029721a28abd7618b4822/html5/thumbnails/20.jpg)
p. 20
Nose
Makkelijker maken unit testing Setup / teardown Timed Assert true / false / equals / …
Plugins HTML rapport
![Page 21: Websites testen met Selenium](https://reader034.vdocuments.net/reader034/viewer/2022052602/55a029721a28abd7618b4822/html5/thumbnails/21.jpg)
Vragen ?
![Page 22: Websites testen met Selenium](https://reader034.vdocuments.net/reader034/viewer/2022052602/55a029721a28abd7618b4822/html5/thumbnails/22.jpg)
p. 22
Enkele linken
http://www.seleniumhq.org
http://selenium-python.readthedocs.org
https://splinter.readthedocs.org
https://nose.readthedocs.org
![Page 23: Websites testen met Selenium](https://reader034.vdocuments.net/reader034/viewer/2022052602/55a029721a28abd7618b4822/html5/thumbnails/23.jpg)
Bedankt !Bart Hanssens / FedictSimon Bolivarlaan 301000 Brussel, [email protected] [at] fedict.be | www.fedict.belgium.be