Automatisation avec Cypress
Référence du test dans SquashTM
Pour lier un cas de test SquashTM à un test automatisé Cypress, le champ Référence du test automatisé du bloc Automatisation du cas de test doit avoir la forme suivante :
[dépôt]/[projet]#[fichier_test]
ou
[dépôt]#[fichier_test]
(La référence contient toujours un caractère #.)
avec :
-
[dépôt]: Nom du dépôt Git. -
[projet]: Chemin vers le projet Cypress, c'est-à-dire vers le dossier où se trouvent le fichiercypress.json/cypress.config.jset le dossiercypress.
Ce paramètre est optionnel : si le projet Cypress se trouve à la racine du dépôt Git, il est absent. -
[fichier_test]: Chemin (relatif au chemin précédent) et nom du fichier de test Cypress à partir de la racine du dépôt (avec son extension.spec.js).
Exemple 1 : mon_dépôt/projets/second_projet#cypress/integration/actions.spec.js (le projet Cypress se trouve dans un sous-dossier)
Exemple 2 : mon_dépôt#cypress/integration/actions.spec.js (le projet Cypress est à la racine du dépôt)
Ancienne syntaxe
Les anciennes versions de SquashTM Orchestrator utilisaient la syntaxe suivante :
[dépôt]/[fichier_test]
avec :
[dépôt]: Nom du dépôt Git.[fichier_test]: Chemin et nom du fichier de test Cypress à partir de la racine du dépôt (avec son extension.spec.js).
Exemple : mon_dépôt/cypress/integration/actions.spec.js
Cette syntaxe est dépréciée et ne devrait plus être utilisée. Elle est cependant encore supportée.
Cette syntaxe ne supportait pas les tests Cypress situés ailleurs qu'à la racine du dépôt de source.
Détermination du résultat du cas de test
Dans cette version de SquashTM il n'est pas possible de sélectionner un test spécifique dans un fichier .spec.js qui en contiendrait plusieurs : tous les tests du fichier sont donc exécutés ensemble.
Le résultat du cas de test SquashTM est calculé en prenant en compte les résultats individuels de chaque test Cypress inclus dans le fichier .spec.js :
- 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 SquashTM exploitables
Les paramètres SquashTM exploitables vont différer suivant si vous utilisez les composants Community/Premium ou Ultimate de SquashTM.
Voici le tableau des paramètres exploitables (ces paramètres sont transmis en tant que paramètres de test, voir ci-dessous, SquashTM 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 d'un jeu de données
Comme indiqué, SquashTM ajoute un préfixe au code du champ personnalisé transmis. Assurez-vous de le prendre en compte.
Disponibilité de l'ID d'exécution
TC_EXECUTION_ID est disponible uniquement avec Squash TM 8.0 ou une version ultérieure.
Utilisation de paramètres
Il est possible lors de l'exécution d'un test Cypress 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. SquashTM 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 cypress/params.
Les paramètres sont disponibles sous la forme de variables d'environnement CYPRESS_VAR et peuvent être récupérés grâce à la syntaxe Cypress.env('VAR') (voir la documentation de Cypress). Si le même nom est utilisé pour un paramètre global et un paramètre de test, c'est ce dernier qui est pris en compte.
Exemple
Ci-dessous un exemple d'un fichier de test Cypress et l'automatisation du cas de test SquashTM 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 cypress run
en utilisant la variable d'environnement CYPRESS_EXTRA_OPTIONS. La définition d'une
variable d'environnement dans SquashTM et son association à l'orchestrateur
sont exemplifiées ici.
Certains paramètres sont déjà définis dans la commande cypress run utilisée pour
lancer un test :
cypress run \
--project "{project_path}" --spec "{spec_path}" \
--config screenshotsFolder="{screenshots_folder_uuid}" --reporter junit \
--reporter-options "mochaFile={report_file_path}" $CYPRESS_EXTRA_OPTIONS
Il faut éviter de passer, via la variable d'environnement CYPRESS_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
SquashTM Orchestrator ne supporte aujourd'hui pas le caractère espace () dans la variable d'environnement CYPRESS_EXTRA_OPTIONS pour les tests exécutés dans un environnement d'exécution Linux.
Versions supportées
SquashTM a été validé avec les versions suivantes de Cypress. Il devrait être compatible avec des versions plus récentes.
| Technologie de test | Version |
|---|---|
| Cypress | 12.12.0 |