You are on page 1of 50

Formation

SELENIUM

www.objis.com - Formation SELENIUM

Sommaire
Introduction SELENIUM

Fondamentaux Selenium IDE

Fondamentaux Selenium RC

33

Fondamentaux Selenium GRID

43

Liens utiles & Annexe

49

www.objis.com - Formation SELENIUM


www.objis.com - Formation
SPRING

Introduction Selenium
Test crans web : besoin de gagner du temps !
Comment automatiser ?
Tests fonctionnels + non rgression
Test multi-navigateurs ! interroprabilit
Enregistrer + Rejouer + Maj scripts + suite de test
Chane IC : Svn + Maven/Ant + Archiva + Hudson
Outils : IDE + Serveur + Grid
www.objis.com - Formation SELENIUM
www.objis.com - Formation
SPRING

Fondamentaux Selenium IDE

1) Installation & lancement Selenium IDE


2) Enregistrer un scnario
3) Rejouer un scnario
4) Vrifier prsence d'un lment
5) Ajouter un commentaire
6) Travailler avec plusieurs fentres
7) Travailler avec Ajax
8) Stocker une information dans variable
9) Debuguer un scnario
10) Sauvegarder une suite de test
11) Localiser un lment (id, name, xpath...)
12) Patterns d'lement avec 'glob'
13) Travailler avec Javascript
14) crer une extension
www.objis.com - Formation SELENIUM
www.objis.com - Formation
SPRING

5
7
10
12
15
16
17
18
19
20
22
29
30
31
4

Savoir-faire Selenium IDE N1 :


Installation & lancement
Selenium IDE = plugin firefox = fichier .xpi
Tlchargement (ex : version 1.0.10)
http://seleniumhq.org/download/
A partir de firefox :
fichier/ouvrir/--> selenium-ide-1.0.10.xpi
Redmarrer Firefox
Menu Firefox outils / Selenium IDE

www.objis.com - Formation SELENIUM


www.objis.com - Formation
SPRING

Savoir-faire Selenium N1 :
Installation & lancement Selenium IDE
1
2
3

7
6

9
8

10

www.objis.com - Formation SELENIUM


www.objis.com - Formation
SPRING

Savoir-faire Selenium IDE N2 :


enregistrer une squence
Prciser le point de dpart
2
'Base URL'
Commande selenium 'open'
Commandes suivantes en relatif de Base URL
Appuyer bouton rouge pour lancer enregistrement
5
INFO bouton appuy par dfaut au lancement
Appuyer nouveau lorsque scnario termin
Recommandations:
Toujours dfinir point de dpart
Tester 'une chose la fois'
Ne pas rendre les tests inter dpendants
www.objis.com - Formation SELENIUM
www.objis.com - Formation
SPRING

Savoir-faire Selenium IDE N2 :


enregistrer une squence

Le test peut commencer :


__1) Cliquez sur le bouton radio
__2) Slectionnez une option avec combo box
__3) Cliquez sur le lien Accueil

www.objis.com - Formation SELENIUM


www.objis.com - Formation
SPRING

Savoir-faire Selenium IDE N2 :


enregistrer une squence

L'enregistrement du test est termin

www.objis.com - Formation SELENIUM


www.objis.com - Formation
SPRING

Savoir-faire Selenium IDE N3 :


rejouer un test

Rejouer un test
Commande
suivante
Vitesse

pause
Rejouer une suite de test
www.objis.com - Formation SELENIUM
www.objis.com - Formation
SPRING

10

Savoir-faire Selenium IDE N3 :


rejouer un test selenium

Le test s'est bien pass : les fonctionalits attendus sont valides


clicker sur bouton radio
slection dans une liste combo
Appui sur lien menant page d'accueil

www.objis.com - Formation SELENIUM


www.objis.com - Formation
SPRING

11

Savoir-faire Selenium IDE N4 :


Vrifier prsence lment
Cliquer droit sur l'lment (texte, Bouton,...)

menu contextuel
ajout Firefox
par Selenium

Choisir 'AssertXXX' ou 'VerifyXXXX'


Assert : si ment manquant, le test s'arrte !
Verify : si lment manquant , le test continue
www.objis.com - Formation SELENIUM
www.objis.com - Formation
SPRING

12

Savoir-faire Selenium IDE N4 :


Vrifier prsence lment

Validation titre
de la page

