• Aucun résultat trouvé

Outils d’automatisation de tests

N/A
N/A
Protected

Academic year: 2022

Partager "Outils d’automatisation de tests "

Copied!
60
0
0

Texte intégral

(1)

Outils d’automatisation de tests

d’interfaces Web

David GERBAULT

Ingénieurs 2000 Xposé 2010-2011

1

(2)

2

http://www.clever-age.com/

http://watir.com/

(3)

3

(4)

4

2. Selenium 3. Watir

4. Conclusion

(5)

5

Souvent : tests du Contrôleur (code)

Rarement : tests de la Vue (Interface Web)

C ONSTAT !

(6)

6

Simuler l’interaction de(s) l’utilisateur(s)

au travers de tests fonctionnels

(7)

7

Automatisation de tests

Selenium / CubicTest / Watir / AutoIT / Canoo / WebTest

Gestion des tests

Selenium / Outils borland / Salome / TestLink / Fitnesse / Outil HP / Twist

Tests de charge

Grinder / OpenSta / JMeter

Model Checking

NModel / Smart testing / MaTeLo

Qu’est ce que c’est ? : Vérification algorithmique d’un modèle donné, du système lui-même ou d’une abstraction du système, pour savoir si il satisfait une spécification, souvent formulée en termes de logique temporelle.

= = > Curieux? Google it !

LES TESTS ...

(8)

8

Conformité des développements par rapport aux besoins exprimés

Développeurs et équipes d’assurance qualité

Valider le bon fonctionnement de l’application et le passage en production.

(9)

9

Le test doit être joué plus d’une fois.

&

Le test peut être automatisé de bout en bout.

Q UAND ?

(10)

10

2. Définition du périmètre de test.

3. Rédaction des cas de tests.

4. Enregistrement des tests dans l’outil.

5. Exécution des tests.

(11)

11

•  Tests de non régressions fréquents

•  Retour rapide aux développeurs pendant la phase de développement

•  Cas de tests « illimités »

•  Rapports personnalisés

•  Convient aux développements Agile et d’eXtreme Programming

•  Documentation rigoureuse des cas de tests

•  Suppression des erreurs des tests manuels

C ONSÉQUENCES ?

(12)

12

Ecrire des tests dans le format voulu et adapté à l’outil d’intégration continue.

Exemple

Selenium – Java (Junit) – Eclipse – Hudson

Exemple avec ant + Selenium + Hudson

http://www.clever-age.com/veille/blog/integration-pas-a-pas-de-tests-selenium-dans-hudson.html

(13)

13

P ROBLÈMATIQUES

Ce qu'il faut tester

•  Contenus

•  Liens

•  Fonctions

•  Eléments dynamiques

•  Ajax

Résultats

• Assert vs Verify

• AssertTextPresent vs AssertElementPresent vs AssertText

Localisation

•  ID, name attribute, Xpath statement, Document Object Model

•  Findbugs

•  Objets dynamiques

