Catégories

Passage de paramètres à un sous-script (JSON/CSV)

L'une des caractéristiques d'Agilitest est la possibilité d'utiliser des sous-scripts. Cela vous permettra de factoriser les fonctions communes de vos tests. Agilitest vous permet également de passer des valeurs comme paramètres à vos sous-scripts et ainsi rendre vos sous-scripts évolutifs et génériques.

Un site sous-script créé à partir d'un script exécutera toujours les actions qui le composent avec les mêmes paramètres.

Il est également possible de modifier les valeurs du sous-script pour l'utiliser dans plusieurs configurations possibles.

Il existe différentes façons de passer des paramètres à un sous-script : :

  1. Manuellement, en entrant les paramètres dans le script
  2. ou avec un jeu de données, en utilisant un fichier CSV/JSON

▶️ Vous pouvez trouver un tutoriel en 3 parties sur le passage de paramètres à un sous-script sur notre Youtube canal : Partie 1, Partie 2, Partie 3

Ajouter des paramètres à un sous-script

Si votre script ne comporte pas d'action d'appel sous-script, vous pouvez en créer une de deux façons :

  1. Soit en saisissant le nom du sous-script dans l'action

Pour ce faire, cliquez sur le bouton "sous-script" dans le menu d'action

action susbscript dans le menu d'action

Cliquez sur l'action "Appeler le script [ ]"pour entrer les informations

action de script d'appel

Ensuite, saisissez le nom du script que vous souhaitez appeler en tant que sous-script.

saisie du nom du script

      2. Soit en glissant un script dans votre test

Dans l'explorateur de projet, cliquez sur un script que vous voulez utiliser comme sous-script et faites-le glisser dans votre script.

script d'entraînement

Cela créera une action "Appeler le script" avec le script glissé.

Appeler l'action du script

1. Paramètres saisis manuellement

Il est possible de passer des paramètres manuellement.

Une fois que vous avez créé l'action d'appel de sous-script dans votre script, vous pouvez passer des paramètres manuellement à votre sous-script, directement depuis votre script.

Pour ce faire, cliquez sur l'action d'appel de sous-script, "Appeler le script [nom_scirpt]."

action de script d'appel

Ensuite, cliquez sur "ajouter un paramètre"

bouton d'ajout de paramètre

Pour information, le premier paramètre sera toujours nommé "Paramètre 0", puis le deuxième paramètre correspondra au "Paramètre 1", le troisième paramètre au "Paramètre 2", etc...

paramètre saisi manuellement dans l'action du script d'appel

Une fois que vous avez saisi les paramètres dans le script, vous devez les ajouter dans le sous-script.

Pour ce faire, ouvrez votre sous-script à partir de l'explorateur de projet.

sous-script dans l'explorateur

À partir de votre sous-script, cliquez sur l'action qui exécutera les paramètres et ouvrez ensuite la fenêtre des valeurs spéciales.

menu à valeur spéciale

Sélectionnez "Paramètre de script" dans les valeurs spéciales et choisissez le paramètre qui vous intéresse.

Sélectionnez le paramètre du script

Lorsque l'action d'appel à un sous-script est exécutée, elle exécute les paramètres spécifiés.

📙 Pour en savoir plus
Avec l'action d'appel de script, un script va appeler un sous-script. Si le script a des paramètres définis, le sous-script les récupère et les passe à $param(x)(voir le schéma ci-dessus "Passer des paramètres à un sous-script depuis un script").

Pendant l'exécution, les paramètres seront affichés dans une fenêtre pop-up en bas à droite de l'éditeur.

paramètres affichés pendant l'exécution

Pour votre information, pour faire réapparaître la pop-up indiquant les paramètres, vous pouvez cliquer sur le bouton"\x".

bouton \x

Lorsque les paramètres sont saisis manuellement, l'exécution de vos paramètres ne se fera qu'une seule fois. Pour multiplier les itérations, vous devrez créer autant d'actions d'appel de script que le nombre d'itérations que vous souhaitez voir exécuter. En d'autres termes, vous devrez répéter les étapes précédentes pour chaque nouvelle itération.

💡 Conseil

Ajoutez des commentaires à vos paramètres afin de suivre les données et d'étiqueter les paramètres. Ces commentaires seront visibles dans le rapport d'exécution.

2. Paramètres saisis à partir d'un fichier JSON/CSV

Créer un fichier JSON/CSV

Il est également possible de passer des paramètres à partir d'un fichier JSON/CSV. Un fichier JSON/CSV correspond à un jeu de données. Le jeu de données va permettre de créer des itérations. Le comportement du sous-script sur un jeu de données sera de boucler le nombre d'itérations contenues dans le jeu de données.