www.objis.com - Formation SELENIUM


www.objis.com - Formation
SPRING

13

Savoir-faire Selenium IDE N4 :


Vrifier prsence lment
(voir commandes disponible)
1

Menu assertXXX

Menu veriFyXXX

Menu waitForXXX

Menu storeXXX

www.objis.com - Formation SELENIUM


www.objis.com - Formation
SPRING

14

Savoir-faire Selenium IDE N5 :


Ajouter un commentaire

www.objis.com - Formation SELENIUM


www.objis.com - Formation
SPRING

15

Savoir-faire Selenium IDE N6 :


Travailler avec plusieurs fentres
3

1
2

1) waitPopUp : commande gnre par Selenium lors de l'ouverture d'une popup (window.open)
2) selectWindow: commande gnre par Selenium lorsque l'utilisateur a mis focus sur popup
3) nom logique de la fentre cre partir de la fentre principale
4) Timeout par dfaut. Possibilit de modifier en ajoutant manuellement commande SetTimeOut en dbut de script
5) selectWindow null : technique pour redonner focus fentre principale (aprs window.close ('popupwindow'))

www.objis.com - Formation
SPRING

16

Savoir-faire Selenium IDE N7 :


Travailler avec Ajax
Selenium n'attend pas le retour des donnes !
Un test peu sortir russi alors donnes pas arrives !
Il faut lui dire d'attendre explicitement retour donnes
Commande 'waitForTextPresent'
Commande 'waitForElementPresent'
Timeout par dfaut : 30s (30.000 ms)
1

www.objis.com - Formation SELENIUM


www.objis.com - Formation
SPRING

17

Savoir-faire Selenium IDE N8 :


Stocker une info. dans variable
Menu contextuel : storeTextPresent 'monInfo'
javascript{storedVars['maVariable'];}

Commande
ajoute
manuellement

Avant

Aprs

www.objis.com - Formation SELENIUM


www.objis.com - Formation
SPRING

18

Savoir-faire Selenium IDE N9 :


Dbugguer
Piste 1 :

Piste 2 :
Slectionner une commande
Appuyer sur X pour excution immdiate

Piste 3 :
Commande 'echo' selenium
quivalent javascript 'Console.log'
www.objis.com - Formation SELENIUM
www.objis.com - Formation
SPRING

19

Savoir-faire Selenium IDE N10 :


Suite de tests
Ouvrir plusieurs tests (anciens ou nouveaux)

Jouer l'ensemble des tests ouverts

Faire enregistrer sous (masuite.html)

www.objis.com - Formation SELENIUM


www.objis.com - Formation
SPRING

20

Savoir-faire Selenium IDE N11 :


Localiser les lments
Bonne pratique HTML : 'id' et 'name'
Cependant, suivre cette bonne pratique est dur :
Ex : HTML gnr dynamiquement
Elment de solution : Localisateurs
Localiser par id
Localiser par name
Localiser par lien
Localiser par xpath
Localiser par css
www.objis.com - Formation SELENIUM
www.objis.com - Formation
SPRING

21

Bonne pratique :
Localiser lment avec Firebug
Pour dcouvrir id, name, css de l'lment
Cliquer sur icone firebug
Mettre curseur souris sur l'lment

www.objis.com - Formation SELENIUM


www.objis.com - Formation
SPRING

22

Savoir-faire Selenium IDE N11 :


Localiser lments avec id , name
Localiser lment dans selenium avec son 'id'
Entrer l'ID dans 'Cible'
Appuyer bouton 'Rechercher'
Selenium entoure l'lment bordure verte

Localiser lment dans selenium avec son 'name'


Name=verifybutton dans Cible + 'rechercher'
Possibilit de filtre avec value

www.objis.com - Formation SELENIUM


www.objis.com - Formation
SPRING

23

Savoir-faire Selenium IDE N11 :


Localiser lments avec link, DOM
Localiser lment dans selenium avec son 'id'
link=ContenuDuLien dans 'Cible'
Appuyer bouton 'Rechercher'
Selenium entoure l'lment bordure verte

Localiser lment dans selenium avec DOM


dom=document.getElementById('but1')

www.objis.com - Formation SELENIUM


www.objis.com - Formation
SPRING

24

Savoir-faire Selenium IDE N11 :


Localiser lments avec XPath
Xpath permet de faire des requtes DOM comme
si le DOM tait un document XML