•  AJAX (attente d'éléments)

(14)

14

(15)

SELENIUM

15

Distribué par OpenQA licence libre Apache 2.0

8 logiciels : http://seleniumhq.org/projects/

http://code.google.com/p/selenium/

(16)

16 16

(17)

SELENIUM IDE

17

(18)

18

(19)

SELENIUM IDE

19

(20)

20

(21)

SELENIUM IDE

21

Démonstration

(22)

22

Enregistrement / Lecture des tests

3 Méthodes de constructions de tests

•  Enregistrement

•  Ajout de vérifications (assert)

•  Edition

(23)

SELENIUM IDE

23

Debug / Point d’arrêt Sauvegarder/Exporter

HTML, Java, Php, Perl, Python, C#...

Plugins

(24)

24

Framework d’exécution de tests DHTML Moteur de

•  Selenium IDE

•  Selenium Remote Control

Déploiement possible sur serveur d’application

(25)

SELENIUM R EMOTE C ONTROL

25

Selenium IDE+ Core

(26)

26

Firefox

≥2 IE

≥ 6 Safari

≥ 2 Opera

≥ 8 Chrome

Enregistre et lance les tests Exécution

via RC

Exécution via RC

Exécution via RC

Exécution via RC

Démarre le navigateur &

lance les tests Démarre le navigateur &

lance les tests Démarre le navigateur &

lance les tests Démarre le navigateur &

lance les tests Démarre le navigateur &

lance les tests

Windows, Linux, Mac

Windows

Mac

Windows, Linux, Mac

Windows

(27)

SELENIUM R EMOTE C ONTROL

27

.jar èJRE

(28)

28

•  Dépendance de cas de test

•  Historisation des résultats des tests (Framework)

•  Gestion des erreurs

•  Re-exécution des tests qui ont échoué

•  Capture d'écran des tests qui ont échoués

•  Tests de Base de Données

(29)

SELENIUM R EMOTE C ONTROL

29

(30)

30

(31)

31

(32)

32

(33)

33

(34)

34

(35)

35

(36)

36

•  Configurer le proxy

•  Mode Mono/Multi fenêtre(s)

•  Choix du profil Firefox

•  Exécuter directement du HTML

•  Récupérer les logs directement

•  Chemin absolu vers le navigateur (ex : si plusieurs versions)

•  Mode interactif

Plus d’options en tapant : java -jar selenium-server.jar –h

(37)

SELENIUM G RID

37

Limitations de RC :

•  Tests concurrents limités ( <6 conseillé / RC)

•  Si trop rapide : Goulot d’étranglement Selenium RC ó navigateur

•  Tests différentes versions des navigateurs & OS.

èArchitecture compliqué et non maintenable

(38)

38

(39)

SELENIUM G RID

39

(40)

40

(41)

SELENIUM G RID

41

Avantages :

•  Améliorations des performances

•  Limitation de l’utilisation de chaque RC

•  Choix du RC transparent (hub)

•  Tests multi navigateurs & multi OS faciles Exemple en java

new DefaultSelenium("localhost", 4444, **'*firefox'**, 'http://www.google.fr');

devient

new DefaultSelenium(”hub", 4444, **Chrome on Ubuntu'**, ‘http://www.google.fr ');

new DefaultSelenium("hub", 4444, ** IE 7 on Chinese locale '**, ‘http://www.google.fr ');

new DefaultSelenium("hub", 4444, ** Safari on Quadri-processor '**, ‘http://www.google.fr ');

(42)

42

(43)

C UBIC T EST ( POUR E CLIPSE )

43

(44)

44

(45)

C UBIC T EST ( POUR E CLIPSE )

45

(46)

46

(47)

C UBIC T EST ( POUR E CLIPSE )

47

(48)

48

Couche Graphique Watir ?? (Partie 3)

(49)

B ROMINE

49

(50)

50

•  JUnit Report

•  TestNG Report

•  ReportNG

•  TestNG-xslt

•  Python

• HTMLTestRunner

•  Ruby

• RSpec Report

Ou : utiliser Bromine !

(51)

B ROMINE

51

Application under tests

Managers

Définissent les tests requis et les scénarios de tests Consultent les résultats

Testers

Upload et lancent les tests Consultent les résultats

(52)

52

•  Upload de tests

•  Tests multi navigateurs & OS en un click

•  RCs sous forme de Nodes (sans GRID)

•  Logs des résultats

•  Groupes ó Projets

•  Plugins

(53)

SELENIUM : B ILAN

53

(54)

54

de bases

Tests multi plateformes/OS Approche

projet

Couche graphique

de Ruby

(55)

W ATIR

55

Open source

Communauté active et grandissante Ruby

Multi plateforme / OS

"Powerfull"

"easy to use"

"beautifully lightweight"

(56)

56

Automated testing that doesn’t hurt

(57)

W ATIR

#sudo gem install xxxxxxxx 57

(58)

58

Selenium

•  Adapté à différents niveaux de besoins

•  Multi langages Mon avis :

Watir

•  Adapté à un seul un seul niveau de besoin

•  « La terre ne s’est pas faite en un jour »

(59)

59

Selenium : Compatible avec Spring Roo Des betas coté Selenium…

•  Tests sous Android

•  Selenium Standalone

(RC + WebDriver en un jar)

•  Selenium 2 (WebDriver)

http://code.google.com/p/selenium/downloads/list

(60)

60

Le Chat de Philippe Geluck

Références

Documents relatifs

• Choix et contraintes des locaux d’installation d’un automate (20 min) : Khedidja Bekhtari, Isabelle Princet, Laurence Escalup?. • Qualification des équipements (20 min)

Par conséquent, à ce jour, les tests sérologiques auraient une place dans la surveillance épidémiologique, dans l’identification des personnes étant ou ayant été

Centre de services, Gestion des incidents, gestion des configurations Gestion des problèmes, Gestion des changements, Gestion de la disponibilité , Gestion des mises en

Pour le vérifier, nous avons calculé les erreurs de Quantification, d’Utilisation des Neurones et Topologique pour chaque base de données à partir des résultats de

Preuves courtes de l’ordre d’un élément Preuves courtes de primalité et de composition PRIME est dans NP ∩ co − NP.. Tests de composition PRIME est dans co

Gestion de la disponibilité Gestion des incidents Support : Gestion des incidents Gestion des problèmes Support : Gestion des problèmes Gestion des configurations Support

Diviser r´ ecursivement et le plus efficacement possible les individus de l’ensemble d’apprentissage par des tests d´ efinis ` a l’aide des variables jusqu’` a obtenir des

Les erreurs d’arrondis finissent par s’amplifier ; le schéma est instable et ses résultats n’ont bientôt plus rien à voir avec la solution analytique