SlideShare une entreprise Scribd logo
Mieux vivre avec ses tests
d'acceptance
par Khanh Tuong Maudoux
@jetoile
1
Mieux vivre avec ses tests d’acceptance
Au programme…
• Les protagonistes
– Cucumber JVM
– Selenium 2
– FluentLenium
• Mise en œuvre
– Les problèmes
– Les solutions
– Le résultat
2
Mieux vivre avec ses tests d’acceptance
Qui je suis…
• Khanh Tuong Maudoux
• Développeur Java indépendant
• blog : http://blog.jetoile.fr
• @jetoile
• khanh.maudoux@jetoile.fr
3
Mieux vivre avec ses tests d’acceptance
Les protagonistes
4
Mieux vivre avec ses tests d’acceptance
Les protagonistes
Cucumber JVM
5
Mieux vivre avec ses tests d’acceptance
Les protagonistes
Cucumber JVM
6
• BDD (Behavior Driven Development)
Mieux vivre avec ses tests d’acceptance
Les protagonistes
Cucumber JVM
7
• Notions :
– Feature
– Scénario
– Step
Mieux vivre avec ses tests d’acceptance
Les protagonistes
Cucumber JVM
8
• Step et Fixture
• 5 types :
– Given
– When
– Then
– And
– But
Mieux vivre avec ses tests d’acceptance
Les protagonistes
Cucumber JVM
9
• Step « simple »
Mieux vivre avec ses tests d’acceptance
Les protagonistes
Cucumber JVM
10
• Step « paramétrée »
Mieux vivre avec ses tests d’acceptance
Les protagonistes
Cucumber JVM
11
• Table
Mieux vivre avec ses tests d’acceptance
Les protagonistes
Cucumber JVM
12
• Scenario Outline
Mieux vivre avec ses tests d’acceptance
Les protagonistes
Cucumber JVM
13
• Utilisation
– Runner JUnit
Mieux vivre avec ses tests d’acceptance
Les protagonistes
Cucumber JVM
14
• Utilisation
– Maven
Mieux vivre avec ses tests d’acceptance
Les protagonistes
Cucumber JVM
15
• Utilisation
– IDE
Mieux vivre avec ses tests d’acceptance
Les protagonistes
Cucumber JVM
16
• Mais…
– Pas d’héritage entre classes de Step
⇒utilisation de l’injection
– Instanciation de toutes les classes de Step
– Step Hell
– Peu de choses
⇒Obligé de réécrire les fixtures
– Pas de partage entre Step
⇒Variable statique ou injection
Mieux vivre avec ses tests d’acceptance
Les protagonistes
Selenium
17
Mieux vivre avec ses tests d’acceptance
Les protagonistes
Selenium
18
• Selenium IDE
• WebDriver
• Selenium Server
Mieux vivre avec ses tests d’acceptance
Les protagonistes
Selenium
19
• Exemple :
Mieux vivre avec ses tests d’acceptance
Les protagonistes
Selenium
20
• Page Object Pattern (1/2) :
Mieux vivre avec ses tests d’acceptance
Les protagonistes
Selenium
21
• Page Object Pattern (2/2) :
Mieux vivre avec ses tests d’acceptance
Les protagonistes
Selenium
22
• Mais…
– Selenium IDE : à oublier!
– Verbeux
⇒Page Object Pattern
– Difficilement maintenable
⇒Obligé de fournir une surcouche
Mieux vivre avec ses tests d’acceptance
Les protagonistes
Selenium
23
• Mais…
– WebDriver Hell
⇒Compatibilité
⇒Options
⇒Bridge (ChromeDriver, …)
– [Selenium Server] Les agents
– Attention à la version (ex : upgrade Firefox)
Mieux vivre avec ses tests d’acceptance
Les protagonistes
FluentLenium
24
Mieux vivre avec ses tests d’acceptance
Les protagonistes
FluentLenium
25
• Surcouche de Selenium
– Fluent API
– Page Object Pattern
Mieux vivre avec ses tests d’acceptance
Les protagonistes
FluentLenium
26
• Page (FluentPage)
Mieux vivre avec ses tests d’acceptance
Les protagonistes
FluentLenium
27
• Test (FluentTest)
Mieux vivre avec ses tests d’acceptance
Les protagonistes
FluentLenium
28
• Test (FluentTest)
Mieux vivre avec ses tests d’acceptance
Les protagonistes
FluentLenium
29
• Fluent API (1/2) :
Mieux vivre avec ses tests d’acceptance
Les protagonistes
FluentLenium
30
• Fluent API (2/2) :
Mieux vivre avec ses tests d’acceptance
Les protagonistes
FluentLenium
31
• Extensible
– FluentAdapter
• initFluent()
• initTest()
• Nouvelles annotations
– @SharedDriver(type=SharedDriver.PER_CLASS)
– @SharedDriver(type=SharedDriver.ONCE)
– @SharedDriver(type=SharedDriver.PER_METHOD)
Mieux vivre avec ses tests d’acceptance
Les protagonistes
FluentLenium
32
• Mais…
– JUnit/TestNG
– Pas multi navigateur
– Pas envisageable pour un « recetteur »
Mieux vivre avec ses tests d’acceptance
Mise en œuvre
33
Mieux vivre avec ses tests d’acceptance
Mise en œuvre
Les problèmes
34
Mieux vivre avec ses tests d’acceptance
Mise en œuvre
Les problèmes
35
• Selenium
– RAS modulo les WebDriver…
Mieux vivre avec ses tests d’acceptance
Mise en œuvre
Les problèmes
36
• FluentLenium
– 1 méthode = 1 test
Mieux vivre avec ses tests d’acceptance
Mise en œuvre
Les problèmes
37
• Cucumber JVM
– 1 méthode par step
– Les steps d’un scénario peuvent être dans différentes
classes
– Pas d’héritage mais de l’injection
– Instanciation des classes au démarrage
Mieux vivre avec ses tests d’acceptance
Mise en œuvre
Les solutions
38
Mieux vivre avec ses tests d’acceptance
Mise en œuvre
Les solutions
39
• Mise en œuvre :
– FluentCucumberTest
– Nouvelles annotations
• @SharedDriver(type = SharedDriver.PER_FEATURE)
• @SharedDriver(type = SharedDriver.PER_SCENARIO)
– Scénario Outline
Mieux vivre avec ses tests d’acceptance
Mise en œuvre
Le résultat
40
Mieux vivre avec ses tests d’acceptance
Mise en œuvre
Le résultat
41
• Test Simple
Mieux vivre avec ses tests d’acceptance
Mise en œuvre
Le résultat
42
• Test Simple
Mieux vivre avec ses tests d’acceptance
Mise en œuvre
Le résultat
43
• Test Simple
Mieux vivre avec ses tests d’acceptance
Mise en œuvre
Le résultat
44
• Test multi navigateur
Mieux vivre avec ses tests d’acceptance
Mise en œuvre
Le résultat
45
• Test multi navigateur
Mieux vivre avec ses tests d’acceptance
Mise en œuvre
Le résultat
46
• Test multi navigateur
Mieux vivre avec ses tests d’acceptance
Conclusion
Cool !
47
Mieux vivre avec ses tests d’acceptance
Conclusion
• Code :
– https://github.com/jetoile/sample-cucumber
• FluentLenium
– http://fluentlenium.org/
– http://fr.slideshare.net/MathildeLemee/fluentlenium
• Cucumber JVM
– https://github.com/cucumber/cucumber-jvm
• Selenium
– http://docs.seleniumhq.org/
48
Mieux vivre avec ses tests d’acceptance
Questions ?
49
Mieux vivre avec ses tests d’acceptance
Merci !
50