1
2

xpath=//input premier bouton rencontr


xpath=//input[2] 2me bouton rencontr
xpath=/html/body/div [2] /div [3] /input
www.objis.com - Formation SELENIUM
www.objis.com - Formation
SPRING

25

Savoir-faire Selenium IDE N11 :


Localiser lments avec XPath
xpath=//input

(Relatif car //)

xpath=//input[2]

xpath=/html/body/div [2] /div [3] /input (absolu : /)


xpath=//div[@class='mainbody']
xpath=//div[starts-with(@id,'time_')]
xpath=//div[contains(@id,'time_')]
xpath=//div[contains(text(),'cet element change')]
//input[@value='Button with ID']/following-sibling::input[value='Sibblin Button']
www.objis.com - Formation SELENIUM
www.objis.com - Formation
SPRING

26

Savoir-faire Selenium IDE N11 :


Localiser lments avec Slecteurs CSS
Xpath flexible...mais pas simple
Selenium compatible avec CSS 1.0, 2.0 et 3.0
css=votreSelecteur

www.objis.com - Formation SELENIUM


www.objis.com - Formation
SPRING

27

Savoir-faire Selenium IDE N11 :


Localiser lments avec Slecteurs CSS
Rcup classe + naviguer dessus ou dessous
css=div.centerdiv ( class='centerdiv')
css=input#but1 + br + input
css=input[value='chocolate'] ( attribut )
css=div#divinthecenter ( id='divinthecenter')
Patterns matching
^= quivalent xpath starts-with
$= quivalent xpath ends-with
*= quivalent xpath contains
www.objis.com - Formation SELENIUM
www.objis.com - Formation
SPRING

28

Savoir-faire Selenium IDE N12 :


Patterns de caractres
exact:'salut'

glob:*out*
glob:?ut
2

glob:[abcdo]ut

regexp:\\w{3} \\d{2} \\w{3} \\d{4}


Ex : vrif si il y a une date sur page et qu'elle est
conforme pattern
www.objis.com - Formation SELENIUM
www.objis.com - Formation
SPRING

29

Savoir-faire Selenium IDE N13 :


Utiliser javascript
javascript{Date()}
javascript{d = new Date() ; d.getHours() }
Stocker rsultat javascript dans variable

Manipuler le navigateur :
this.browserbot.getUserWindow().concatStrings("Selenium "," Objis")
this.browserbot.getUserWindow().getElementById(selecttype).options.length
WaitForCondition, verifyEval...

www.objis.com - Formation SELENIUM


www.objis.com - Formation
SPRING

30

Savoir-faire Selenium IDE N13 :


Crer une extension
Crer extension = crer fonction avec pattern :
Selenium.prototype.doNomFonction = function() {
.....
}
Enregistrer fonction dans fichier user-extension.js
Informer Firefox de la prsence de ce fichier
Redmarrer Firefox

www.objis.com - Formation SELENIUM


www.objis.com - Formation
SPRING

31

Savoir-faire Selenium IDE N13 :


Crer une extension

www.objis.com - Formation SELENIUM


www.objis.com - Formation
SPRING

32

Fondamentaux Selenium Remote Control

1) Comprendre Selenium Remote Control


2) Installation & lancement Selenium RC
3) Lancer test Selenium IDE avec Selenium RC

www.objis.com - Formation SELENIUM


www.objis.com - Formation
SPRING

33

Limites Selenium IDE


1) Ne fonctionne qu'avec Firefox !
Comment tester avec d'autres navigateurs ?
Internet Explorer, Chrome , Opera, Safari ?
Rponse : Selenium Remote Control
Vous crivez scripts dans langage de votre choix
Selenium RC gnre scripts IE, FF, Chrome...
Patrick LightBody

Crer un proxy entre l'application tester et scripts


Permet l'utilisation de plusieurs langages
C#, Java, Python, Ruby...
Rend le script de test plus robuste
Avantage : SetUp / teardown
www.objis.com - Formation SELENIUM
www.objis.com - Formation
SPRING

34

Comprendre Selenium RC

www.objis.com - Formation SELENIUM


www.objis.com - Formation
SPRING

35

Savoir-faire Selenium RC N1 :
Installation & lancement
Selenium RC = composant Java = fichier .jar
Tlchargement (ex : version 1.0.10)
http://seleniumhq.org/download/
java -jar selenium-server-standalone-2.0b3.jar
Ecoute par dfaut sur port 4444