Contrairement à une saisie manuelle, où vous auriez dû créer plusieurs fois l'action d'appel de scripts et saisir les paramètres à chaque fois, pour le jeu de données, les paramètres seront organisés dans un tableau qui sera utilisé par une seule action d'appel de script.

Il existe deux façons de créer un fichier JSON/CSV :

  1. Cliquez sur "Nouveau composant" situé en haut à gauche de l'éditeur Agilitest.
bouton nouveau composant

Puis sélectionnez "Créer un fichier CSV"ou "Créer un fichier JSON"

2. Dans l'explorateur de projet, ouvrez le fichier "fichiers de données"

vue des fichiers de données

Enfin, cliquez sur un bouton pour créer un fichier JSON ou CSV.

créer des boutons JSON ou CSV

Une fois le fichier CSV/JSON créé, il peut être utilisé à partir de l'action du script d'appel.

Pour associer votre fichier JSON/CSV à votre script, cliquez sur l'action  "Appeler le script [nom_du_script]"

appeler l'action du script

Sélectionnez fichier "CSV/JSON"

Bouton CSV/JSON

Il y a deux façons d'ajouter votre fichier CSV/JSON dans l'action :

  1. Directement à partir de l'explorateur de projet

Faites glisser votre fichier CSV/JSON depuis l'explorateur de projet vers l'action call the script.

        2. En sélectionnant le fichier dans l'explorateur Windows

Cliquez sur l'icône de fichier pour rechercher votre fichier à partir de l'explorateur Windows.

bouton d'ouverture de fichier

Une fois que le fichier CSV/JSON est ajouté à l'action d'appel du sous-script, il s'ouvrira automatiquement pendant l'exécution de votre test.

Les fichiers CSV/JSON se présentent sous la forme d'un tableau.

tableau à partir d'un fichier csv

Ils sont tous deux utilisés de la même manière, à la seule différence qu'il est possible de renommer les entêtes de colonnes dans un fichier JSON.

tableau avec des en-têtes titrés dans le fichier json

Dans le tableau, vous pouvez ajouter des colonnes qui correspondent aux paramètres, ainsi que des lignes qui correspondent aux itérations en cliquant sur les boutons correspondants.

pour ajouter des itérations et des rangées ou supprimer

Avec un fichier CSV/JSON, le sous-script est exécuté autant de fois qu'il y a d'itérations.

Une fois votre fichier terminé, vous pouvez récupérer la variable de votre sous-script en utilisant la fonction $param(...) et en lui passant la valeur de la colonne de paramètres qui vous intéresse.

Exemple :

Saisissez $param(0) dans l'action pour renvoyer la valeur de la première colonne de votre fichier CSV/JSON.

param(0) dans une action

📙 Pour en savoir plus
Les paramètres du sous-script sont définis à partir d'un fichier CSV (comma-separated values) constitué d'un tableau avec des lignes et des colonnes. En fonction du nombre de lignes, cela détermine le nombre de fois que le fichier sera appelé, c'est ce qu'on appelle des itérations. (Voir le schéma ci-dessus "Passage de paramètres à un sous-script avec un fichier CSV")
Il en va de même pour les paramètres du sous-script défini à partir d'un fichier JSON (JavaScript Object Notation) composé d'un tableau de lignes (rows) et de colonnes (columns). En fonction du nombre de lignes, cela détermine le nombre de fois que le fichier sera appelé, c'est ce qu'on appelle des itérations. (voir le schéma ci-dessus "Passage de paramètres à un sous-script avec un fichier JSON")
Pour un fichier JSON complexe, il est composé d'un tableau avec des lignes et des colonnes comme un fichier JSON classique. Seulement, les itérations se font en fonction du nombre de valeurs dans une ligne. Le nombre de valeurs dans une ligne correspond au nombre de paramètres (Voir le schéma ci-dessus "Passage de paramètres à un sous-script avec un fichier JSON complexe").
Les paramètres peuvent être créés à partir d'un fichier http ou d'une base de données à partir d'une page web. Le principe est le même que pour un fichier JSON/CSV, les itérations correspondent au nombre de lignes et les paramètres au nombre de colonnes (voir le schéma ci-dessus "Passage de paramètres à un sous-script avec un fichier http").

Options d'exécution des fichiers CSV/JSON

Une fois le jeu de données créé, vous pouvez ajouter des options sur l'exécution de vos fichiers CSV/JSON. Par défaut, les itérations sont faites selon l'ordre présenté dans le tableau, mais il est possible de demander à Agilitest de rendre l'exécution de vos itérations aléatoires.

Pour ce faire, cliquez sur votre élément et cochez la case "Utiliser une ligne aléatoire"

utiliser le bouton de rangée aléatoire

Vous pouvez également donner une "Plage d'index", ce qui vous permet de limiter le nombre d'itérations parmi le total des itérations qui composent le fichier JSON ou CSV.