Contenu connexe

En vedette

Exemple d'appareillage de la main atteinte de polyarthrite rhumatoïde
Exemple d'appareillage de la main atteinte de polyarthrite rhumatoïdeExemple d'appareillage de la main atteinte de polyarthrite rhumatoïde
Exemple d'appareillage de la main atteinte de polyarthrite rhumatoïde
wanttologin
 
Diagnostic maturité (11 septembre 2013)
Diagnostic maturité (11 septembre 2013)Diagnostic maturité (11 septembre 2013)
Diagnostic maturité (11 septembre 2013)
cdpgestion
 
Produire des contenus en ligne en bibliothèque
Produire des contenus en ligne en bibliothèqueProduire des contenus en ligne en bibliothèque
Produire des contenus en ligne en bibliothèque
Magalie Le Gall
 
Modelisation et maquettage 2015
Modelisation et maquettage 2015Modelisation et maquettage 2015
Modelisation et maquettage 2015
Atelier IHM Polytech Nice Sophia
 
Soft tissue tumor
Soft tissue tumorSoft tissue tumor
Soft tissue tumor
Narmada Tiwari
 
Paris
ParisParis
Barre pour développeur Firefox et Eclipse
Barre pour développeur Firefox et EclipseBarre pour développeur Firefox et Eclipse
Barre pour développeur Firefox et Eclipse
Yannick Pavard
 
