Automatisation avec Playwright
Le support de Playwright est disponible à partir de Squash TM 7.0.
Configuration de l'environnement d'exécution
Playwright doit être présent dans l'environnement d'exécution.
Une installation globale est nécessaire. Elle peut être faite avec la commande :
npm install -g playwright
L'environnement doit être configuré de telle manière à ce que les tests puissent
être lancés par npx playwright test [dossier]/[fichier_de_test]
. Dans la plupart
des cas, cela requiert d'installer également le module @playwright/test
:
npm i -D @playwright/test
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]/[dossier]#[fichier_de_test]#[cas_de_test]
(La référence contient un ou deux caractères #
.)
où :
-
[dépôt]
: Nom du dépôt Git. -
[dossier]
: Chemin du fichier de test Playwright (fichier.spec.ts
ou.spec.js
) à partir de la racine du projet. Ce paramètre est optionnel. -
[fichier_de_test]
: Nom du fichier de test Playwright ou une expression régulière pour filtrer les fichiers de test exécutables. -
[cas_de_test]
: Expression régulière optionnelle pour filtrer les cas de test qui seront exécutés à partir du fichier ou des fichiers de test. La valeur de ce paramètre est passée à l'option--grep
de la commandenpx playwright test
. Pour les détails, consulter la documentation de Playwright.
Expressions régulières
Aussi bien [fichier_de_test]
que [cas_de_test]
peuvent être des expressions régulières.
Ces expressions sont passées à la commande npx playwright test
: si elles sont utilisées,
elles doivent être échappées en fonction de l'environnement d'exécution. Le plus souvent, il
suffit de mettre entre guillemets [fichier_de_test]
(voir l'exemple 3 ci-dessous). Si [cas_de_test]
est entre guillemets, les guillemets extérieurs seront enlevés et l'expression remise entre
guillemets selon l'environnement utilisé.
Exemple 1 : my_repo/test/folder#testfile.spec.ts#tnr
exécute, depuis le fichier
testfile.spec.ts
, tous les tests qui contiennent la chaîne de caractères tnr
dans
leur titre, leurs tags ou leur paramètre test.describe
.
Exemple 2 : my_repo/test#ihm_test
exécute tous les cas de test de tous les fichiers
de test dont le nom commence par ihm_test
et qui se trouvent dans le dossier test
du dépôt Git.
Exemple 3 : my_repo#"(login|profile)/.*"#(view|edit)
exécute tous les tests qui contiennent
la chaîne de caractères view
ou edit
depuis les dossiers login
ou profile
du dépôt Git.
Détermination du résultat du cas de test
Si le paramètre [cas_de_test]
n'est pas spécifié, ou s'il est une expression régulière qui sélectionne
plusieurs cas de test, le résultat du cas de test Squash TM est calculé en prenant en compte les résultats
individuels de chaque test exécuté :
- 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 Playwright 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 playwright/params
.
Les paramètres sont disponibles en tant que variables d'environnement et peuvent être récupérés grâce à la syntaxe process.env.VAR
(voir la documentation de Playwright pour les détails).
Exemple
Ci-dessous un exemple de fichier de test Playwright 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 npx playwright test
en utilisant la variable d'environnement PLAYWRIGHT_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 npx playwright test
utilisée pour
lancer un test :
export PW_TEST_HTML_REPORT_OPEN=never \
export PLAYWRIGHT_HTML_REPORT=playwright-report \
export PLAYWRIGHT_JUNIT_OUTPUT_NAME=pw_junit_report.xml \
npx playwright test {project}[/{directory}]/{specfile} \
--grep="{grep}" \
--reporter=html,junit \
$PLAYWRIGHT_EXTRA_OPTIONS \
Il faut éviter de passer, via la variable d'environnement PLAYWRIGHT_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
PLAYWRIGHT_EXTRA_OPTIONS
pour les tests exécutés dans un environnement d'exécution Linux.
Définition du chemin de fichier de configuration
Par défaut, le test runner de Playwright exécute les tests depuis le dossier parent
du [dépôt]
Git et ne prend pas en compte les fichiers de configuration
à l'intérieur du projet. Il est possible de spécifier un fichier de configuration
en passant à la variable d'environnement PLAYWRIGHT_EXTRA_OPTIONS
le paramètre
--config {chemin_du_fichier_de_configuration}
.
Paramètre testDir
Le paramètre testDir
du fichier de configuration peut limiter le périmètre d'exécution
des tests. S'il diffère du paramètre [dossier]
de la référence de test, il est possible
que les tests ne s'exécutent pas.
Versions supportées
Squash a été validé avec Playwright 1.41. Toute version récente devrait fonctionner.