Catégories

Passer des paramètres à un sous-script (JSON/CSV)

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

Un 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 manières de passer des paramètres à un sous-script:

  1. Manuellement, en entrant les paramètres dans le script
  2. ou avec un ensemble 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 canal Youtube : Partie 1, Partie 2, Partie 3

Ajouter des paramètres à un susbcript

Si vous n'avez pas d'action d'appelsous-script dans votre script, vous pouvez en créer une de deux façons :

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

Pour ce faire, cliquez sur le lien "sous-script"dans le menu action

action susbscript dans le menu action

Cliquer sur l'action "Appeler le script [ ]" pour saisir les informations

action du script d'appel

Saisissez ensuite le nom du script que vous souhaitez appeler en tant que sous-script.

saisie du nom du script

      2. Soit en faisant glisser un script dans votre test

Dans l'explorateur de projet, cliquez sur un script que vous souhaitez 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 déplacé.

Appeler l'action du script

1. Paramètres entrés manuellement

Il est possible de passer des paramètres manuellement.

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

Pour ce faire, cliquez sur l'action call sub-script, "Appeler le script [nom_du_script]"

action du script d'appel

Cliquez ensuite 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 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 dans l'explorateur de projet.

sous-script dans l'explorateur

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

menu à valeur spéciale

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

Sélectionner le paramètre du script

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

📙 Pour en savoir plus
Avec l'action call script, un script appellera un sous-script. Lorsque 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 à partir d'un script").

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

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

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

Bouton \x

Lorsque les paramètres sont introduits 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 sous-script que le nombre d'itérations souhaitées. 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 pour suivre les données et étiqueter les paramètres. Ces commentaires seront visibles dans le rapport d'exécution.

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

Créer un fichier JSON/CSV

Il est également possible de transmettre des paramètres à partir d'un fichier JSON/CSV. Un fichier JSON/CSV correspond à un jeu de données. Le jeu de données permettra 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 sous-script et introduire des paramètres à chaque fois, pour l'ensemble de données, les paramètres seront organisés dans un tableau qui sera utilisé par une seule action d'appel sous-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
nouveau bouton de composant

Sélectionnez ensuite "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 call script.

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

appeler l'action du script

Sélectionner "CSV/JSONFichier " 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 du fichier pour rechercher votre fichier à partir de l'explorateur Windows.

bouton d'ouverture de fichier

Une fois le fichier CSV/JSON ajouté à l'action d'appel 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 en-têtes titrés dans le fichier json

Dans le tableau, vous pouvez ajouter des colonnes correspondant aux paramètres, ainsi que des lignes correspondant aux itérations en cliquant sur les boutons prévus à cet effet.

