Retour d’Expérience (REX): KATALON – Solann Puygrenier

Introduction (Qu’est ce que Katalon ?)

Katalon un outil principalement destiné à l’automatisation des tests IHM (E2E : End to End) pour des app web, mobile ou desktop.

Pour cela, il met à disposition tout un IDE permettant d’implémenter des cas de tests et de les organiser.

Groovy (une sorte de java plus souple sur bien des aspects) est le langage utilisé et les intéractions sur le navigateur se base sur les mécaniques de sélénium. 

✔️ Les fonctionnalités dans les grandes lignes

✅ Organisation des tests

Katalon aide à catégoriser les tests. Ils sont organisés comme ceci : on réalise des cas de tests pouvant être regroupés en une suite de tests.
Il est alors possible de choisir quels sont les tests à lancer et obtenir les résultats sous forme de rapport. Ces rapports sont gardés en mémoire et permettent de garder un suivi des réussites/échecs. 

Il est aussi possible de réaliser des tests avec des données dynamiques, lancer des suites de test en parallèle , de définir des profils qui contiendront les variables globales pour nos différents utilisateur/serveur/version/ect…


Ci-dessous un comparatif des points forts / point faible 

Point Fort 😀Point Faible 😒
La gestion de l’arborescence est possible très facilement par Katalon (le déplacement d’un dossier/fichier met à jour la référence dans tout le fichier)Une IDE terriblement lente avec des possibles freezes et des arrêts du logiciel fréquents 
Une IDE tiré d’Eclipse avec les puissantes fonctionnalités de celle ci
On a accès la possibilité de faire des rapport de tests très facilement
On peut variabiliser les données via différentes méthode dont l’injection de fichier plat

✅ Implémentation des tests

Pour l’implémentation d’un cas de tests, il existe deux vues possibles.

On peut utiliser une interface graphique : on aura ainsi la possibilité de construire le test via un ensemble d’action unitaire proposé par Katalon et disponible grâce à différent menu. Par exemple les différents clics (gauche, droit, double ,…) ou l’appel de web service (SOAP, REST,…).

Sinon il est possible d’utiliser la vue axée programmation qui réalise exactement les mêmes actions mais via des fonctions en Groovy.

A noter que l’on peut passer d’une vue à l’autre en un clic.

Les actions se réalisent sur des objets de tests stocké dans le projet. Ces objets de tests sont principalement des éléments de l’application(pour le web, des éléments désignés via leur Xpath) ou même des web services.

Pour gagner du temps, il est possible d’utiliser un enregistreur de test web, mobile ou desktop. A la manière de l’enregistreur de macro sur Excel, on enregistre le test sur l’interface web et Katalon s’occupe d’enregistrer les différents actions et objet (objet = xpath généré et sauvegardé par Katalon).


Et pour factoriser le code et le simplifier, il est possible de définir ses propres actions unitaires (les keywords).

Pour viabiliser les tests, il est possible d’ajouter des variables.

Ci-dessous un comparatif des points forts / point faible 

Point Fort 😀Point Faible 😒
Même si on ne l’utilise pas souvent, la réalisation des tests en mode graphique permet de vite comprendre le fonctionnement de Katalon et de construire des jeux de test assez rapidement.Dans notre cas, nous n’avons pas vraiment pu compter sur l’enregistreur de test ! Toutes les actions ne sont pas forcément enregistrées et on passe énormément de temps à essayer de comprendre et de débugger le code généré : au final on finit par créer ses propres actions et objets pour gagner du temps et de la lisibilité.
Une librairie de base proposée par Katalon pour simuler les actions les plus courantes dans les tests E2EIl n’est pas possible de réaliser toutes les manipulations. mais on peut utiliser du Sélénium dans les cas les plus désespérés (comme faire des clics suivi de Ctrl + clic sur plusieurs éléments d’un tableau).
L’utilisation des API est simple à réaliser et les menus de configurations sont complets et proposent de nombreuses options (vérification d’un code status 200, du test du json, …)Des logs incompréhensible et/ou très verbeux lorsque le test a échoué de manière imprévu (et non dans une assertion)
La variabilisation des test est extrêmement rapide une fois le coup de main prisDe mauvaises surprises vous attendent au début à cause de fonctionnements inattendus ! Par exemple pour les APIs, SendRequest ne lance pas le code que l’on a rédigé pour tester le contenu, il faut utiliser SendRequestAndVerify ! 
Pas du tout accessible à n’importe quel profil; savoir coder un minimum est obligatoire ! 

