Katalon
Note
Ce plugin est disponible uniquement dans la version Ultimate de Squash.
Ce plugin fournit des fonctions qui gèrent les tests Katalon. Il a été validé avec Katalon 8.2.0 et devrait fonctionner avec toute version récente de Katalon.
Il peut être utilisé directement dans un workflow, ou indirectement via des générateurs (comme ceux donnant accès aux gestionnaires de cas de tests).
Une installation Katalon fonctionnelle doit être disponible dans les environnements d'exécution ciblés.
Les fonctions ont un préfixe de catégorie katalon
.
Fonctions
katalon/katalon@v1
Permet d'exécuter une collection ou une suite de test Katalon.
Les entrants obligatoires sont les suivants :
- Pour l'exécution d'une collection :
project
ettest-suite-collection-path
. - Pour l'exécution d'une suite de test :
project
,test-suite-path
, etbrowser-type
.
Variables d'environnement
Les variables d'environnement suivantes doivent être définie dans l'environnement d'exécution :
KATALON_API_KEY
= clé de licence API de Katalon API, par exemple :123a4567-123a-1ab2-1234-1234567890ab
.KATALON_ORG_ID
= Organisation ID chez Katalon, par exemple :123456
.
De plus, lors de l'exécution d'une suite de test sans avoir défini l'entrant browser-type
, il est nécessaire de spécifier la variable d'environnement suivante :
KATALON_BROWSER_TYPE
= Type de navigateur par défaut, par exemple:Web Service
.
Entrants
La fonction a les entrants suivants :
-
project
(obligatoire)Spécifie la localisation du projet (où se situe le fichier
.prj
). Il faut préciser le chemin depuis le repertoire racine de l'espace de travail. (-projectPath={path}
) -
test-suite-collection-path
(facultatif)Spécifie le fichier de collection (sans l'extension
.tsc
). Il faut préciser le chemin relatif par rapport au projet. (-testSuiteCollectionPath={path}
) -
test-suite-path
(facultatif)Spécifie le fichier de suite de test (sans l'extension
.ts
). Il faut préciser le chemin relatif par rapport au projet. (-testSuitePath={path}
) -
browser-type
(facultatif)Spécifie le type de navigateur utilisé pour exécuter la suite de test. (
-browserType={browser}
) (Web Service
est utilisé pour exécuter des tests de WebService.)- Valeurs possibles de
{browser}
pour Linux :Web Service
Firefox
Chrome
Remote
- Valeurs possibles de
{browser}
pour les autres systèmes d'exploitation :Web Service
Firefox
Chrome
IE
Edge
Edge (Chromium)
Safari
Remote
Android
iOS
Cette option est aussi utilisable pour exécuter d'une collection. Dans ce cas, le navigateur spécifié sera utilisé pour l'intégralité des suites de tests de la collection.
- Valeurs possibles de
-
execution-profile
(facultatif)Spécifie le profil utilisé pour l'exécution des suites de test. (
-executionProfile={profile_name}
)
Cette option est aussi utilisable pour exécuter d'une collection. Dans ce cas, le navigateur spécifié sera utilisé pour l'intégralité des suites de tests de la collection. -
retry
(facultatif)Spécifie le nombre de tentatives d'exécutions de suite de test jusqu'à ce que la suite de test passe en succès. (
-retry={number of retry times}
)Valoriser
{number of retry times}
à 0 pour qu'il n'y ait pas de nouvelle tentative en cas d'échec.Par défaut, le
retry
est à 0. -
status-delay
(facultatif)Le système met à jour le statut d'exécution de la suite de test après le délai spécifié (en secondes). (
-statusDelay={seconds}
) -
send-mail
(facultatif)Spécifie l'adresse mail à laquelle les rapports doivent être envoyés. Si aucune adresse mail n'est renseignée, les rapports ne seront pas envoyés. (
-sendMail={e-mail address}
) -
report-folder
(facultatif)Spécifie le répertoire de stockage des rapports. Il est possible d'utiliser un chemin absolu, ou relatif qui sera dans ce cas basé sur la localisation du projet. (
-reportFolder={path}
)
Par défaut,report-folder
est valorisé àKatalon_reports
. -
report-file-name
(facultatif)Spécifie le nom des rapports (
.html
,.csv
,.log
). (-reportFileName={name}
)
S'il n'est pas renseigné, le système utilise le nomreport
(report.html
,report.csv
,report.log
). -
extra-options
(facultatif)Toutes les autres options supplémentaires.
Rapports
La fonction génère les rapports suivants :
-
JUnit_Report.xml
Un rapport Surefire (XML).
Généré quandtest-suite-collection-path
outest-suite-path
est défini.Le rapport Surefire a un content-type
application/vnd.opentestfactory.katalon-surefire+xml
. -
{report-folder}.tar
Une archive TAR.
Contient tous les fichiers présents dans le répertoire de rapports.Katalon_reports.tar
par défaut ou{report-folder}.tar
sireport-folder
est défini.Généré quand
test-suite-collection-path
outest-suite-path
est défini. -
{report-file-name}.html
Un rapport au format HTML.
report.html
par défaut ou{report-file-name}.html
sireport-file-name
est défini.Généré quand
test-suite-path
est défini. -
{report-file-name}.csv
Un rapport au format CSV.
report.csv
par défaut ou{report-file-name}.csv
sireport-file-name
est défini.Généré quand
test-suite-path
est défini.
Exemples
Exécuter une collection de suite de tests dans un projet avec les entrants obligatoires suivants :
- uses: katalon/katalon@v1
with:
# Project location (include `.prj` file), from the root folder of the workspace
project: path/to/project.prj
# Test suite collection file (without extension `.tsc`)
test-suite-collection-path: path/to/test_suite_collection_file
Exécuter une collection de suite de tests dans un projet avec les autres entrants disponibles :
- uses: katalon/katalon@v1
with:
# Project location (include `.prj` file), from the root folder of the workspace
project: path/to/project.prj
# Test suite collection file (without extension `.tsc`)
test-suite-collection-path: path/to/test_suite_collection_file
# Web Service|Firefox|Chrome|Remote|IE|Edge|Edge (Chromium)|Safari|Android|iOS
browser-type: Edge (Chromium)
# Execution profile that a test suite or a test suite collection executes with
execution-profile: profile42
# number of retry times; 0 for no retry
retry: 1
# number in seconds
status-delay: 0
# e-mail address for receiving report files
send-mail: nobody@example.com
# Destination folder for saving report files
report-folder: path/to/report_folder
# Name for report files (`.html`, `.csv`, `.log`)
report-file-name: my_report
# (all other options)
extra-options: additional_options
Exécuter une suite de test dans un projet avec les entrants obligatoires :
- uses: katalon/katalon@v1
with:
# Project location (include `.prj` file), from the root folder of the workspace
project: path/to/project.prj
# Test suite file (without extension `.ts`)
test-suite-path: path/to/test_suite_file
# Web Service|Firefox|Chrome|Remote|IE|Edge|Edge (Chromium)|Safari|Android|iOS
browser-type: Web Service
Exécuter une suite de test dans un projet avec les autres entrants disponibles :
- uses: katalon/katalon@v1
with:
# Project location (include `.prj` file), from the root folder of the workspace
project: path/to/project.prj
# Test suite file (without extension `.ts`)
test-suite-path: path/to/test_suite_file
# Web Service|Firefox|Chrome|Remote|IE|Edge|Edge (Chromium)|Safari|Android|iOS
browser-type: iOS
# Execution profile that a test suite or a test suite collection executes with
execution-profile: acceptance
# number of retry times; 0 for no retry
retry: 0
# (number in seconds)
status-delay: 12
# e-mail address for receiving report files
send-mail: me@example.com
# Destination folder for saving report files
report-folder: path/to/report_folder
# Name for report files (`.html`, `.csv`, `.log`)
report-file-name: summary
# (all other options)
extra-options: additional_options
katalon/execute@v1
Une fonction execute
destinée à être utilisée par les générateurs.
Info
Le résultat de chaque cas de test squash TM exécuté est calculé en prenant en compte les résultats individuels de chaque cas de test de la collection ou de la suite de test du projet Katalon (.prj
), de la manière suivante :
- Si au moins un test a un statut Error (en cas de problème technique), le statut de l'exécution sera Bloqué.
- Si au moins un test échoue fonctionnellement et qu'il n'y a aucun statut Error, le statut de l'exécution sera Échec.
- Si tous les tests réussissent, le statut de l'exécution sera Succès.
Variables d'environnement
Les variables d'environnement suivantes doivent être définie dans l'environnement d'exécution :
KATALON_API_KEY
= clé de licence API de Katalon API, par exemple :123a4567-123a-1ab2-1234-1234567890ab
.KATALON_ORG_ID
= Organisation ID chez Katalon, par exemple :123456
.
De plus, lors de l'exécution d'une suite de test sans avoir défini l'entrant browser-type
, il est nécessaire de spécifier la variable d'environnement suivante :
KATALON_BROWSER_TYPE
= Type de navigateur par défaut, par exemple:Web Service
.
Enfin, la variable d'environnement suivante peut facultativement être définie :
KATALON_EXECUTION_PROFILE
= Profil d'exécution à utiliser, par exemple : "production".
Format de la référence de test
Le format de la référence de test utilisé par katalon/execute@v1
est le suivant :
{project}/{prjfile}#{collection}#{suite}#[{testcase}]
Avec:
{project}
(obligatoire): nom du projet sur le dépôt de code source.{prjfile}
(obligatoire): chemin vers le nom du fichier du projet Katalon (avec l'extension.prj
), depuis la racine du projet.{collection}
(exclusif): chemin relatif de la collection, à partir du dossier du projet. Ce paramètre est exclusif par rapport à{suite}
.{suite}
(exclusif): chemin relatif de la collection, à partir du dossier du projet. Ce paramètre est exclusif par rapport à{collection}
.{testcase}
(facultatif): chemin relatif du cas de test à analyser, à partir du dossier du projet, afin d'obtenir un résultat spécifique.
Référence et exécution de tests automatisés
Le chemin relatif du cas de test à analyser ({testcase}
dans la référence de test)n'a aucun impact sur l'exécution, mais uniquement sur le calcul du résultat de test.
En effet, même en spécifiant un cas de test précis, tous les cas de tests de la collection ou de la suite de test vont être exécutés (par exemple, si plusieurs cas de test Squash TM pointent vers la même collection ou la même suite de test, mais vers différents cas de test, tous ces cas de test seront exécutés plusieurs fois).
Les rapports de test incluent les requêtes exécutées. Mais seuls les statuts Error / Failed / Success correspondant au cas de test spécifique seront utilisés pour déterminer le résultat du cas de test.
Choix exclusif entre collection ou suite de test
Les sections {collection}
et {suite}
sont mutuellement exclusives : soit la collection soit la suite de test doit être renseignée, mais pas les deux.
En définitive, la référence de test doit contenir 3 caractères #
.
Entrants
La fonction a les entrants suivants :
-
test
(obligatoire)La référence de test.
Rapports
La fonction génère the following reports:
-
JUnit_Report.xml
Un rapport Surefire (XML).
Généré quand une collection ou une suite de test est exécutée.Le rapport Surefire a le content-type
application/vnd.opentestfactory.katalon-surefire+xml
. -
Katalon_reports.tar
Une archive TAR.
Contient tous les fichiers présents dans le répertoire de rapports.Généré quand une collection ou une suite de test est exécutée.
-
report.html
Rapport au format HTML.
Généré quand une suite de test est exécutée. -
report.csv
Rapport au format CSV.
Généré quand une suite de test est exécutée.
Exemples
Exécuter une collection dans le projet project.prj
:
- uses: katalon/execute@v1
with:
test: repo/path/to/project.prj#relative_path/to/testSuiteCollection##relative_path/to/testCase
Exécuter une suite de test dans le projet project.prj
:
- uses: katalon/execute@v1
with:
test: repo/path/to/project.prj##relative_path/to/testSuite#relative_path/to/testCase
katalon/params@v1
Une fonction 'params' destinée à être utilisée par les générateurs.
Ordre de priorité en cas de variables homonymes
La même variable peut être définie à différents endroits. Dans ce cas, quand le test est exécuté avec l'action katalon/execute@v1
et que ce test utilise la variable, l'ordre de priorité est le suivant (par ordre décroissant):
- Paramètre de test défini par l'action
katalon/params@v1
, - Paramètre global défini par l'action
katalon/params@v1
, - Variable globale issue du profil défini par la variable d'environnement
KATALON_EXECUTION_PROFILE
, - Variable globale issue du profil par défaut.
Entrants
La fonction a les entrants suivants :
-
data
(obligatoire)Les données utilisée pour les tests automatisés.
-
format
(obligatoire)Le format à utiliser pour les données des tests automatisés.
Exemple
- uses: katalon/params@v1
with:
data:
global:
key1: value1
key2: value2
test:
key1: value3
key3: value4
format: format
La valeur du format
doit être SQUASHTM_FORMAT
(tm.squashtest.org/params@v1
).
data
peut avoir 2 clés :
global
pour les paramètres globaux.test
pour les paramètres de test.
Utilisé via l'inception
Pour plus d'information sur ce qu'est l'inception, merci de consulter "Inception".
Préchargez l'environnement d'exécution avec à minima les données du rapport d'exécution de tests.
Exemple
metadata:
name: Katalon Inception
resources:
files:
- report1
jobs:
my_specific_job:
runs-on: inception
steps:
- uses: actions/prepare-inception@v1
with:
JUnit_Report.xml: ${{ resources.files.report1 }}
- uses: katalon/execute@v1
with:
test: katalonProject/src/project.prj##NoParam#Test Cases/RobotOK
Vous pouvez utiliser la commande suivante pour lancer l'exécution :
opentf-ctl \
run workflow my_workflow.yaml \
-f report1=output_1.xml
opentf-ctl ^
run workflow my_workflow.yaml ^
-f report1=output_1.xml
opentf-ctl `
run workflow my_workflow.yaml `
-f report1=output_1.xml
Configuration
Des hooks peuvent être définis pour les fonctions fournies. Cela peut être fait dans les définitions du workflow ou directement au niveau de l'orchestrateur afin qu'ils s'appliquent à tous les workflows.
La configuration au niveau de l'orchestrateur se fait en passant la variable d'environnement KATALON_PROVIDER_HOOKS
ou en ajoutant le hook dans le fichier de configuration /app/conf/katalon.yaml
.
Pour plus d'informations, merci de consulter la documentation de l'OpenTestFactory.