bouton de gamme d'index

Si vous le souhaitez, cette option vous permet également d'exécuter une seule ligne précise en indiquant son numéro.

Exemple : Si votre fichier JSON est composé de 150 itérations, vous pouvez spécifier 0-50 dans la plage d'index pour limiter l'exécution aux 50 premières itérations.

Enfin, vous avez l'option "Exécuter comme suite" pour que l'exécution se poursuive jusqu'à la fin même si une itération est en erreur.

exécuter comme bouton de suite

Si vous rencontrez une erreur dans l'une des itérations, cela entraînera une erreur dans votre test, et donc l'arrêt du test en le considérant comme KO. Cette option vous permet de considérer chaque itération comme un test indépendant.

Exemple : Sur une exécution de 50 itérations, si la 48ème itération rencontre une erreur, elle sera indiquée comme étant en erreur mais n'empêchera pas de passer à la 49ème et ainsi de suite.

🔸 Attention

Les actions créées après l'exécution de l'action call script en tant que suite ne sont pas sauvegardées et n'apparaissent pas dans les rapports.

3. Paramètres d'un élément d'interface

Il est possible de ne faire apparaître qu'un seul élément de vos paramètres. Dans un sous-script complet, si l'une des actions n'a pas d'élément, le param(0) sera utilisé par défaut. Pour renseigner le param(0) qui sera utilisé, vous pouvez ajouter un"Element's text" à l'action qui appelle le sous-script.

Depuis l'action d'appel de script, cliquez sur "Texte de l'élément".

bouton de texte de l'élément

Ajoutez ensuite un élément sélectionné avec l'outil de capture.

ajouter une interface de critères de reconnaissance

Lorsque vous exécutez votre site sous-script, il affiche l'élément que vous avez capturé.

Ceci est particulièrement utile lorsque vous recherchez des données dans votre tableau parmi un ensemble de lignes. Agilitest vous permettra d'itérer jusqu'à ce que vous arriviez à la ligne que vous recherchiez et vous permettra d'effectuer une action spécifique sur cette ligne.

Exemple : Vous avez un tableau qui contient 5 lignes différentes. En donnant le composant "table" en entrée du sous-script, Agilitest va parcourir en boucle les lignes du tableau dans l'indice.

📙 Pour en savoir plus
Les paramètres peuvent également être extraits d'éléments. Pour une liste d'éléments (DIV), chaque élément correspond à une itération et chaque valeur séparée d'une propriété texte "\n" correspond à un paramètre.(Voir le schéma ci-dessus "Passage de paramètres à un sous-script avec une liste d'éléments (div)")
Pour une liste complexe d'éléments (Rows), chaque ligne correspond à une itération et chaque valeur distincte d'un texte divisé "\t" correspond à un paramètre. (voir le schéma ci-dessus "Passage de paramètres à un sous-script avec une liste d'éléments complexes (rows)")
Pour une liste d'éléments spéciaux, chacun de ses éléments a des sous-éléments qui ont eux-mêmes des valeurs. Le nombre d'itérations est déterminé par le nombre de sous-éléments et le nombre de paramètres est déterminé par les valeurs de propriétés texte distinctes qui composent ces sous-éléments. (Voir le schéma ci-dessus "Passage de paramètres à un sous-script avec une liste d'éléments spéciaux")

Convertir un fichier EXCEL en fichier de données

Vous pouvez utiliser vos fichiers Excel dans Agilitest en les convertissant en fichiers de données.

Pour ce faire, exportez votre fichier Excel et convertissez-le en fichier .csv ou .json.

Une fois que c'est fait, ouvrez votre fichier "données"de votre projet depuis l'explorateur de projet Windows.

Ensuite, copiez et collez votre fichier de données dans le référentiel.

4. Paramètres avec séparateur de données

Il est également possible d'appeler un sous-script en passant des paramètres sous forme de tableau.

Pour ce faire, faites glisser un script de votre explorateur de projet vers votre script.

Cliquez ensuite sur "séparateur de données"

Ce tableau est composé de données au format texte :

  • Soit saisie manuellement
  • Soit avec une variable

Lors de la transmission de ces données, vous pouvez spécifier un caractère de séparation pour définir les lignes et les colonnes.

Saisissez le caractère que vous souhaitez définir comme séparateur, puis ajoutez-le à vos données pour qu'il remplisse sa fonction.

Exemple :

Si vous saisissez le caractère "/" comme séparateur de colonne

Vous ajoutez ce caractère à vos données aux endroits où vous souhaitez créer une séparation

Il affiche ensuite un tableau dont les données sont séparées en fonction de la position du séparateur de colonnes "/".

Il est possible de ne pas mettre de caractère de séparation :

  • Avec le bouton effacer