SMMW // Cas Marketel - Alimentation Couche-Tard
SMMW // Cas Marketel - Alimentation Couche-TardSMMW // Cas Marketel - Alimentation Couche-Tard
SMMW // Cas Marketel - Alimentation Couche-Tard
Guillaume Lemay
 
Statistiques, indicateurs, performance et qualité : prendre la mesure de la b...
Statistiques, indicateurs, performance et qualité : prendre la mesure de la b...Statistiques, indicateurs, performance et qualité : prendre la mesure de la b...
Statistiques, indicateurs, performance et qualité : prendre la mesure de la b...
PYR
 
Les Barbares Attaquent l'immobilier
Les Barbares Attaquent l'immobilierLes Barbares Attaquent l'immobilier
Les Barbares Attaquent l'immobilier
TheFamily
 
Il était une fois la vie d'un Product Owner
Il était une fois la vie d'un Product OwnerIl était une fois la vie d'un Product Owner
Il était une fois la vie d'un Product Owner
Romain Couturier
 
Tour du monde
Tour du mondeTour du monde
Tour du monde
guimera
 
Gestion du temps stratégique
Gestion du temps stratégiqueGestion du temps stratégique
Gestion du temps stratégique
Travailleur autonome
 
Reperes tests implicites - septembre 2012
Reperes   tests implicites - septembre 2012 Reperes   tests implicites - septembre 2012
Reperes tests implicites - septembre 2012
François Abiven
 
Matinée marketplace HiPay, Mirakl
Matinée marketplace HiPay, MiraklMatinée marketplace HiPay, Mirakl
Matinée marketplace HiPay, Mirakl
HiPay Group
 
Les tendances du Marketing Digital 2014 - Ateliers webmarketing WSI - Saison 4
Les tendances du Marketing Digital 2014 - Ateliers webmarketing WSI - Saison 4Les tendances du Marketing Digital 2014 - Ateliers webmarketing WSI - Saison 4
Les tendances du Marketing Digital 2014 - Ateliers webmarketing WSI - Saison 4
WSI France
 
99.9% des Points de Vente ont une mauvaise Identité Virtuelle
99.9% des Points de Vente ont une mauvaise Identité Virtuelle99.9% des Points de Vente ont une mauvaise Identité Virtuelle
99.9% des Points de Vente ont une mauvaise Identité Virtuelle
Mobilosoft
 
Asean quiz championship_2012
Asean quiz championship_2012Asean quiz championship_2012
Asean quiz championship_2012
Movin Miranda
 
Data Modeling with Neo4j
Data Modeling with Neo4jData Modeling with Neo4j
Data Modeling with Neo4j
Neo4j
 
Atelier 27e Région / Démocratie en réseaux, 28/11/11
Atelier 27e Région / Démocratie en réseaux, 28/11/11Atelier 27e Région / Démocratie en réseaux, 28/11/11
Atelier 27e Région / Démocratie en réseaux, 28/11/11
Stéphane VINCENT
 

En vedette (20)