Toutes les fonctionnalités évoquées précédemment sont gratuites !
Mais il faudra mettre la main au porte monnaie pour débloquer plus de fonctionnalités 

  • le mode débogage (qui n’est pas essentiel)
  • le mode console (Katalon runtime engine)
  • les outils de reporting plus poussés proposé par Katalon (Katalon test op)
  • et de nombreuse autres possibilités

✔️ Intégrations avec d’autre outils

Le logiciel est capable d’intégrer des plugins pour augmenter sa productivité dans l’IDE (git,postman, …)

Aussi il est possible avec une licence Katalon runtime engine d’intégrer les tests dans une démarche CI/CD.
Pour nos besoins, nous démarrons le test de manière quotidienne via Jenkins avec un reporting Cucumber.

Ci-dessous un comparatif des points forts / point faible 

Point Fort 😀Point Faible 😒
CI/CD possibleIl faudra certainement trouver des techniques pour contourner les obstacles..
Des plugins pour l’IDE

✔️ Une communauté ?

On peut s’aider de la documentation complète avec de nombreux exemples et liens utiles.
Et en cas de blocage plus important, il existe un forum dédié aux utilisateurs avec des membres généralement réactifs et des solutions aux nombreuses problématiques qui ont déjà été rencontrées par d’autres !

Ci-dessous un comparatif des points forts / point faible 

Point Fort 😀Point Faible 😒
La documentation suffisante pour être autonomeIl faudra certainement trouver des techniques pour contourner les obstacles..
Un forum pour les cas les plus complexes

❓ Démo

Voici une démonstration en moins de 5 minutes pour mieux saisir le fonctionnement général du logiciel.
Dans ce cas pratique, nous allons implémenter deux tests de non régression et les inclure dans une suite de tests (pour le rapport).
Les étapes sont les suivantes :

  1. Enregistrement du cas de test 1: Vérifier que le lien vers un site de goodies fonctionne.
  2. Ajout d’une assertion sur le cas de test 1 (un assert sur l’url final)
  3. Enregistrement du cas de test 2: Vérifier que le lien vers le site d’achat du livre fonctionne.
  4. Ajout d’une assertion sur le cas de test 2
  5. Création de la suite de test avec les cas de test 1 et 2

Puis

  1. Lancement de la suite de test
  2. Résultat en erreur car un clic en plus est fait sur une image 
  3. Rectification du cas de test 1
  4. Lancement de la suite de test
  5. Résultat en vert 

🎉Conclusion

Katalon permet de réaliser rapidement vos premiers tests IHM et de les variabiliser au besoin. Il sera cependant nécessaire de consacrer un temps relativement long sur l’outil pour en maîtriser les rouages et obtenir un réel retour sur investissement en termes de qualité de test et rapidité d’implémentation.

Aussi, une petite expérience de dev est nécessaire sans quoi l’outil peut être un enfer à manier.

Même s’ il nous reste encore de nombreuses possibilités à explorer, nous avons pensé bon de vous faire un retour franc sur notre première année d’utilisation et les forces et faiblesses auxquelles nous avons été confrontés.


Un grand merci à Sébastien Tanière, véritable vétéran du test, pour sa bienveillance, pédagogie, partage d’expérience et sans qui l’article n’aurait pas été aussi complet.

Sans oublié mes remerciements à M.Hage Chahine pour me laisser publier cet article dans la communauté https://latavernedutesteur.fr/


Si vous avez la moindre question, n’hésitez pas à la poser dans les commentaires : je ferais tout mon possible pour y répondre et tout le monde en profitera 😉

Bonne journée ! 

A propos de l’auteur: Solann Puygrenier

Ayant eu la chance et l’opportunité d’avoir un parcours professionnel riche en expériences, je souhaiterais aujourd’hui être capable d’exceller dans un domaine qui m’anime et me passionne : l’informatique.
Suivant actuellement une formation d’ingénieur en alternance au CNAM dans la société FM Logistic, je continue d’apprendre dans cet incroyable environnement de bienveillance, confiance et performance. 

Publié par

