24
TESTS FONCTIONNELS AUTOMATISÉS SELENIUM 2 : WebDriver & Selenium RC Gwendal - [email protected] - Licence CREATIVE COMMONS

Test Automatisation

Embed Size (px)

DESCRIPTION

Automatisation de test

Citation preview

Page 1: Test Automatisation

TESTS FONCTIONNELS

AUTOMATISÉS 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

Page 2: Test Automatisation

SOMMAIRE

Application témoin – Spring ROO Présentation

Atouts

Un peu d’histoire Selenium Remote Control

Selenium 2 & WebDriver

Suite d’outils Selenium Selenium IDE

Selenium server

Exécution des tests fonctionnels automatisés Selenium server

Junit

Intégration Maven

Gw

en

dal - so

javaw

est@

gm

ail.co

m -

Lice

nce

CR

EA

TIV

E C

OM

MO

NS

Page 3: Test Automatisation

APPLICATION TÉMOIN Spring ROO

Gw

en

dal - so

javaw

est@

gm

ail.co

m - L

icen

ce

CR

EA

TIV

E C

OM

MO

NS

Page 4: Test Automatisation

SPRING ROO

Framework haute productivité qui permet :

de produire rapidement un modèle d’architecture

applicative, basé sur des technologies couramment

employées (Maven, Spring core/MVC/security, JPA,

REST…)

faire de la génération de code (ou Scaffholding) à

partir du modèle objet (approche « model first ») jusqu’à

la couche de présentation.

Les objets métiers, ou entités, sont des objets Java (POJO)

portant des annotations JPA pour décrire 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

Page 5: Test Automatisation

ATOUTS

o Particulièrement adapté pour du prototypage rapide à partir d’un

modèle objet

o Très bien documenté

o Environnement de développement adapté et complet

o Courbe d’apprentissage très courte

o Les modèles de page, produits avec Tiles et des feuilles de style CSS, sont

parfaitement personnalisables,

o Grâce à la gestion d’extensions, facilite l’accès à des technologies telles

que : Solr, Google App Engine, Spring Mobile & User Agent Analysis,

Selenium…

o Spring ROO fournit une méthodologie pas à pas pour débrancher vers

une application J2E / Spring standard.

Petit bémol : Utilise beaucoup l’AOP. 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

Page 6: Test Automatisation

UN PEU D’HISTOIRE 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

Page 7: Test Automatisation

SELENIUM 1 - REMOTE CONTROL

o Bibliothèque JavaScript permettant de simuler des

interactions avec une application Web

o Cette bibliothèque 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 sécurité imposées par les

navigateurs mais aussi, à cause de la complexité

grandissante des applications Web, utilisant les

fonctionnalités fournies par les navigateurs nouvelle

génération.

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

Page 8: Test Automatisation

SELENIUM 2 & WEBDRIVER

o WebDriver est un projet initialement réalisé par un

ingénieur de chez Google pour piloter directement un

navigateur.

o Cet outil permet d’interagir avec le navigateur, tel

qu’un utilisateur humain le ferait, et sans les restrictions

imposés par la technologie JavaScripts.

o Le projet Selenium RC est pour le moment maintenu

pour des raisons de rétrocompatibilité et surtout en mode

maintenance. Il ne sera plus maintenu à l’avenir.

Gw

en

dal - so

javaw

est@

gm

ail.co

m -

Lice

nce

CR

EA

TIV

E C

OM

MO

NS

Page 9: Test Automatisation

SUITE D’OUTILS SELENIUM Présentation

Gw

en

dal - so

javaw

est@

gm

ail.co

m - L

icen

ce

CR

EA

TIV

E C

OM

MO

NS

Page 10: Test Automatisation

SELENIUM IDE

Selenium IDE est un environnement de développement

pour la réalisation de scripts de test, développé sous

forme d’extension Firefox.

Il permet entre autre :

d’enregistrer les scripts simplement en effectuant le test

dans le navigateur.

de rédiger les étapes du script à l’aide des outils

avancés de l’éditeur (autocomplétion, menus

contextuels…).

Gw

en

dal - so

javaw

est@

gm

ail.co

m -

Lice

nce

CR

EA

TIV

E C

OM

MO

NS

Page 11: Test Automatisation

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 différents

navigateurs supportés.

II est rétrocompatible avec les tests implémentés sous

Selenium Remote Control.

Gw

en

dal - so

javaw

est@

gm

ail.co

m -

Lice

nce

CR

EA

TIV

E C

OM

MO

NS

Page 12: Test Automatisation

RÉALISATION DES TESTS

FONCTIONNELS Enregistrement VS Implémentation

Gw

en

dal - so

javaw

est@

gm

ail.co

m - L

icen

ce

CR

EA

TIV

E C

OM

MO

NS

Page 13: Test Automatisation

SELENIUM IDE

Les « + »

Réalisation rapide de scripts de test

Scripts de test aisés à maintenir

Rapports d’exécution esthétiques et exploitables en

l’état

Facile à échanger avec les équipes de tests

Les « – »

Scripts de test non variabilisables

Incompatible avec les composants Flash, Java

(Applet)…

Intégration dans l’environnement de développement

par l’intermédiaire d’un 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

Page 14: Test Automatisation

LANGAGE DE PROGRAMMATION SUPPORTÉ

Les « + »

Plus robuste et plus homogènes que les tests HTML dans

un contexte projet

Variabilisables / maîtrise des saisies / supporte les

conditions et les itérations offert

Accès à toutes les API supportées par le langage

Intégration continue

Les « – »

Charge de développement plus importante (environ 20-

25 % PTU)

Plus dur à maintenir dans la durée

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

Page 15: Test Automatisation

RECOMMANDATIONS

Les équipes Selenium recommandent l’écriture des scripts de

test dans le langage de développement 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 destinés à une population autre

que des développeurs, les tests HTML peuvent être

appropriés.

Pour des tests implémentés en Java, le design pattern

recommandé est celui implémenté 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

Page 16: Test Automatisation

ANNEXES Intégration Maven

Gw

en

dal - so

javaw

est@

gm

ail.co

m - L

icen

ce

CR

EA

TIV

E C

OM

MO

NS

Page 17: Test Automatisation

MAVEN SELENIUM PLUGIN

Permet de démarrer Selenium server et de lancer une suite de tests HTML.

mvn selenium:selenese

MAVEN SUREFIRE PLUGIN

MAVEN FAILSAFE PLUGIN

Surcouche de Surefie destiné à gérer spécifiquement les tests d’intégration

mvn failsafe:integration-test

mvn failsafe:verify

Utiliser pendant la phase de test pour exécuter les tests unitaires et générer les rapports

d’erreur.

mvn surefire:test

Gw

en

dal - so

javaw

est@

gm

ail.co

m -

Lice

nce

CR

EA

TIV

E C

OM

MO

NS

Page 18: Test Automatisation

ANNEXES Navigateurs et plateformes supportés

Gw

en

dal - so

javaw

est@

gm

ail.co

m - L

icen

ce

CR

EA

TIV

E C

OM

MO

NS

Page 19: Test Automatisation

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

Page 20: Test Automatisation

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

Page 21: Test Automatisation

ANNEXES Spring ROO

Gw

en

dal - so

javaw

est@

gm

ail.co

m - L

icen

ce

CR

EA

TIV

E C

OM

MO

NS

Page 22: Test Automatisation

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

Page 23: Test Automatisation

ANNEXES Ressources

Gw

en

dal - so

javaw

est@

gm

ail.co

m - L

icen

ce

CR

EA

TIV

E C

OM

MO

NS

Page 24: Test Automatisation

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