www.objis.com - Formation SELENIUM


www.objis.com - Formation
SPRING

36

Savoir-faire Selenium RC N1 :
gnrer rsultat tests firefox
java -jar selenium-server-standalone-2.0b3.jar
1
-htmlsuite *firefox
2
http://localhost/objis/selenium/TP2/
3
C:\chemin\vers\masuitedetest.html
C:\chemin\vers\masuitedetest-resultat-ff.html 4

Fichier gnr
par Selenium RC

www.objis.com - Formation SELENIUM


www.objis.com - Formation
SPRING

37

Savoir-faire Selenium RC N1 :
gnrer rsultat tests firefox

www.objis.com - Formation SELENIUM


www.objis.com - Formation
SPRING

38

Savoir-faire Selenium RC N1 :
gnrer rsultat tests firefox
-htmlsuite *iexplorer
Autre navigateurs
*iexplore
*iexploreproxy
*firefox
*firefox2
*firefox3
*firefoxproxy
*chrome
*googlechrome
*konqueror
*safari
*opera
*custom
www.objis.com - Formation
SPRING

39

Exporter test Selenium :


Java, c#, ...

www.objis.com - Formation
SPRING

40

Exporter test Selenium en Java

www.objis.com - Formation
SPRING

41

Lancer test Selenium en Java

Lib : selenium client driver

www.objis.com - Formation
SPRING

42

Fondamentaux Selenium Grid

1) Comprendre Selenium Grid


2) Crer un Hub Selenium Grid
3) Mettre en oeuvre Selenium Grid RC

www.objis.com - Formation SELENIUM


www.objis.com - Formation
SPRING

43

Valeur ajoute Selenium Grid


Vous avez besoin de connaitre
Ou est install Selenium RC
Prciser quel navigateur Simuler
Avec Selenium Grid, vous lancez plusieurs
instances de Selenium RC et vous avez un point
central pour envoyer vos commandes.
Scripts Ant :
ant sanity-check
ant launch-hub
ant Dport=5555 launch-remote-control
ant Dport=5556 launch-remote-control
www.objis.com - Formation SELENIUM
ant run-demo-in-parallel
www.objis.com - Formation
44
SPRING

Exemple architecture Grid

www.objis.com - Formation SELENIUM


www.objis.com - Formation
SPRING

45

Exemple architecture Grid


multi-environnement

www.objis.com - Formation SELENIUM


www.objis.com - Formation
SPRING

46

ANNEXE : ce que vous


ne pouvez pas enregistrer...
RAPPEL : Selenium dvelopp en Javascript
Essaie de synthtiser actions en vnements JS
SilverLight
Flex / Flash
HTML5
Uploads

www.objis.com - Formation
SPRING

47

Selenium 2
Fusion Selenium / WebDriver (produit Google)
WebDriver : mme positionnement que Selenium mais
accde au navig. via fonctions natives OS
WebDriver n'a pas la limitation 'javascript' de selenium

www.objis.com - Formation
SPRING

48

Liens utiles
Documentation Selenium :
http://seleniumhq.org/docs/index.html
Refrences commandes Selenium IDE :
http://release.seleniumhq.org/selenium-core/1.0.1/reference.html
Guide utilisateur Selenium IDE
http://seleniumhq.org/docs/02_selenium_ide.html#chapter02-reference

www.objis.com - Formation
SPRING

49

ANNEXE : solutions de cloudTesting


Externaliser lancement sur plusieurs machines (Os,
navigateurs) lancement scripts
http://www.cloudtesting.com/
Les tests doivent tre raliss avec Selenium IDE puis upload vers le serveur du
cloud. Il est possible de programmer l'avance l'excution des tests. Un rapport
d'excution donne ensuite la possibilit d'analyser les rsultats et de visualiser par
exemple les temps de chargement d'une page. Le cot 11 centimes d'euros par test
pour 500 tests en mode Pay-As-You-Test, 3 centimes pour 1000 tests en mode
abonnement mensuel

http://www.pushtotest.com/
http://www.soasta.com/
Lien utile : http://www.apidev.fr/blog/2009/12/01/cloud-testing-5-solutions-pour-tester-un-site-internet/
www.objis.com - Formation
SPRING

50