selenium cour

24
 TESTS FONCTIONNELS  AUTOMATISÉ S SELENIUM 2 : WebDriver & Selenium RC  G  w  e n  d  a l  -  s  o  j   a  v  a  w  e  s  t  @  g  a i  l   .  c  o m - L i   c  e n  c  e  C  R A T I   V E  C  O M M  O N  S 

Upload: nizarawi

Post on 08-Oct-2015

31 views

Category:

Documents


0 download

DESCRIPTION

cour selenium

TRANSCRIPT

  • 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