Exemple d'appareillage de la main atteinte de polyarthrite rhumatoïde
Exemple d'appareillage de la main atteinte de polyarthrite rhumatoïdeExemple d'appareillage de la main atteinte de polyarthrite rhumatoïde
Exemple d'appareillage de la main atteinte de polyarthrite rhumatoïde
 
Diagnostic maturité (11 septembre 2013)
Diagnostic maturité (11 septembre 2013)Diagnostic maturité (11 septembre 2013)
Diagnostic maturité (11 septembre 2013)
 
Produire des contenus en ligne en bibliothèque
Produire des contenus en ligne en bibliothèqueProduire des contenus en ligne en bibliothèque
Produire des contenus en ligne en bibliothèque
 
Modelisation et maquettage 2015
Modelisation et maquettage 2015Modelisation et maquettage 2015
Modelisation et maquettage 2015
 
Soft tissue tumor
Soft tissue tumorSoft tissue tumor
Soft tissue tumor
 
Paris
ParisParis
Paris
 
Barre pour développeur Firefox et Eclipse
Barre pour développeur Firefox et EclipseBarre pour développeur Firefox et Eclipse
Barre pour développeur Firefox et Eclipse
 
SMMW // Cas Marketel - Alimentation Couche-Tard
SMMW // Cas Marketel - Alimentation Couche-TardSMMW // Cas Marketel - Alimentation Couche-Tard
SMMW // Cas Marketel - Alimentation Couche-Tard
 
Statistiques, indicateurs, performance et qualité : prendre la mesure de la b...
Statistiques, indicateurs, performance et qualité : prendre la mesure de la b...Statistiques, indicateurs, performance et qualité : prendre la mesure de la b...
Statistiques, indicateurs, performance et qualité : prendre la mesure de la b...
 
Les Barbares Attaquent l'immobilier
Les Barbares Attaquent l'immobilierLes Barbares Attaquent l'immobilier
Les Barbares Attaquent l'immobilier
 
Il était une fois la vie d'un Product Owner
Il était une fois la vie d'un Product OwnerIl était une fois la vie d'un Product Owner
Il était une fois la vie d'un Product Owner
 
Tour du monde
Tour du mondeTour du monde
Tour du monde
 
Gestion du temps stratégique
Gestion du temps stratégiqueGestion du temps stratégique
Gestion du temps stratégique
 
Reperes tests implicites - septembre 2012
Reperes   tests implicites - septembre 2012 Reperes   tests implicites - septembre 2012
Reperes tests implicites - septembre 2012
 
Matinée marketplace HiPay, Mirakl
Matinée marketplace HiPay, MiraklMatinée marketplace HiPay, Mirakl
Matinée marketplace HiPay, Mirakl
 
Les tendances du Marketing Digital 2014 - Ateliers webmarketing WSI - Saison 4
Les tendances du Marketing Digital 2014 - Ateliers webmarketing WSI - Saison 4Les tendances du Marketing Digital 2014 - Ateliers webmarketing WSI - Saison 4
Les tendances du Marketing Digital 2014 - Ateliers webmarketing WSI - Saison 4
 
99.9% des Points de Vente ont une mauvaise Identité Virtuelle
99.9% des Points de Vente ont une mauvaise Identité Virtuelle99.9% des Points de Vente ont une mauvaise Identité Virtuelle
99.9% des Points de Vente ont une mauvaise Identité Virtuelle
 
Asean quiz championship_2012
Asean quiz championship_2012Asean quiz championship_2012
Asean quiz championship_2012
 
Data Modeling with Neo4j
Data Modeling with Neo4jData Modeling with Neo4j
Data Modeling with Neo4j
 
Atelier 27e Région / Démocratie en réseaux, 28/11/11
Atelier 27e Région / Démocratie en réseaux, 28/11/11Atelier 27e Région / Démocratie en réseaux, 28/11/11
Atelier 27e Région / Démocratie en réseaux, 28/11/11
 

Similaire à Comment mieux vivre avec ses tests d'acceptance

Azure DevOps Tests Plan
Azure DevOps Tests PlanAzure DevOps Tests Plan
Azure DevOps Tests Plan
Denis Voituron
 
