Aller au contenu

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 et test-suite-collection-path.
  • Pour l'exécution d'une suite de test : project, test-suite-path, et browser-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.

  • 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 nom report (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é quand test-suite-collection-path ou test-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 si report-folder est défini.

    Généré quand test-suite-collection-path ou test-suite-path est défini.

  • {report-file-name}.html

    Un rapport au format HTML.

    report.html par défaut ou {report-file-name}.html si report-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 si report-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):

  1. Paramètre de test défini par l'action katalon/params@v1,
  2. Paramètre global défini par l'action katalon/params@v1,
  3. Variable globale issue du profil défini par la variable d'environnement KATALON_EXECUTION_PROFILE,
  4. 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

my_workflow.yaml
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.