Automatisch testen van websites met de open source tools Selenium en Nose via python scripts.
De resultaten worden in de vorm van een (HTML)-rapport gepresenteerd, en de uitgevoerd kunnen herbekeken worden doordat er automatisch screenshots en videos worden genomen.
8. 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
9. 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
10. 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
11. 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
16. 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, ...
17. 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
19. 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
20. p. 20
Nose
Makkelijker maken unit testing
Setup / teardown
Timed
Assert true / false / equals / …
Plugins
HTML rapport