Une architecture agile et testable
Une architecture agile et testableUne architecture agile et testable
Une architecture agile et testable
martinsson
 
Presentation Rex Methodes Agiles
Presentation Rex Methodes AgilesPresentation Rex Methodes Agiles
Presentation Rex Methodes Agiles
Ippon
 
7 Suivre Les Developpements Et Recetter
7 Suivre Les Developpements Et Recetter7 Suivre Les Developpements Et Recetter
7 Suivre Les Developpements Et Recetter
Stéphane Bordage
 
Alphorm.com Java 8: les nouveautés
Alphorm.com Java 8: les nouveautésAlphorm.com Java 8: les nouveautés
Alphorm.com Java 8: les nouveautés
Alphorm
 
20110519 cara tests_agiles_grenoble_all
20110519 cara tests_agiles_grenoble_all20110519 cara tests_agiles_grenoble_all
20110519 cara tests_agiles_grenoble_all
CARA_Lyon
 
Allons plus loin avec Selenium
Allons plus loin avec SeleniumAllons plus loin avec Selenium
Allons plus loin avec Selenium
SOAT
 
Allons plus loin avec Selenium
Allons plus loin avec SeleniumAllons plus loin avec Selenium
Allons plus loin avec Selenium
SoatAgile
 
Valider par des tests - Blend
Valider par des tests - BlendValider par des tests - Blend
Valider par des tests - Blend
Christophe Villeneuve
 
20070925 04 - Panorama des outils Open Source / Qualité des développements
20070925 04 - Panorama des outils Open Source / Qualité des développements20070925 04 - Panorama des outils Open Source / Qualité des développements
20070925 04 - Panorama des outils Open Source / Qualité des développements
LeClubQualiteLogicielle
 
20091008 Tests Interaces Web Riches Selenium
20091008   Tests Interaces Web Riches Selenium20091008   Tests Interaces Web Riches Selenium
20091008 Tests Interaces Web Riches Selenium
GreenIvory
 
Les Promises en Javascript
Les Promises en JavascriptLes Promises en Javascript
Les Promises en Javascript
Benoit Zohar
 

Similaire à Comment mieux vivre avec ses tests d'acceptance (12)

Azure DevOps Tests Plan
Azure DevOps Tests PlanAzure DevOps Tests Plan
Azure DevOps Tests Plan
 
Une architecture agile et testable
Une architecture agile et testableUne architecture agile et testable
Une architecture agile et testable
 
Presentation Rex Methodes Agiles
Presentation Rex Methodes AgilesPresentation Rex Methodes Agiles
Presentation Rex Methodes Agiles
 
7 Suivre Les Developpements Et Recetter
7 Suivre Les Developpements Et Recetter7 Suivre Les Developpements Et Recetter
7 Suivre Les Developpements Et Recetter
 
Alphorm.com Java 8: les nouveautés
Alphorm.com Java 8: les nouveautésAlphorm.com Java 8: les nouveautés
Alphorm.com Java 8: les nouveautés
 
20110519 cara tests_agiles_grenoble_all
20110519 cara tests_agiles_grenoble_all20110519 cara tests_agiles_grenoble_all
20110519 cara tests_agiles_grenoble_all
 
Allons plus loin avec Selenium
Allons plus loin avec SeleniumAllons plus loin avec Selenium
Allons plus loin avec Selenium
 
Allons plus loin avec Selenium
Allons plus loin avec SeleniumAllons plus loin avec Selenium
Allons plus loin avec Selenium
 
Valider par des tests - Blend
Valider par des tests - BlendValider par des tests - Blend
Valider par des tests - Blend
 
20070925 04 - Panorama des outils Open Source / Qualité des développements
20070925 04 - Panorama des outils Open Source / Qualité des développements20070925 04 - Panorama des outils Open Source / Qualité des développements
20070925 04 - Panorama des outils Open Source / Qualité des développements
 
