23
Selenium Réunion technique

Réunion technique PMSIpilot - Mars 2010

Embed Size (px)

DESCRIPTION

Tests Selenium

Citation preview

Page 1: Réunion technique PMSIpilot - Mars 2010

Selenium

Réunion technique

Page 2: Réunion technique PMSIpilot - Mars 2010

05/03/20102

réunion technique

Oui mais non ...

Page 3: Réunion technique PMSIpilot - Mars 2010

05/03/20103

réunion technique

Stop au massacre !

• Coupling is the single greatest problem in large software systems.

• Toujours penser :● Qu'on voudra utiliser cette classe dans un contexte

différent (en CLI par exemple !)● Que si, sur le moment c'est pénible, les chatons t'en

remercient

Page 4: Réunion technique PMSIpilot - Mars 2010

05/03/20104

réunion technique

N'introduisez pas de dépendances

• Non vraiment …• Sinon, au plus simple

● Injection dans le constructeur ● Injection sur certaines méthodes ● Notifiez un événement ● Parlons en …

Page 5: Réunion technique PMSIpilot - Mars 2010

05/03/20105

réunion technique

Point boulet direct !

Page 6: Réunion technique PMSIpilot - Mars 2010

05/03/20106

réunion technique

En fait … Epic Fail !

Page 7: Réunion technique PMSIpilot - Mars 2010

05/03/20107

réunion technique

C'est mieux !

Page 8: Réunion technique PMSIpilot - Mars 2010

05/03/20108

réunion technique

En plus on t'aide !

• Dans les contrôleurs● $this->getContext()● $this->getPmsipilotContext()

• Dans les formulaires étendant BaseForm● $this->getValidUser()● $this->getValidContext()

Page 9: Réunion technique PMSIpilot - Mars 2010

05/03/20109

réunion technique

Tests unitaires

• Fatalement on peut les faire sur du code faiblement couplé

• Face à un bug ou une évol d'une classe● Ecrire un test validant le comportement voulu● Faire le dev

• != tests fonctionnels• En général c'est tout simple

Page 10: Réunion technique PMSIpilot - Mars 2010

05/03/201010

réunion technique

Tests unitaires

Page 11: Réunion technique PMSIpilot - Mars 2010

05/03/201011

réunion technique

Tests unitaires

• On peut tester :● le retour de fonctions● Le type des objets● Le lancement d'exception● ...

• Cf Adrien• Cf test/unit

Page 12: Réunion technique PMSIpilot - Mars 2010

05/03/201012

réunion technique

Les tests chez PMSIpilot

• Tests unitaires● Bas niveau● Fonctionnement des classes● Comportements attendus et effets de bord

• Tests fonctionnels● Tester les données, les workflows● Parcourir le logiciel

• Tests d'interfaces● Tester le JS, la CSS● Sur différents navigateurs

Page 13: Réunion technique PMSIpilot - Mars 2010

05/03/201013

réunion technique

Selenium

• Un framework de test en Javascript (fear !)• Conçu pour tester les interfaces• Pour gérer les différences entre les navigateurs• http://seleniumhq.org/projects/ide/

Page 14: Réunion technique PMSIpilot - Mars 2010

05/03/201014

réunion technique

Test suite

• OMG c'est hachetéheumelle !• web/selenium/TestSuite_PMSIpilot.html

Page 15: Réunion technique PMSIpilot - Mars 2010

05/03/201015

réunion technique

Ecrire un test

• MERILESTFOU c'est toujours du hachetéheumelle

Page 16: Réunion technique PMSIpilot - Mars 2010

05/03/201016

réunion technique

Ecrire un test

• Une instruction● Commande● Cible● Valeur

• Recherche / manip sur des éléments● Facile pour les formulaires et les liens● Xpath est ton ami pour le reste (ou d'autres trucs)● Merci firebug

Page 17: Réunion technique PMSIpilot - Mars 2010

05/03/201017

réunion technique

Ecrire un test

Page 18: Réunion technique PMSIpilot - Mars 2010

05/03/201018

réunion technique

Commandes et assertions

• open• click/clickAndWait• verifyTitle/assertTitle• verifyTextPresent• verifyElementPresent• verifyText• verifyTable• waitForPageToLoad• waitForElementPresent

Page 19: Réunion technique PMSIpilot - Mars 2010

05/03/201019

réunion technique

Démo

Page 20: Réunion technique PMSIpilot - Mars 2010

05/03/201020

réunion technique

Firefox … ça roule

Page 21: Réunion technique PMSIpilot - Mars 2010

05/03/201021

réunion technique

IE 7 .. fail !

Page 22: Réunion technique PMSIpilot - Mars 2010

05/03/201022

réunion technique

ROADMAP

• /pmsipilot/• HUDSON

● http://wiki.hudson-ci.org/display/HUDSON/Selenium+Plugin

Page 23: Réunion technique PMSIpilot - Mars 2010

05/03/201023

réunion technique

pmsiPicole