Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Websites testen met Selenium

613 views

Published on

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.

Published in: Internet
  • D0WNL0AD FULL ▶ ▶ ▶ ▶ http://1lite.top/9BYGF ◀ ◀ ◀ ◀
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Websites testen met Selenium

  1. 1. Geautomatiseerd websites testen met Selenium Fedict – Brussel – 12 dec 2014
  2. 2. p. 2 Agenda  Websites testen  (Demo)  Componenten  Selenium  Vragen
  3. 3. © Fedict 2013. All rights reserved Websites testen
  4. 4. 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
  5. 5. © Fedict 2013. All rights reserved Demo
  6. 6. p. 6 Rapport
  7. 7. p. 7 Screenshots en video
  8. 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. 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. 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. 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
  12. 12. Selenium
  13. 13. 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)
  14. 14. 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, …
  15. 15. 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()
  16. 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. 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
  18. 18. Overige componenten
  19. 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. 20. p. 20 Nose  Makkelijker maken unit testing  Setup / teardown  Timed  Assert true / false / equals / …  Plugins  HTML rapport
  21. 21. Vragen ?
  22. 22. p. 22 Enkele linken  http://www.seleniumhq.org  http://selenium-python.readthedocs.org  https://splinter.readthedocs.org  https://nose.readthedocs.org
  23. 23. Bedankt ! Bart Hanssens / Fedict Simon Bolivarlaan 30 1000 Brussel, Belgium @BartHanssens bart.hanssens [at] fedict.be | www.fedict.belgium.be

×