20091008 Tests Interaces Web Riches Selenium
20091008   Tests Interaces Web Riches Selenium20091008   Tests Interaces Web Riches Selenium
20091008 Tests Interaces Web Riches Selenium
 
Les Promises en Javascript
Les Promises en JavascriptLes Promises en Javascript
Les Promises en Javascript
 

Dernier

Transformation Digitale - Initiez-vous à l'informatique et à l'utilisation de...
Transformation Digitale - Initiez-vous à l'informatique et à l'utilisation de...Transformation Digitale - Initiez-vous à l'informatique et à l'utilisation de...
Transformation Digitale - Initiez-vous à l'informatique et à l'utilisation de...
Maalik Jallo
 
Cours d'Intelligence Artificielle et Apprentissage Automatique.pptx
Cours d'Intelligence Artificielle et Apprentissage Automatique.pptxCours d'Intelligence Artificielle et Apprentissage Automatique.pptx
Cours d'Intelligence Artificielle et Apprentissage Automatique.pptx
Jacques KIZA DIMANDJA
 
Lae-ac1-5_english-fraançais_qins italy.pdf
Lae-ac1-5_english-fraançais_qins italy.pdfLae-ac1-5_english-fraançais_qins italy.pdf
Lae-ac1-5_english-fraançais_qins italy.pdf
djelloulbra
 
Meetup LFUG : Cahier de vacances Liferay
Meetup LFUG : Cahier de vacances LiferayMeetup LFUG : Cahier de vacances Liferay
Meetup LFUG : Cahier de vacances Liferay
Sébastien Le Marchand
 
procede de fabrication mecanique et industriel
procede de fabrication mecanique et industrielprocede de fabrication mecanique et industriel
procede de fabrication mecanique et industriel
saadbellaari
 
Introduction à Crossplane (Talk Devoxx 2023)
Introduction à Crossplane (Talk Devoxx 2023)Introduction à Crossplane (Talk Devoxx 2023)
Introduction à Crossplane (Talk Devoxx 2023)
Adrien Blind
 
Technologie hydrostatique, innovation pour la stérilisation des aliments : HI...
Technologie hydrostatique, innovation pour la stérilisation des aliments : HI...Technologie hydrostatique, innovation pour la stérilisation des aliments : HI...
Technologie hydrostatique, innovation pour la stérilisation des aliments : HI...
InnovaSter-Trade Ltd.
 

Dernier (7)

Transformation Digitale - Initiez-vous à l'informatique et à l'utilisation de...
Transformation Digitale - Initiez-vous à l'informatique et à l'utilisation de...Transformation Digitale - Initiez-vous à l'informatique et à l'utilisation de...
Transformation Digitale - Initiez-vous à l'informatique et à l'utilisation de...
 
Cours d'Intelligence Artificielle et Apprentissage Automatique.pptx
Cours d'Intelligence Artificielle et Apprentissage Automatique.pptxCours d'Intelligence Artificielle et Apprentissage Automatique.pptx
Cours d'Intelligence Artificielle et Apprentissage Automatique.pptx
 
Lae-ac1-5_english-fraançais_qins italy.pdf
Lae-ac1-5_english-fraançais_qins italy.pdfLae-ac1-5_english-fraançais_qins italy.pdf
Lae-ac1-5_english-fraançais_qins italy.pdf
 
Meetup LFUG : Cahier de vacances Liferay
Meetup LFUG : Cahier de vacances LiferayMeetup LFUG : Cahier de vacances Liferay
Meetup LFUG : Cahier de vacances Liferay
 
procede de fabrication mecanique et industriel
procede de fabrication mecanique et industrielprocede de fabrication mecanique et industriel
procede de fabrication mecanique et industriel
 
Introduction à Crossplane (Talk Devoxx 2023)
Introduction à Crossplane (Talk Devoxx 2023)Introduction à Crossplane (Talk Devoxx 2023)
Introduction à Crossplane (Talk Devoxx 2023)
 
Technologie hydrostatique, innovation pour la stérilisation des aliments : HI...
Technologie hydrostatique, innovation pour la stérilisation des aliments : HI...Technologie hydrostatique, innovation pour la stérilisation des aliments : HI...
Technologie hydrostatique, innovation pour la stérilisation des aliments : HI...
 

