Download - Selenium Cour
-
TESTS FONCTIONNELS
AUTOMATISS SELENIUM 2 : WebDriver & Selenium RC
Gw
en
dal - so
javaw
est@
gm
ail.co
m - L
icen
ce
CR
EA
TIV
E C
OM
MO
NS
-
SOMMAIRE
Application tmoin Spring ROO Prsentation
Atouts
Un peu dhistoire Selenium Remote Control
Selenium 2 & WebDriver
Suite doutils Selenium Selenium IDE
Selenium server
Excution des tests fonctionnels automatiss Selenium server
Junit
Intgration Maven
Gw
en
dal - so
javaw
est@
gm
ail.co
m -
Lice
nce
CR
EA
TIV
E C
OM
MO
NS
-
APPLICATION TMOIN Spring ROO
Gw
en
dal - so
javaw
est@
gm
ail.co
m - L
icen
ce
CR
EA
TIV
E C
OM
MO
NS
-
SPRING ROO
Framework haute productivit qui permet :
de produire rapidement un modle darchitecture applicative, bas sur des technologies couramment
employes (Maven, Spring core/MVC/security, JPA,
REST)
faire de la gnration de code (ou Scaffholding)
partir du modle objet (approche model first ) jusqu la couche de prsentation.
Les objets mtiers, ou entits, sont des objets Java (POJO)
portant des annotations JPA pour dcrire le mapping
objet / relationnel.
POJO : Plain Old Java Object
JPA : Java Persistence Annotation
Gw
en
dal - so
javaw
est@
gm
ail.co
m -
Lice
nce
CR
EA
TIV
E C
OM
MO
NS
-
ATOUTS
o Particulirement adapt pour du prototypage rapide partir dun modle objet
o Trs bien document
o Environnement de dveloppement adapt et complet
o Courbe dapprentissage trs courte
o Les modles de page, produits avec Tiles et des feuilles de style CSS, sont
parfaitement personnalisables,
o Grce la gestion dextensions, facilite laccs des technologies telles que : Solr, Google App Engine, Spring Mobile & User Agent Analysis,
Selenium
o Spring ROO fournit une mthodologie pas pas pour dbrancher vers
une application J2E / Spring standard.
Petit bmol : Utilise beaucoup lAOP. Pourrait-tre difficile maintenir sans un environnement adapt tel que Spring Tool Suite.
Gw
en
dal - so
javaw
est@
gm
ail.co
m -
Lice
nce
CR
EA
TIV
E C
OM
MO
NS
-
UN PEU DHISTOIRE Selenium RC versus WebDriver
Gw
en
dal - so
javaw
est@
gm
ail.co
m - L
icen
ce
CR
EA
TIV
E C
OM
MO
NS
-
SELENIUM 1 - REMOTE CONTROL
o Bibliothque JavaScript permettant de simuler des
interactions avec une application Web
o Cette bibliothque devint le Framework Selenium Core
, sur lequel se base Selenium Remote Control et Selenium
IDE.
o Le JavaScript entraine certaines limitations, notamment
du fait des restrictions de scurit imposes par les
navigateurs mais aussi, cause de la complexit
grandissante des applications Web, utilisant les
fonctionnalits fournies par les navigateurs nouvelle
gnration.
o En 2008, fusion de Selenium et de WebDriver
Gw
en
dal - so
javaw
est@
gm
ail.co
m -
Lice
nce
CR
EA
TIV
E C
OM
MO
NS
-
SELENIUM 2 & WEBDRIVER
o WebDriver est un projet initialement ralis par un
ingnieur de chez Google pour piloter directement un
navigateur.
o Cet outil permet dinteragir avec le navigateur, tel quun utilisateur humain le ferait, et sans les restrictions imposs par la technologie JavaScripts.
o Le projet Selenium RC est pour le moment maintenu
pour des raisons de rtrocompatibilit et surtout en mode
maintenance. Il ne sera plus maintenu lavenir.
Gw
en
dal - so
javaw
est@
gm
ail.co
m -
Lice
nce
CR
EA
TIV
E C
OM
MO
NS
-
SUITE DOUTILS SELENIUM Prsentation
Gw
en
dal - so
javaw
est@
gm
ail.co
m - L
icen
ce
CR
EA
TIV
E C
OM
MO
NS
-
SELENIUM IDE
Selenium IDE est un environnement de dveloppement
pour la ralisation de scripts de test, dvelopp sous
forme dextension Firefox.
Il permet entre autre :
denregistrer les scripts simplement en effectuant le test dans le navigateur.
de rdiger les tapes du script laide des outils avancs de lditeur (autocompltion, menus contextuels).
Gw
en
dal - so
javaw
est@
gm
ail.co
m -
Lice
nce
CR
EA
TIV
E C
OM
MO
NS
-
SELENIUM SERVER
Selenium server est indispensable pour lancer les tests
sur une machine distance mais galement pour lancer
une suite de test HTML en local et sur les diffrents
navigateurs supports.
II est rtrocompatible avec les tests implments sous
Selenium Remote Control.
Gw
en
dal - so
javaw
est@
gm
ail.co
m -
Lice
nce
CR
EA
TIV
E C
OM
MO
NS
-
RALISATION DES TESTS
FONCTIONNELS Enregistrement VS Implmentation
Gw
en
dal - so
javaw
est@
gm
ail.co
m - L
icen
ce
CR
EA
TIV
E C
OM
MO
NS
-
SELENIUM IDE
Les +
Ralisation rapide de scripts de test
Scripts de test aiss maintenir
Rapports dexcution esthtiques et exploitables en ltat
Facile changer avec les quipes de tests
Les
Scripts de test non variabilisables
Incompatible avec les composants Flash, Java
(Applet)
Intgration dans lenvironnement de dveloppement par lintermdiaire dun outil de build , tel que Maven (voire batchs)
Gw
en
dal - so
javaw
est@
gm
ail.co
m -
Lice
nce
CR
EA
TIV
E C
OM
MO
NS
-
LANGAGE DE PROGRAMMATION SUPPORT
Les +
Plus robuste et plus homognes que les tests HTML dans
un contexte projet
Variabilisables / matrise des saisies / supporte les
conditions et les itrations offert
Accs toutes les API supportes par le langage
Intgration continue
Les
Charge de dveloppement plus importante (environ 20-
25 % PTU)
Plus dur maintenir dans la dure
Moins portable
Ne permet pas un change avec les quipes de tests
Gw
en
dal - so
javaw
est@
gm
ail.co
m -
Lice
nce
CR
EA
TIV
E C
OM
MO
NS
-
RECOMMANDATIONS
Les quipes Selenium recommandent lcriture des scripts de test dans le langage de dveloppement choisi pour le
projet, pour plus de robustesse et de stabilit.
Cependant, pour des tests simples, pour des tests manuels ,
pour des scripts de test destins une population autre
que des dveloppeurs, les tests HTML peuvent tre
appropris.
Pour des tests implments en Java, le design pattern
recommand est celui implment ici :
http://code.google.com/p/selenium/wiki/PageObjects
Gw
en
dal - so
javaw
est@
gm
ail.co
m -
Lice
nce
CR
EA
TIV
E C
OM
MO
NS
-
ANNEXES Intgration Maven
Gw
en
dal - so
javaw
est@
gm
ail.co
m - L
icen
ce
CR
EA
TIV
E C
OM
MO
NS
-
MAVEN SELENIUM PLUGIN
Permet de dmarrer Selenium server et de lancer une suite de tests HTML.
mvn selenium:selenese
MAVEN SUREFIRE PLUGIN
MAVEN FAILSAFE PLUGIN
Surcouche de Surefie destin grer spcifiquement les tests dintgration
mvn failsafe:integration-test
mvn failsafe:verify
Utiliser pendant la phase de test pour excuter les tests unitaires et gnrer les rapports
derreur.
mvn surefire:test
Gw
en
dal - so
javaw
est@
gm
ail.co
m -
Lice
nce
CR
EA
TIV
E C
OM
MO
NS
-
ANNEXES Navigateurs et plateformes supports
Gw
en
dal - so
javaw
est@
gm
ail.co
m - L
icen
ce
CR
EA
TIV
E C
OM
MO
NS
-
SELENIUM-WEBDRIVER
Google Chrome 12.0.712.0+
Internet Explorer 6, 7, 8, 9 - 32 and 64-bit where applicable
Firefox 3.0, 3.5, 3.6, 4.0, 5.0, 6, 7
Opera 11.5+
HtmlUnit 2.9
Android 2.3+ for phones and tablets (devices & emulators)
iOS 3+ for phones (devices & emulators) and 3.2+ for tablets
(devices & emulators)
Gw
en
dal - so
javaw
est@
gm
ail.co
m -
Lice
nce
CR
EA
TIV
E C
OM
MO
NS
-
SELENIUM 1.0 AND SELENIUM-RC Browser Selenium IDE Selenium 1 (RC) Operating Systems
Firefox 3.x Record and playback tests Start browser, run tests Windows, Linux, Mac
Firefox 3 Record and playback tests Start browser, run tests Windows, Linux, Mac
Firefox 2 Record and playback tests Start browser, run tests Windows, Linux, Mac
IE 8 Test execution only via
Selenium RC* Start browser, run tests Windows
IE 7 Test execution only via
Selenium RC* Start browser, run tests Windows
IE 6 Test execution only via
Selenium RC* Start browser, run tests Windows
Safari 4 Test execution only via
Selenium RC Start browser, run tests Windows, Mac
Safari 3 Test execution only via
Selenium RC Start browser, run tests Windows, Mac
Safari 2 Test execution only via
Selenium RC Start browser, run tests Windows, Mac
Opera 10 Test execution only via
Selenium RC Start browser, run tests Windows, Linux, Mac
Opera 9 Test execution only via
Selenium RC Start browser, run tests Windows, Linux, Mac
Opera 8 Test execution only via
Selenium RC Start browser, run tests Windows, Linux, Mac
Google Chrome Test execution only via
Selenium RC Start browser, run tests Windows, Linux, Mac
Others Test execution only via
Selenium RC Partial support possible** As applicable
Gw
en
dal - so
javaw
est@
gm
ail.co
m -
Lice
nce
CR
EA
TIV
E C
OM
MO
NS
-
ANNEXES Spring ROO
Gw
en
dal - so
javaw
est@
gm
ail.co
m - L
icen
ce
CR
EA
TIV
E C
OM
MO
NS
-
EXEMPLES DE COMMANDES
roo> hint
roo> jpa setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY
roo> entity jpa --class ~.Timer --testAutomatically
~.Timer roo> field string --fieldName message --notNull
roo> web mvc all --package ~.web
roo> selenium test --controller ~.web.TimerController
roo> web mvc scaffold --class com.foo.web.PersonController
roo> quit
Gw
en
dal - so
javaw
est@
gm
ail.co
m -
Lice
nce
CR
EA
TIV
E C
OM
MO
NS
-
ANNEXES Ressources
Gw
en
dal - so
javaw
est@
gm
ail.co
m - L
icen
ce
CR
EA
TIV
E C
OM
MO
NS
-
LIENS
http://static.springsource.org/spring-roo/reference/html/index.html
http://blog.xebia.fr/2011/02/18/automatiser-les-tests-selenium-avec-maven/
http://www.hascode.com/2012/03/selenium-webdriver-selenium-server-and-pageobjects-by-example/
docs.seleniumhq.org/docs/01_introducing_selenium.jsp
Gw
en
dal - so
javaw
est@
gm
ail.co
m -
Lice
nce
CR
EA
TIV
E C
OM
MO
NS