6 commentaires sur « Retour d’Expérience (REX): KATALON – Solann Puygrenier »

  1. Bonjour,
    Merci pour ce retour d’expérience. L’entreprise pour laquelle je travaille actuellement utilise Katalon et j’ai pu travailler sur du test avec du dev très basique C#/Selenium/Appium et également sur TestProject. Après n’avoir travaillé que sur C#/Selenium, je peux comprendre l’engouement lié à Katalon. Mais de nombreuses choses me bloquent sur cet outil après avoir connu TestProject.
    Les gros points négatifs que je trouve à Katalon : Katalon Studio est payant. Mais surtout, la plateforme de reporting des résultats est assez catastrophique. Si on arrive à peine sur un projet, la lisibilité de ce qu’a cherché à dérouler une suite de tests Katalon est complexe à analyser, sauf si on est technique et qu’on apprend à lire le code. Et au final, quand je vois ces reporting, je me dis que la rédaction avec le couple C#/Selenium dans un Jenkins ou TeamCity fait tout aussi bien le travail. Et je comprends plus l’intérêt de Katalon.
    A l’inverse, après quelques années à coder sur C# et Selenium, je me disais de plus en plus que mon métier n’était pas de coder, mais de définir des comportements attendus sur une application, de les vérifier et de pouvoir exploiter les résultats de ces tests facilement. D’être productif et de ne pas avoir un barrière technique pour me gêner. Et là, j’ai trouvé une force complètement dingue dans TestProject. Comme pour Katalon, on a un mode record pour générer ses scripts, mais ici, tout semble parfaitement intégré. L’outil permet de faire le principal simplement, mais permet également de paramétrer des comportements plus complexes comme je pouvais le faire avec mon C#/Selenium. Bref, j’y ai trouvé mon bonheur. Je peux scheduler mes déclenchements, jouer avec des webhooks pour notifier les résultats sur des canaux de communications très utilisés dans ma boîte…
    Est-ce que j’ai raté quelque chose sur Katalon ? Je me pose la question après les éloges que vous en faite dans cet article. Je vais encore essayer de vadrouiller sur l’outil pour voir si ce n’est pas ma perception qui serait mauvaise.

    Aimé par 1 personne

  2. Bonjour, en ayant proposé plusieurs outils de tests automatisés et utilisé dans plusieurs entreprises où j’ai pu travailler, KATALON a toujours su séduire avec l’enregistrement web et l’exportation en code (MSTEST, JAVA, C# etc). Nos MOA ont su faire leur enregistrement de scénario au bout de 2H ce qui nous machaît 70% du boulot avant la transformation en code.

    Aimé par 1 personne

  3. Bonjour,
    J’ai parcouru avec beaucoup d’attention votre expérience de KATALON; Merci pour ce partage.
    En essai dans une microfinance; il nous est demandé de faire des propositions d’outils de test automatisé pour une application acquise aux fins d’améliorer le processus de digitalisation qui passe par l’automatisation et la centralisation des traitements.
    N’ayant aucune connaissance des tests automatisés je me suis ainsi lancé à la recherche d’une solution gratuite de préférence avec interface graphique; multiplateforme, multi navigateur etc…
    Puis je m’engager avec KATALON?
    Quels sont les difficultés pour un débutant?
    Avez vous autre chose à me proposer?

    J’aime

    1. Bonjour,
      désolé pas d’autres expérience sur KATALON à partager et impossible de confirmer si c’est un bon choix de se lancer dessus.
      Par interface graphique et multiplate-forme vous parlez web et mobile uniquement ou aussi application lourde ? Si web et mobile uniquement pourquoi ne pas également expérimenter testproject: https://latavernedutesteur.fr/2021/06/04/outil-de-test-lautomatisation-web-et-mobile-pour-tous-avec-testproject/
      Dans le cas où il faut aussi faire des applications lourdes il y a robotframework: https://latavernedutesteur.fr/2020/02/12/pourquoi-robot-framework-alexis-pallier/
      Bien évidemment il y a de nombreuses autres possibilité c’est pourquoi je vous invite à bien identifier les besoins pour faire une étude du marché et faire un POC avec au moins 2 outils.

      J’aime

      1. Bonjour Marc, si jamais il y a des questions sur Katalon et les différentes versions gratuites ou payantes, je peux sûrement apporter des réponses. En effet nous sommes le partenaire principal de Katalon en France, avec d’autres outils aussi comme Tosca, Agilitest, Applitools, Perfecto…

        Aimé par 1 personne

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s