Prise en main de Leaptest, solution de testing

0

Dans la longue liste des outils de tests, Selenium reste la référence.

Mais qui dit testeur ne dit pas forcément développeur, et plusieurs éditeurs proposent des solutions accessibles aux non-codeurs.

Leaptest est un outil basé sur Selenium, qui permet d’élaborer des scénarios de tests complexes, en utilisant un éditeur graphique, appelé Studio. Le Studio permet également de planifier des exécutions automatiques et de visualiser tableaux de bords et rapports d’exécution.

Le second élément de l’architecture est un service Windows qui agit en tant que serveur web, et stocke les créations effectuées à l’aide du Studio : le Controller.

Le troisième et dernier élément de l’architecture est un autre service appelé Agent : c’est lui qui exécute de façon autonome les instructions fournies par le Controller.

Pour l’instant tout ce petit monde ne fonctionne que sous Windows 7+, sauf l’Agent qui tourne aussi sous OS X Mountain Lion+ (versions Android, iOS et Linux à venir).

 

Voyons comment fonctionne Leaptest avec un cas classique de test de validation de formulaire, puis un exemple de test d’application Desktop. Afin de rendre l’exercice un peu moins basique nous ajouterons des éléments qui utilisent des fonctionnalités innovantes de la solution.

Leaptest Studio

Création d’un scénario de test web application

La prise en main de l’éditeur graphique sera familière aux utilisateurs de SQL Server Integration Services. Il s’agit en effet de dessiner un workflow en reliant des blocs de traitement entre eux.

Lors de la création d’un test, un choix doit être effectué entre web application et desktop. Les blocs disponibles ne seront en effet pas les mêmes dans les deux cas de figure. Nous reviendrons sur les tests desktop plus tard.

Chaque scénario commence obligatoirement par un bloc judicieusement nommé Start.

Un clic droit dans l’éditeur permet d’accéder au menu de sélection des blocs.

     

En quelques clics on sélectionne l’ouverture d’un navigateur web, ici Chrome, pointant sur l’URL de test, et on le relie au départ.

Une fois la page affichée, on sélectionne le champ texte login.

 

Lors de la capture d’un élément web (ici la TextBox login), une fonctionnalité permet de définir la stratégie d’exploration du DOM pour identifier l’élément. XPath pour les non-codeurs.

 

Autre fonctionnalité intéressante de Leaptest, les blocs d’accès aux données.

 

Cas pratique : Les identifiants à tester sont configurés dans un fichier Excel. On met en place une itération sur ces deniers en spécifiant la plage à prendre en compte puis on se connecte à la base de données (en ayant au préalable configuré une connexion ODBC) pour récupérer le mot de passe associé, on saisit et on valide.

(Note : Bien évidemment dans la réalité les mots de passe sont cryptés en base de données et rendent cet exemple caduc. L’objet de ce dernier est simplement de démontrer la possibilité de se connecter à des bases de données variées).

Les connecteurs verts indiquent l’enchaînement des blocs.
Les connecteurs bleus indiquent les transferts de paramètres entre les blocs.

 

Ajoutez à ceci des blocs d’opérations logiques (boucles, switch, calculs), la possibilité de factoriser du code des blocs 😉 sous forme de bloc custom (par exemple un bloc login), d’envoyer des emails, de cliquer sur une zone ou un élément défini par offset, et vous obtenez un environnement permettant d’élaborer des scénarios de tests divers et variés.

 

Validation métier

La possibilité d’accès à la base de données permet d’imaginer des validations de process métier, par exemple en allant récupérer des valeurs calculées à l’issue d’un traitement, et en les comparant aux valeurs attendues définies dans le cahier de recette.

 

Création d’un scénario de test desktop

Dans un test desktop, d’autres blocs spécifiques sont disponibles.

 

 

 

 

 

 

 

Il est alors possible de reproduire les interactions générées par des combinaisons de frappes de clavier, des mouvements de souris (drag&drop, molette,…), d’exécuter des lignes de commandes, d’accéder à des éléments à l’écran par leur position et de les cliquer, bref de tester ou de programmer la répétition planifiée d’à peu près n’importe quel traitement.

Cas pratique : le test suivant s’inspire très largement d’un exemple disponible sur le site de l’éditeur.

Ce test a pour but de vérifier que le disque C dispose de plus de 10% d’espace libre.
Pour ce faire, on ouvre un explorateur (par la combinaison de touche Windows+E ou par la ligne de commande explorer.exe), maximise la taille de la fenêtre pour éviter les problèmes de translation de zones, on clique l’image , définit la zone correspondant au lecteur C dans l’espace « Périphériques et lecteur » (de façon à réduire la zone de recherche pour les éléments à venir), cherche les nombres correspondant aux espaces libres et totaux en indiquant les formats recherchés, et pour finir on compare ces deux valeurs.

Architecture Studio-Controller-Agent

L’installation de chacun de ces éléments sur des machines différentes permet d’obtenir autant d’environnements de tests, en spécifiant l’environnement lors de l’exécution (planifiée ou immédiate) des tests.

Intégration

Leaptest peut s’intégrer aux environnements de développement et d’intégration tels que JIRA, Jenkins ou TFS par le biais de plugins ou de l’API REST.

 

Synthèse

Leaptest présente plusieurs points forts :

  • Simple à installer, la prise en main est rapide et intuitive
  • Fonctionnalité « data-driven » : la possibilité d’inclure des lectures de données de tests, via Excel ou une base de données permet d’exécuter les tests paramétrés aisément, en plus de permettre des tests métier directement en base
  • L’existence d’une API REST et de plugins permet l’exécution des tests au fil de l’intégration continue
  • La possibilité de copier-coller des portions de workflow d’un test à l’autre facilite la création de nouveaux tests
  • L’architecture distribuée permet de disposer d’un panel d’environnements de test
  • La reconnaissance d’image permet le test d’applications desktop
  • Chaque exécution de test est enregistrée sous forme de video

 

Concernant ses limites :

  • Le manque de ressources sur le net. Mais le didacticiel sur le site de l’éditeur et le produit abouti font que l’on se sort rapidement des problèmes rencontrés
  • Pas de gestion de profils : les projets et tests d’un controller sont partagés par les utilisateurs des studios

 

Avec son aspect de SSIS adapté aux tests d’application, Leaptest permet d’élaborer des cas de tests complexes. A la différence des outils concurrents basés sur l’enregistrement d’une navigation, il permet d’inclure des briques logiques, de calcul ou de reconnaissance d’image qui élargissent les possibilités de contrôle.

 

SymfonyLive Paris 2017 – JWT – Sécurisez vos APIs

0

André a présenté un talk autour de JWT lors de la première journée des Symfony Live Paris 2017.


slide-1

Les slides sont disponibles ici : 2017-03-30 – Présentation SymfonyLive JWT