Un avis ? Un commentaire ?
Cet espace est pour vous.
Note du 6 janvier 2020 : Veuillez noter que cet article a été publié en mai 2017 et qu’il se base donc sur une version ancienne de Katalon. Cet outil a connu un essor impressionnant et propose des fonctionnalités qui n’existaient pas auparavant. Avant de prendre une décision quant à la mise en place de cet outil dans votre organisation, il sera pertinent de se pencher aussi sur des témoignages plus récents. Bonne lecture !
Katalon Studio est un framework basé sur Selenium et Appium, qui permet d’automatiser les tests web et mobiles. Dans cet article, nous découvrirons ensemble comment créer un cas de test mobile sur un téléphone Android.
Nous apporterons des réponses aux questions que nous-mêmes nous nous sommes posées avant de commencer avec Katalon. Notre SUT (system under test) sera l’application Observatoire des prix, qui permet de comparer produit par produit les tarifs pratiqués par les grandes surfaces en Nouvelle Calédonie. Développée par One Shot, cette application est une commande du Gouvernement de la Nouvelle Calédonie dans le cadre de la lutte contre la vie chère.
Même si cela paraît étonnant, à ce jour, Katalon peut être installé sur Windows, Mac… mais pas sur Linux (source).
EDIT du 3 avril 2019 : Linux est maintenant pris en charge (en bêta), merci à un de nos lecteurs de nous l’avoir signalé par commentaire !
Développé d’abord en interne par KMS Technology, le projet a ensuite été partagé avec la communauté. L’outil est donc (et a priori restera) disponible gratuitement.
Katalon nécessite quelques pré-requis, mais le démarrage se fait facilement. C’est une des exigences du produit, qui se veut accessible à tous.
Voici votre checklist de démarrage :
Les quelques modes opératoires qui existent sont clairs, mais ils sont peu nombreux. Le forum Katalon comble en partie ce manque. Extrêmement réactif, il nous a à chaque fois permis d’obtenir des réponses à nos questions en quelques heures seulement !
En-dehors du site officiel, il existe peu de ressources sur cet outil. A ce jour, aucune question n’a été posée sur Katalon sur le célèbre forum StackOverflow. EDIT du 27/03/2019 : ce n’est plus le cas ! Voici différentes étapes du développement du sujet sur ce site de questions-réponses.
(Au passage, on admire le nouveau mode nuit de StackOverflow… synonyme de confort supplémentaire et, selon le matériel utilisé, de meilleures performances environnementales !)
Quel sentiment magique ressent le testeur lorsque, pour la première fois depuis le début du projet, il lance son arsenal de tests automatisés…
Hélas, cette touchante émotion peut vite laisser place au désappointement si la maintenabilité n’a pas été au coeur de la conception de l’architecture des tests.
Heureusement, Katalon répond à cette problématique essentiellement grâce à 2 fonctionnalités :
Comme avec UFT, que nous présentions précédemment, l’object repository permet de gérer en un même lieu tous les identificateurs d’éléments de l’interface. Un atout indispensable en cas de refonte de l’ergonomie. Au lieu de modifier chacun des tests utilisant un même objet, on ne modifie que la définition de l’objet ayant subi une modification.
Pour alimenter l’object repository, il faut utiliser l’un des deux outils de capture : « Spy Web » et « Spy Mobile ». L’utilisateur sélectionne alors, en s’aidant d’une preview, les objets qui l’intéressent. Pour ceux à qui cela fait peur, pas besoin de mettre le nez dans le code.
Le testeur peut ensuite cocher ou décocher les cases qu’il trouve les plus pertinentes.
Les custom keywords sont en fait des méthodes (au sens programmatique du terme) que l’on peut appeler au sein des cas de test. Prenons par exemple l’enchaînement d’actions permettant l’authentification d’un utilisateur : au lieu de copier-coller, au sein de chaque cas de test, qu’il faut :
Il suffit de créer un custom keyword qui prenne en paramètre l’identifiant et le mot de passe.
Cela améliore à la fois la lisibilité du test, car il y a moins d’étapes, mais aussi sa maintenabilité. Par exemple, si un jour une case « Se souvenir de moi » est ajoutée à cette page de connexion, il suffira d’ajouter une étape au custom keyword, et un paramètre pour choisir si l’on souhaite cocher la case ou non.
Notre conseil : bien réfléchir à l’organisation de ces custom keywords avant de se lancer à corps perdu dans l’automatisation des scripts de test. Sans cette étape, la scalabilité de votre projet risque d’en prendre un coup.
Oui, on peut faire de l’intégration continue avec Katalon et Jenkins. Mais souvenez-vous… pas sur une machine Linux.
Dans l’interface de Katalon, cliquez sur le bouton « Build CMD », configurez votre exécution, puis copiez la commande générée.
Sur une instance Jenkins installée une machine Windows, créez un job free-style et ajoutez une étape de build « Exécuter une ligne de commande batch Windows ».
La commande à exécuter est la suivante :
cd chemin/vers/katalon.exe
[commande générée précédemment via Katalon]
Ce qui donne quelque chose comme ça :
Les rapports de test sont stockés dans le dossier « Reports » consultable dans Katalon, et non pas dans le workspace de Jenkins. Nativement, un tel job ne permet pas d’en déclencher un autre (un fonctionnement courant dans une démarche d’intégration continue).
Oui, mais seulement depuis un Mac (source).
A l’heure actuelle, Katalon s’interface avec Jira pour la gestion des anomalies et qTest pour la gestion des cas de test.
C’est assez subjectif mais nous avons trouvé que oui. L’interface rappelle beaucoup celle d’Intellij.
L’outil a été conçu pour être utilisé aussi bien par des automaticiens que par des testeurs ne sachant pas programmer. Les cas de test peuvent donc être conçus en mode « manuel » ou en mode « script » (à noter que les scripts sont en Groovy).
A notre sens, utiliser cet outil peut être un bon moyen de s’initier en douceur aux joies du code. Mais il ne faut pas oublier que certaines fonctionnalités ne peuvent être exploitées pleinement qu’en mode script, par exemple les custom keywords.
A titre d’exemple, voici à quoi ressemble un cas de test en vue manuelle :
Et le même test en vue script :
Côté automatisation web, Katalon propose une fonctionnalité de capture-rejeu (ou playback) qui pourra vous rappeler Selenium IDE. Attention, il ne faut pas en abuser, car en tant que tels ces enregistrement sont un cauchemar pour la maintenance !
Certaines organisations mettent un point d’honneur à utiliser des outils pouvant être configurés en français. Mais en l’occurrence, la réponse est non. De manière générale, il ne fait pas bon être francophone quand on se sert de Katalon… Vous utilisez des caractères spéciaux dans le mode Script ? Vous avez tort. Vraiment.
En mode manuel, heureusement, les caractères spéciaux s’affichent correctement.
Dans le même esprit, dans la popup d’identification des objets web, le raccourci d’enregistrement est Alt + ~. Infaisable avec un clavier français, sachant que la tilde nécessite trois touches différentes… Et à l’heure actuelle, ce raccourci n’est pas configurable dans les options de Katalon. EDIT du 17 avril 2019 : des solutions semblent avoir été apportées entre temps.
Ce ne sont que des détails, mais il est bon de le savoir avant de se lancer.
Avec Katalon, non, pas vraiment. La gestion des appareils mobiles ajoute un peu de temps de configuration, mais cela ne fait pas de grande différence.
Mais de manière générale, une application mobile peut être plus difficile à tester si l’équipe de développement n’a pas envisagé la possibilité que des tierces personnes relisent leur code… Lors de la capture des objets, on peut en effet se retrouver face à une liste interminable d’objets aux noms peu parlants.
Super clair !…
Pourquoi est-ce un problème ?
Ce problème peut aussi exister au sein des applications web, mais dans une moindre mesure. En effet, les « id » et les « class » utilisées entre autres pour appliquer une mise en forme CSS au document sont d’une grande aide pour l’automaticien (sauf cas particuliers d’id générés automatiquement).
Ce problème n’est pas propre à Katalon. Si possible, incitez au plus tôt dans le projet les équipes de développement à créer des identificateurs d’objets « automation-friendly ».
Sans conteste, Katalon est un excellent outil. Il est même étonnant qu’il soit si peu connu.
Nous pensons que son plus gros défaut est malheureusement son incompatibilité avec Linux. On peut également déplorer une intégration trop superficielle avec Jenkins. L’outil a bien évolué depuis la publication initiale de cet article ! Voir cette documentation pour l’intégration à Jenkins, via un plugin dédié.
Si ces contraintes ne vous concernent pas, nous vous le recommandons chaleureusement. Nous serons heureux d’avoir vos retours sur ce logiciel.
Et pour en savoir plus sur l’automatisation des tests, nous vous conseillons cette ressource !
Cet espace est pour vous.