Comment mieux vivre avec ses tests d'acceptance

  • 1. Mieux vivre avec ses tests d'acceptance par Khanh Tuong Maudoux @jetoile 1
  • 2. Mieux vivre avec ses tests d’acceptance Au programme… • Les protagonistes – Cucumber JVM – Selenium 2 – FluentLenium • Mise en œuvre – Les problèmes – Les solutions – Le résultat 2
  • 3. Mieux vivre avec ses tests d’acceptance Qui je suis… • Khanh Tuong Maudoux • Développeur Java indépendant • blog : http://blog.jetoile.fr • @jetoile • khanh.maudoux@jetoile.fr 3
  • 4. Mieux vivre avec ses tests d’acceptance Les protagonistes 4
  • 5. Mieux vivre avec ses tests d’acceptance Les protagonistes Cucumber JVM 5
  • 6. Mieux vivre avec ses tests d’acceptance Les protagonistes Cucumber JVM 6 • BDD (Behavior Driven Development)
  • 7. Mieux vivre avec ses tests d’acceptance Les protagonistes Cucumber JVM 7 • Notions : – Feature – Scénario – Step
  • 8. Mieux vivre avec ses tests d’acceptance Les protagonistes Cucumber JVM 8 • Step et Fixture • 5 types : – Given – When – Then – And – But
  • 9. Mieux vivre avec ses tests d’acceptance Les protagonistes Cucumber JVM 9 • Step « simple »
  • 10. Mieux vivre avec ses tests d’acceptance Les protagonistes Cucumber JVM 10 • Step « paramétrée »
  • 11. Mieux vivre avec ses tests d’acceptance Les protagonistes Cucumber JVM 11 • Table
  • 12. Mieux vivre avec ses tests d’acceptance Les protagonistes Cucumber JVM 12 • Scenario Outline
  • 13. Mieux vivre avec ses tests d’acceptance Les protagonistes Cucumber JVM 13 • Utilisation – Runner JUnit
  • 14. Mieux vivre avec ses tests d’acceptance Les protagonistes Cucumber JVM 14 • Utilisation – Maven
  • 15. Mieux vivre avec ses tests d’acceptance Les protagonistes Cucumber JVM 15 • Utilisation – IDE
  • 16. Mieux vivre avec ses tests d’acceptance Les protagonistes Cucumber JVM 16 • Mais… – Pas d’héritage entre classes de Step ⇒utilisation de l’injection – Instanciation de toutes les classes de Step – Step Hell – Peu de choses ⇒Obligé de réécrire les fixtures – Pas de partage entre Step ⇒Variable statique ou injection
  • 17. Mieux vivre avec ses tests d’acceptance Les protagonistes Selenium 17
  • 18. Mieux vivre avec ses tests d’acceptance Les protagonistes Selenium 18 • Selenium IDE • WebDriver • Selenium Server
  • 19. Mieux vivre avec ses tests d’acceptance Les protagonistes Selenium 19 • Exemple :
  • 20. Mieux vivre avec ses tests d’acceptance Les protagonistes Selenium 20 • Page Object Pattern (1/2) :
  • 21. Mieux vivre avec ses tests d’acceptance Les protagonistes Selenium 21 • Page Object Pattern (2/2) :
  • 22. Mieux vivre avec ses tests d’acceptance Les protagonistes Selenium 22 • Mais… – Selenium IDE : à oublier! – Verbeux ⇒Page Object Pattern – Difficilement maintenable ⇒Obligé de fournir une surcouche
  • 23. Mieux vivre avec ses tests d’acceptance Les protagonistes Selenium 23 • Mais… – WebDriver Hell ⇒Compatibilité ⇒Options ⇒Bridge (ChromeDriver, …) – [Selenium Server] Les agents – Attention à la version (ex : upgrade Firefox)
  • 24. Mieux vivre avec ses tests d’acceptance Les protagonistes FluentLenium 24
  • 25. Mieux vivre avec ses tests d’acceptance Les protagonistes FluentLenium 25 • Surcouche de Selenium – Fluent API – Page Object Pattern
  • 26. Mieux vivre avec ses tests d’acceptance Les protagonistes FluentLenium 26 • Page (FluentPage)
  • 27. Mieux vivre avec ses tests d’acceptance Les protagonistes FluentLenium 27 • Test (FluentTest)
  • 28. Mieux vivre avec ses tests d’acceptance Les protagonistes FluentLenium 28 • Test (FluentTest)
  • 29. Mieux vivre avec ses tests d’acceptance Les protagonistes FluentLenium 29 • Fluent API (1/2) :
  • 30. Mieux vivre avec ses tests d’acceptance Les protagonistes FluentLenium 30 • Fluent API (2/2) :
  • 31. Mieux vivre avec ses tests d’acceptance Les protagonistes FluentLenium 31 • Extensible – FluentAdapter • initFluent() • initTest() • Nouvelles annotations – @SharedDriver(type=SharedDriver.PER_CLASS) – @SharedDriver(type=SharedDriver.ONCE) – @SharedDriver(type=SharedDriver.PER_METHOD)
  • 32. Mieux vivre avec ses tests d’acceptance Les protagonistes FluentLenium 32 • Mais… – JUnit/TestNG – Pas multi navigateur – Pas envisageable pour un « recetteur »
  • 33. Mieux vivre avec ses tests d’acceptance Mise en œuvre 33
  • 34. Mieux vivre avec ses tests d’acceptance Mise en œuvre Les problèmes 34
  • 35. Mieux vivre avec ses tests d’acceptance Mise en œuvre Les problèmes 35 • Selenium – RAS modulo les WebDriver…
  • 36. Mieux vivre avec ses tests d’acceptance Mise en œuvre Les problèmes 36 • FluentLenium – 1 méthode = 1 test
  • 37. Mieux vivre avec ses tests d’acceptance Mise en œuvre Les problèmes 37 • Cucumber JVM – 1 méthode par step – Les steps d’un scénario peuvent être dans différentes classes – Pas d’héritage mais de l’injection – Instanciation des classes au démarrage
  • 38. Mieux vivre avec ses tests d’acceptance Mise en œuvre Les solutions 38
  • 39. Mieux vivre avec ses tests d’acceptance Mise en œuvre Les solutions 39 • Mise en œuvre : – FluentCucumberTest – Nouvelles annotations • @SharedDriver(type = SharedDriver.PER_FEATURE) • @SharedDriver(type = SharedDriver.PER_SCENARIO) – Scénario Outline
  • 40. Mieux vivre avec ses tests d’acceptance Mise en œuvre Le résultat 40
  • 41. Mieux vivre avec ses tests d’acceptance Mise en œuvre Le résultat 41 • Test Simple
  • 42. Mieux vivre avec ses tests d’acceptance Mise en œuvre Le résultat 42 • Test Simple
  • 43. Mieux vivre avec ses tests d’acceptance Mise en œuvre Le résultat 43 • Test Simple
  • 44. Mieux vivre avec ses tests d’acceptance Mise en œuvre Le résultat 44 • Test multi navigateur
  • 45. Mieux vivre avec ses tests d’acceptance Mise en œuvre Le résultat 45 • Test multi navigateur
  • 46. Mieux vivre avec ses tests d’acceptance Mise en œuvre Le résultat 46 • Test multi navigateur
  • 47. Mieux vivre avec ses tests d’acceptance Conclusion Cool ! 47
  • 48. Mieux vivre avec ses tests d’acceptance Conclusion • Code : – https://github.com/jetoile/sample-cucumber • FluentLenium – http://fluentlenium.org/ – http://fr.slideshare.net/MathildeLemee/fluentlenium • Cucumber JVM – https://github.com/cucumber/cucumber-jvm • Selenium – http://docs.seleniumhq.org/ 48
  • 49. Mieux vivre avec ses tests d’acceptance Questions ? 49
  • 50. Mieux vivre avec ses tests d’acceptance Merci ! 50