pour ajouter des itérations et des lignes ou pour supprimer des itérations et des lignes.

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) composé d'un tableau de lignes et de 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 les itérations. (Voir le schéma ci-dessus "Passer des paramètres à un sous-script avec un fichier csv")
Il en va de même pour les paramètres du sous-script définis à partir d'un fichier JSON (JavaScript Object Notation) composé d'un tableau de lignes et de 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 les itérations. (voir le schéma ci-dessus "Passer des 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 "Passer des 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 "Passer des 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 effectuées 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éatoire.

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 indiquer une"plage d'index", ce qui vous permet de limiter le nombre d'itérations parmi l'ensemble des itérations qui composent le fichier JSON ou CSV.

Bouton d'intervalle 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 comprend 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 disposez de l'option"Exécuter comme suite" pour que l'exécution se poursuive jusqu'à la fin, même si une itération est erronée.

exécuter en tant que bouton de suite

Lorsque vous rencontrez une erreur dans l'une des itérations, votre test sera considéré comme étant en erreur et s'arrêtera donc 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 48e itération rencontre une erreur, elle sera signalée comme étant en erreur mais n'empêchera pas de passer à la 49e et ainsi de suite.

🔸 Avertissement

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 une des actions n'a pas d'élément alors le param(0) sera utilisé par défaut. Pour renseigner le param(0) qui sera utilisé, vous pouvez ajouter un"Texte de l'élément" à l'action qui appelle le sous-script.

A partir de l'action call 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 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 recherchez 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 le sous-script.

📙 Pour en savoir plus
Les paramètres peuvent également provenir d'éléments. Pour une liste d'éléments (DIV), chaque élément correspond à une itération et chaque valeur distincte d'une propriété de texte "\n" correspond à un paramètre.(Voir le schéma ci-dessus "Passer des paramètres à un sous-script avec une liste d'éléments (div)")
Pour une liste complexe d'éléments (Rows), chaque rangée correspond à une itération et chaque valeur distincte d'un texte divisé "\t" correspond à un paramètre. (voir le schéma ci-dessus "Passer des paramètres à un sous-script avec une liste d'éléments complexes (rangées)")
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 des propriétés textuelles séparées qui composent ces sous-éléments. (Voir le schéma ci-dessus "Passer des 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 dans 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
  • Ou 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 lorsque 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 introduire de caractère de séparation :

  • Bouton d'effacement

La création d'un séparateur vide permet de séparer tous les caractères existants.

  • Bouton de croix

La création d'un séparateur nul n'affectera pas les données, qui resteront telles quelles.

Appeler une action de script avec des scripts externes

Script Javascript

Dans l'explorateur de projet, ouvrez le menu "Javascript ATS scripts".

Créez un script Javascript et donnez-lui un nom.

Toutes les informations nécessaires à l'utilisation des éléments et des paramètres se trouvent directement dans votre script Javascript.

Ce script est modifiable à partir de l'éditeur Agilitest.

Depuis votre script ATS , faites glisser votre script Javascript pour créer une action de script d'appel.

Vous pouvez récupérer les paramètres passés dans votre sous-script Javascript (manuels, séparateurs de données, fichiers CSV/JSON).

Pour ce faire, vous pouvez utiliser la fonction indiquée dans le script Javascript, à savoir ats.

La particularité du sous-script Javascript est qu'il est possible de passer un élément.

Pour récupérer un élément, vous pouvez utiliser la variable indiquée dans le script Javascript, c'est-à-dire ats

Script Python

Dans l'explorateur de projet, ouvrez le menu "Scripts Python ATS ".

Créez un script Python et donnez-lui un nom.

Toutes les informations nécessaires à l'utilisation des éléments et des paramètres se trouvent directement dans votre script Javascript.

Ce script est modifiable à partir de l'éditeur Agilitest.

Depuis votre script ATS , faites glisser votre script Python pour créer une action de script d'appel.

Vous pouvez récupérer les paramètres passés dans votre sous-script Python (manuels, séparateurs de données, fichiers CSV/JSON).

Pour ce faire, vous pouvez utiliser la fonction indiquée dans le script Javascript, à savoir ats.

🔸 Avertissement

Contrairement aux sous-scripts Javascript, il n'est pas possible de passer un élément avec un sous-script Python.

Options d'exécution des paramètres

Itérations

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

Exemple : La fonction "retour en arrière" permet de 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 sous-script et augmentez le nombre d'itérations.

sous-script itérations

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

L'ajout d'itérations permet d'éviter les flaky tests, c'est-à-dire les actions qui sont exécutées plusieurs fois et qui produiront 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 dans 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.

Transmission des éléments parents

Il est possible de passer un élément récupéré dans un sous-script.

A partir de votre action sous-script , cliquez sur "parameter element".

Passez en mode capture, puis sélectionnez un élément avec un parent.

Faites glisser l'élément dans le sous-script.

Une fois dans votre action sous-script , ajoutez une action puis cliquez sur "application root" puis sur parameter item.

Vous trouverez l'élément précédemment capturé, auquel vous pouvez ajouter des enfants.

Valeur de retour

Il est possible d'obtenir des données d'un sous-script. Cela crée une variable dynamique (non modifiable) puisque la variable de retour valorise automatiquement 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 , une petite flèche jaune vous permet d'ajouter une valeur de retour.

bouton d'ajout de la valeur de retour

Une fois la variable de retour créée, elle doit être récupérée à partir de l'action d'appel du script.

Pour ce faire, cliquez sur le bouton "Variables"pour la baliser dans le script principal avec une variable équivalente ci-contre.

bouton des variables

2. Variable de propriété

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

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

action sur les biens

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

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

bouton de chargement

Il chargera toutes les propriétés 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é.

Les 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.

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

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

Cliquez sur le bouton "Ajouter une valeur de retour".

bouton d'ajout de la valeur de retour

Ensuite, ouvrez la section 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 de 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 créez-en une nouvelle.

newvar valeur retournée

Cela signifie que la valeur de retour du sous-script sera récupérée à partir des variables du script principal.

Cela permet de transmettre 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 return value, vous pouvez appeler un certain nombre de valeurs qui seront renvoyées en fonction des valeurs du 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