Agilitest est connu pour sa large couverture de diverses technologies récentes dans le domaine du développement logiciel, et vous permet généralement d'automatiser à peu près tout ce qui peut l'être en quelques clics et graphiquement.
Dans certains cas, cependant, il est utile d'appeler un code externe pour effectuer une opération spécifique à l'environnement du client.
Nous allons voir dans cet article comment 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 évidemment, nous recommandons toutes les précautions d'usage dans l'utilisation du code externe java, car s'il permet de tout faire, il peut aussi avoir un impact non désiré sur le SUT (System Under Test).
En termes de portabilité, le code .ats que produit Agilitest est transformé en java pour être exécuté. Vous pouvez donc considérer que le code java que vous écrirez sera portable sur les différentes plateformes supportées par ATS.
Quoi, écrire du code !
Allons-y !
Pour commencer, vous allez générer le stub de votre code java dans Agilitest en faisant ce qui suit :
- Dans l'explorateur Agilitest, sélectionnez le répertoire java dans src / main au même niveau que vos fichiers .ats .
- Faites un clic droit et sélectionnez : Nouveau script java.
- L'éditeur ouvre une popup pour demander le nom du script, entrez le nom de votre script et cliquez sur OK.
- L'éditeur ouvre alors une fenêtre d'édition de code java et, après les déclarations nécessaires et utiles, affiche la fonction qui sera appelée : testMain().
public class test extends ActionTestScript{
public void testMain() { }
}
Paramètres
Il est possible de passer des paramètres par valeur à votre script java.
Pour ce faire, vous devez cliquer sur "appeler le script" ou sur le petit crayon qui apparaît lorsque vous survolez l'action, puis cliquez 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 pour cela : utilisation de variables, valeurs en "dur", itérations sur un fichier .csv.
Pour les récupérer du côté du code java, vous disposez de la fonction getParameter(int), qui prend un entier correspondant à l'indice de la variable dans l'appel de l'indice : getParameter(0) retournera la première valeur passée dans les paramètres.
chaîne de caractère param1 = getParameter(0).toString() ;
int param2 = getParameter(1).toInt() ;
double param3 = getParameter(2).toDouble() ;
boolean param4 = getParameter(3).toBoolean() ;
Récupération des résultats
Les résultats sont récupérés de manière symétrique à l'appel.
Elle nécessite la déclaration de variables dans l'éditeur Agilitest, qui seront de 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 dans la partie gauche de l'éditeur.
- Le type sera modifiable par défaut (violet).
- Nommez cette variable
- Déposez-le directement dans l'action d'appel de l'indice
- Agilitest va changer le type de la variable pour la rendre non modifiable par l'utilisateur (orange) et l'indiquer comme valeur de retour de l'appel java.
- Par la suite, vous pouvez utiliser cette variable dans votre script

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) ;
Évidemment, le nombre de valeurs retournées doit correspondre au nombre de variables déclarées du côté de 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 cette compilation, vos éventuelles erreurs de syntaxe seront mises en évidence. Vous pouvez en savoir plus sur la compilation des tests et la configuration des exécutions.
Une fois votre projet compilé, vous pourrez exécuter votre test, et les actions java comme s'il s'agissait des actions standard d'Agilitest : pas à pas (action Agilitest par action Agilitest) et mode d'exécution identique, chaque action java s'exécutant en une seule fois.
Si votre code java est un peu complexe, et que vous voulez le déboguer, le pas à pas sera possible à condition d'avoir assigné un port de débogage Java dans agilitest et d'avoir un IDE de type eclipse ou intelliJ.