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 tests 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 tests :
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 tests 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 répertoire 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 tests (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 tests. (
-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 tests jusqu'à ce que la suite de tests 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 tests 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ée 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 tests 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 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 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 tests 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Ă©finies 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 tests 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 tests 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 tests, 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 tests
Les sections {collection}
et {suite}
sont mutuellement exclusives : soit la collection, soit la suite de tests, doit ĂȘtre renseignĂ©e, mais pas les deux.
En définitive, la référence de test doit contenir trois caractÚres #
.
Entrants
La fonction a les entrants suivants :
-
test
(obligatoire)La référence de test.
Rapports
La fonction génÚre les rapports suivants :
-
JUnit_Report.xml
Un rapport Surefire (XML).
Généré quand une collection ou une suite de tests 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ée quand une collection ou une suite de tests est exécutée.
-
report.html
Rapport au format HTML.
Généré quand une suite de tests est exécutée. -
report.csv
Rapport au format CSV.
Généré quand une suite de tests 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 tests 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 deux clés :
global
pour les paramĂštres globaux ;test
pour les paramĂštres de test.
Utilisation 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.