Automatisation avec Robot Framework
Configuration de l'environnement d'exécution
Le module Python allure-robotframework
doit être présent dans l'environnement d'exécution.
Celui-ci peut être installé grâce à la commande :
pip install allure-robotframework
Pour accéder aux paramètres de Squash TM (voir ci-dessous), la librairie Python squash-tf-services doit être présente.
Elle peut être installée grâce à :
pip install squash-tf-services
Référence du test dans Squash TM
Pour lier un cas de test Squash TM à un test automatisé, le champ Référence du test automatisé du bloc Automatisation du cas de test doit avoir la forme suivante :
[dépôt]/[fichier]#[cas_de_test]
ou
[dépôt]/[fichier]
(La référence contient zéro ou un caractère #
.)
avec :
-
[dépôt]
: Nom du dépôt Git. -
[fichier]
: Chemin et nom du fichier de test Robot Framework à partir de la racine du projet (avec son extension.robot
).
Il est possible de ne pas préciser un nom de fichier.robot
et de n'indiquer que le chemin d'un dossier. Dans ce cas, tous les fichiers.robot
du dossier et des sous-dossiers seront exécutés. -
[cas_de_test]
: Nom du cas de test à exécuter dans le(s) fichier(s).robot
.
Ce paramètre est optionnel, c'est-à-dire qu'il peut être absent.
Détermination du résultat du cas de test
Si un cas de test [cas_de_test]
n'est pas spécifié, le résultat du cas de test Squash TM est calculé en prenant en compte les résultats individuels de chaque test du fichier/dossier [fichier]
:
- Si au moins un test est en statut Error (dans le cas d'un problème technique), l'exécution sera en statut Blocked.
- Si au moins un test a échoué fonctionnellement et qu'aucun test n'est en statut Error, l'exécution sera en statut Failed.
- Si tous les tests ont réussi, l'exécution sera en statut Success.
Nature des paramètres Squash TM exploitables
Les paramètres Squash TM exploitables vont différer suivant si vous utilisez les composants Community/Premium ou Ultimate de Squash.
Voici le tableau des paramètres exploitables (ces paramètres sont transmis en tant que paramètres de test, voir ci-dessous, Squash TM ne génère pas de paramètres globaux) :
Nature | Clé | Community/Premium | Ultimate |
---|---|---|---|
Nom du jeu de données | DSNAME | ✅ | ✅ |
Paramètre d'un jeu de données | DS_[nom] | ✅ | ✅ |
ID d'exécution | TC_EXECUTION_ID | ❌ | ✅ |
Référence du cas de test | TC_REFERENCE | ✅ | ✅ |
UUID interne du cas de test | TC_UUID | ✅ | ✅ |
Champ personnalisé du cas de test | TC_CUF_[code] | ✅ | ✅ |
Champ personnalisé de l'itération | IT_CUF_[code] | ❌ | ✅ |
Champ personnalisé de la campagne | CPG_CUF_[code] | ❌ | ✅ |
Champ personnalisé de la suite de tests | TS_CUF_[code] | ❌ | ✅ |
Légende :
[code]
: valeur renseignée dans le champ “Code” d'un champ personnalisé[nom]
: nom du paramètre tel que renseigné dans Squash TM
Disponibilité de l'ID d'exécution
TC_EXECUTION_ID
est disponible uniquement avec Squash TM 8.0 ou une version ultérieure.
Comme indiqué, Squash TM ajoute un préfixe au code du champ personnalisé transmis. Assurez-vous de le prendre en compte.
Voir la documentation de Squash TM pour plus d'information sur les champs personnalisés.
Utilisation de paramètres
Il est possible lors de l'exécution d'un test Robot Framework d'exploiter des paramètres au sein de celui-ci. Un paramètre peut être un paramètre de test ou un paramètre global. Squash TM ne transmet que des paramètres de test. Des paramètres de test et des paramètres globaux peuvent être utilisés dans le cas d'un lancement à partir d'un pipeline CI/CD avec l'action robotframework/params
.
Pour cela, il faut suivre les étapes suivantes :
-
Importer la librairie squash-tf-services au sein du fichier
.robot
dans la sectionSettings
:Library squash_tf.TFParamService
-
Vous pouvez ensuite récupérer la valeur d'un paramètre en faisant appel l'un des mots-clefs suivants :
-
${value}= Get Global Param key ${value}= Get Global Param key default_value
Si celui existe, sa valeur est assignée à${value}
.
Sinon la valeur par défaut est assignée à${value}
; si aucune valeur par défaut n'est fournie,None
est utilisé. Exemple :${parameter}= Get Global Param target_base_url http:localhost:8080/sut/
-
${value}= Get Test Param key ${value}= Get Test Param key default_value
Si celui existe, sa valeur est assignée à${value}
.
Sinon la valeur par défaut est assignée à${value}
; si aucune valeur par défaut n'est fournie,None
est utilisé. Exemple :${login}= Get Test Param TC_CUF_login test_user
-
${value}= Get Param key ${value}= Get Param key default_value
Si un paramètre de test existe, sa valeur est assignée à${value}
.
Sinon, si un paramètre global existe, sa valeur est assignée à${value}
.
Sinon la valeur par défaut est assignée à${value}
; si aucune valeur par défaut n'est fournie,None
est utilisé. Exemple :${login}= Get Param login test_user
-
Exemple
Ci-dessous un exemple de fichier de test Robot Framework et l'automatisation du cas de test Squash TM associé :
Ajout de paramètres sur la ligne de commande de lancement d'un test
Il est possible de passer des paramètres supplémentaires à la commande robot
en utilisant la variable d'environnement ROBOTFRAMEWORK_EXTRA_OPTIONS
. La définition d'une
variable d'environnement dans Squash TM et son association à l'orchestrateur
sont exemplifiées ici.
Certains paramètres sont déjà définis dans la commande robot
utilisée pour
lancer un test :
robot \
$ROBOTFRAMEWORK_EXTRA_OPTIONS \
--nostatusrc --listener "allure_robotframework;." \
--test {testcase_name} "{datasource_path}"
Il faut éviter de passer, via la variable d'environnement ROBOTFRAMEWORK_EXTRA_OPTIONS
,
des paramètres sur la ligne de commande qui sont en conflit avec ceux déjà utilisés
ou qui impactent la création ou la localisation des rapports attendus par l'orchestrateur
(voir leur liste ici).
Non support du caractère espace sur Linux
Squash Orchestrator ne supporte aujourd'hui pas le caractère espace () dans la variable d'environnement
ROBOTFRAMEWORK_EXTRA_OPTIONS
pour les tests exécutés dans un environnement d'exécution Linux.
Versions supportées
Squash a été validé avec Robot Framework 4.0. Toute version récente devrait fonctionner.