Agilitest est connu pour sa large couverture des différentes technologies récentes en matière de développement logiciel, et permet généralement d'automatiser à peu près n'importe quoi en quelques clics et de manière graphique.
Dans certains cas, cependant, il est utile d'appeler un code externe pour effectuer une opération spécifique à l'environnement.
Agilitest peut appeler un morceau de code Java, en passant des variables d'entrée et en récupérant des paramètres de sortie.
Bien entendu, nous recommandons toutes les précautions habituelles lors de l'utilisation de code externe Java, car s'il peut tout faire, il peut aussi avoir un impact indésirable sur le SUT (System Under Test).
En termes de portabilité, le code .ats produit par Agilitest est transformé en Java pour être exécuté. Vous pouvez donc supposer que le code Java que vous écrivez sera portable sur les différentes plates-formes supportées par ATS.
Créer un script Java
Pour commencer, vous allez générer le stub de votre code Java dans Agilitest.
Pour ce faire, changez la vue en "Scripts Java ATS "dans l'explorateur de projet,
Cliquez sur le bouton pour "Créer un script Java ATS ".
Vous pouvez également créer un script Java en cliquant sur "Nouveau composant", en haut à gauche de l'éditeur.
L'éditeur ouvre une fenêtre popup demandant le nom du script. Saisissez le nom de votre script et cliquez sur "OK".
L'éditeur ouvre une fenêtre d'édition de code Java et, après les déclarations nécessaires et utiles, affiche la fonction à appeler : testMain().
GetParameter
Il est possible de passer des paramètres par valeur à votre script Java.
Pour ce faire, cliquez sur le bouton "Appeler le script"dans votre script.
Cliquez ensuite sur "Ajouter un paramètre".
Ensuite, vous pouvez entrer les valeurs que vous voulez passer à votre script, et vous pouvez utiliser toutes les possibilités offertes par l'éditeur Agilitest : utilisation de variables, valeurs "en dur", itérations sur un fichier .csv...
Pour les récupérer dans le code Java, vous disposez de la fonction getParameter(int), qui prend un entier correspondant à l'index de la variable dans l'appel au script : getParameter(0) renverra la première valeur passée dans les paramètres.
GetValue
Les résultats sont récupérés de manière symétrique à l'appel de script.
Cela nécessite la déclaration de variables dans l'éditeur Agilitest, qui seront d'un type non modifiable (par l'utilisateur).
Pour déclarer des variables de retour, procédez comme suit :
Déclarez une nouvelle variable dans le menu de gestion des variables situé à gauche de l'éditeur.
Nommez la variable et insérez-la directement dans l'action du script d'appel.
Agilitest modifiera le type de la variable pour la rendre non modifiable par l'utilisateur (indiqué par la variable de couleur orange) et la marquera comme "Variable retournée" pour le script Java appelé.
La variable peut être utilisée dans votre script pour des opérations futures.
Pour définir une valeur de retour du côté Java, vous disposez de la fonction returnValues(), qui prend toutes les valeurs que vous souhaitez renvoyer :
returnValues("value1", "retvalue2", param1) ;
Il est évident que le nombre de valeurs renvoyées doit correspondre au nombre de variables déclarées dans l'éditeur Agilitest.
Exécution du code
Si votre test comprend un script Java, il sera nécessaire de le compiler avant d'exécuter le test. Lors de la compilation, les éventuelles erreurs de syntaxe seront mises en évidence.
Une fois votre projet compilé, vous pouvez exécuter vos actions test et Java comme s'il s'agissait d'actions Agilitest standard : pas à pas (action par action) et avec le même mode d'exécution, chaque action Java étant exécutée en une seule fois.
🔸 Attention
Avant d'exécuter votre test, une fois la compilation Java terminée, vous devez fermer tous les canaux ouverts pour recharger les modifications Java compilées.
Si votre code Java est un peu complexe et que vous souhaitez le déboguer, vous pouvez utiliser le débogage pas à pas à condition d'avoir attribué un port de débogage Java dans Agilitest et de disposer d'un IDE tel qu'eclipse ou intelliJ.