En créant un séparateur vide, cela séparera tous les caractères existants

  • Avec le bouton croix

En créant un séparateur nul, cela n'agira pas sur les données qui resteront telles quelles

Options d'exécution des paramètres

Itérations

L'ajout d'itérations permettra à votre script d'être exécuté plusieurs fois. C'est pratique lorsque vous avez une fonction qui peut être utilisée successivement et cela vous permettra de vérifier les comportements de votre interface utilisateur.

Exemple : La fonction "retour en arrière" pour revenir aux pages précédentes d'une page web qui peut souvent être répétée plusieurs fois.

Pour ajouter des itérations à un sous-script composé de paramètrescliquez sur l'appel de votre indice et augmentez le nombre d'itérations.

itérations de sous-script

Exemple : Si vous ajoutez 3 itérations, le site sous-script et ses paramètres seront exécutés 3 fois.

L'ajout d'itérations vous permet d'éviter flaky tests, c'est-à-dire les actions qui sont exécutées plusieurs fois et qui produisent parfois une erreur sans raison particulière.

Les itérations, les conditions et les variables ne sont pas toujours utilisables selon le cas:

  • L'exécution du sous-script à partir des paramètres ajoutés depuis votre script vous donnera accès à toutes les options disponibles : itérations, variables et conditions.
  • L'exécution du sous-script à partir d'un fichier JSON ou CSV ne vous permettra pas d'utiliser des variables ou des itérations mais vous permettra d' ajouter des conditions.
  • L'exécution du sous-script avec l'ajout du texte d'un élément vous permettra d'ajouter des itérations et des conditions mais ne vous donnera pas accès aux variables.

Valeur de retour

Il est possible d'obtenir des données à partir d'un site sous-script. Cela créera une variable dynamique (non modifiable) puisque la variable de retour prendra automatiquement la valeur de la variable du script principal.

Il y a deux façons d'obtenir une valeur retournée :

1. Créer une variable

Tout en bas du sous-script se trouve une petite flèche jaune qui vous permet d'ajouter une valeur de retour.

bouton d'ajout de valeur de retour

Une fois que la variable de retour a été créée, elle doit être récupérée dans l'action d'appel de script.

Pour ce faire, cliquez sur le bouton "Variables" pour la tagger dans le script principal avec une variable équivalente en face.

bouton des variables

2. Variable de propriété

Créez une action de propriété pour obtenir des données depuis l'interface.

Pour ce faire, cliquez sur "Propriété" dans le menu d'action

action de propriété

L'action de propriété ciblera un élément d'interface.

Pour cela, cliquez sur le bouton "Charger"dans l'action de la propriété

bouton de chargement

Elle va charger toutes les propriétés qui sont associées à cet élément.

Cliquez sur la propriété qui vous intéresse pour qu'elle soit chargée pendant l'exécution.

liste des "propriétés

Ces propriétés correspondent aux attributs de l'élément qui se trouvent dans la fenêtre "Parents de l'élément capturé" lorsque l'élément est capturé.

Des propriétés ATS apparaissent également dans la liste des propriétés ainsi que les éléments de mise en forme (CSS).

Lorsqu'une propriété est sélectionnée, elle est placée dans une variable qui prend la valeur de la propriété sélectionnée.

propriété var

Exemple: Si vous sélectionnez la propriété "texte"avec la valeur "Hello world - Wikipedia" dans la liste des propriétés capturées.

propriété du texte à partir des propriétés capturées

Une fois que la valeur est créée à partir de la propriété, vous pouvez la retourner.

Cliquez sur le bouton "Ajouter une valeur de retour"

bouton d'ajout de valeur de retour

Ensuite, ouvrez le menu des valeurs spéciales et sélectionnez dans les variables de script celle qui correspond à la variable de propriété

propriété var de la variable du script

Cliquez sur l'action d'appel du sous-script, puis sur "Variables" pour spécifier qu'une valeur est renvoyée par le sous-script.

bouton des variables

Sélectionnez la variable qui stockera cette valeur de retour parmi celles déjà créées ou vous pouvez également en créer une nouvelle.

newvar valeur retournée

Cela signifie que la valeur de retour du sous-script sera récupérée dans les variables du script principal.

Cela permet de faire passer des données entre un script et ses sous-scripts.

📙 Pour en savoir plus
Le script principal appelle un sous-script qui contient des valeurs. Il est possible de passer des paramètres à ce sous-script et il est également possible de renvoyer les valeurs du sous-script au script principal. Avec l'action retour de valeur, vous pouvez appeler un certain nombre de valeurs qui seront retournées en fonction des valeurs contenues dans le sous-script. Parfois, les informations envoyées (paramètres ou valeurs de retour) ne sont pas attendues et ne sont donc pas traitées.

Vous avez encore besoin d'aide ?
Contacter le support