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 tests 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 tests : 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 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.

  • 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 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ée 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 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):

  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 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

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.