Outil de test: automatisation IHM avec Protractor

Cet article fait partie d’une série dans la taverne qui tend à présenter succinctement différents outils de test.

Protractor en Bref

Protractor est une surouche de Selenium qui utilise Javascript et qui est spécialisé dans les tests IHM (Interface graphique) End to End.

Il est couramment utilisé pour faire des tests sur des développements faits en AngularJS ou ReactJS.

Protractor est un outil plus technique qu’un outil KDT comme peut l’être RobotFramework mais il reste tout à fait accessible à des testeurs, notamment si ces derniers sont dans des équipes Agile et peuvent monter en compétence grâce aux développeurs.

Une particularité de Protractor qui est souvent la raison pour laquelle il est choisi, est sa faculté à proposer des tests de reconnaissance d’image à l’aide du plugin « checkAppByImage ». Ce plugin est très complet et permet de:

  • Comparer une image en entier
  • Accepter plus ou moins de différence entre les images (% de pixels différents, la différence de chaque pixel se faisant par rapport à leur couleur)
  • Ne pas comparer certaines zones des images (exemple: ne pas comparer des zones de publicité)

Protractor peut également être associé à un outil comme Cucumber dans une démarche BDD.

Enfin, Protractor fonctionne sur de nombreux navigateurs, même si, différentes images peuvent être nécessaires selon le navigateur.

Points forts et points faibles de Protractor

Les points forts remontés de Protractor sont:

  • Sa gestion de comparaison d’image
  • Sa relative accessibilité
  • Sa capacité à gérer plusieurs navigateurs

Les points faibles remontés de Protractor sont:

  • La possible multiplication des images (espace de stockage + classement)
  • Des performances plus faible que Cypress
  • Un débogage (si pas d’image) qui peut être complexe
  • Beaucoup de « Promesses » laissant sous-entendre un processus asynchrone alors que ce n’est pas le cas. (les promesses sont un élément du JavaScript permettant de l’asynchrone, ça « promet » que l’information arrivera mais ne dis pas quand)
  • Automatisation Web uniquement

Conclusion

Protractor est un outil mature qui fonctionne sur de nombreux navigateurs et propose de nombreuses fonctionnalités et qui est reconnu pour sa comparaison d’images.

Il faut néanmoins faire attention à la gestion, le classement et la réutilisation des images lorsque ses tests reposent essentiellement sur ces dernières.

Vous avez utilisé cet outil ? N’hésitez pas à faire part de votre expérience dans les commentaires!

Merci à Benjamin Butel pour sa relecture.

N’hésitez pas à me suivre et lire mes autres articles si vous voulez en apprendre plus sur le test ou venir partager vos connaissances

Pensez à rejoindre le groupe « Le métier du test » si vous souhaitez échanger sur le test

Merci à tous ceux qui mettent « j’aime », partagent ou commentent mes articles

N’hésitez pas à faire vos propres retours d’expérience en commentaire.

4 réponses

  1. Les plus et moins selon moi :

    Les plus :
    – Un outil puissant et adapté à Angular
    – Idéal pour faire du E2E
    – De nombreux pluggins (reporting, capture d’écran, etc.)
    – Fonctionne sur les sites en mode synchrone et asynchrone
    – Multi navigateurs / instances
    – Supporte Chrome Headless
    – Etc…

    Les moins :
    – Une montée en compétence « rugueuse »
    – Des mises à jour de la partie Webdriver qui peuvent parfois entraîner leur lot de dysfonctionnements (fort heureusement assez vite corrigés)
    – Une limitation au Web (Ex : on oublie la fonction « Enregistrer sous » d’un document)
    – Débogage pas toujours aisé même si le pas à pas reste possible

    Bref, un outil puissant mais qui nécessite un investissement initial conséquent.

  2. Salut,
    Merci pour l’article, je n’ai pas compris :fonctionne en mode synchrone et as synchrone ?
    Est ce que Protractor est open Source comme selenuim ?
    La prise en main nécessite des compétences particulières en développement ?
    Merci d’avance

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Avenir

Le testeur 2017

Le testeur 2017 ne sera plus celui de 2016. Le testeur 2017 sera un testeur 2016 amélioré, prêt à répondre aux nouveaux défis qui se présentent en plus de ceux qu’il connaissait déjà avec 2016. Le testeur 2017 devra donc : ·        Travailler encore plus sur l’automatisation des tests : l’automatisation est de

Lire la suite »
Automatisation

L’intégration et le déploiement continu : Le royaume de l’automatisation.

Tout d’abord, il me semble important de définir ce que sont les concepts d’intégration et de déploiement continu. L’intégration continue est l’ensemble des processus automatisés permettant : ·        Le merge des branches ·        La construction d’artefacts (qui pourront être déployés) ·        L’ensemble des tests possibles sans l’exécution du programme (Tests unitaires, tests de sécurité

Lire la suite »
Bilan

Les livrables du test

Le test, par définition n’est pas un métier de « création » comme peut l’être le métier de développeur. Néanmoins lorsque l’on exerce ce métier on crée de la valeur. La valeur créée par un testeur est simplement différente (un testeur seul ne développera pas une application mobile). La valeur ajoutée du

Lire la suite »