Aller au contenu

Guide d'installation

Sécurité

En raison de problèmes de sécurité, il est fortement conseillé d'utiliser Squash TM 1.22.9 (ou 1.X.Y postérieure), 2.2.0 (ou 2.X.Y postérieure), ou 3.0.0 (ou 3.X.Y postérieure).

Cette page décrit comment installer un à un les composants de Squash AUTOM.
† indique un composant commun à Squash AUTOM et Squash DEVOPS. Il ne doit être installé qu'une seule fois pour les deux.

Diagrammes

Vue d'ensemble des composants de Squash AUTOM et Squash DEVOPS

Schéma d'architecture

Interconnexions

Diagramme de l'ensemble des interconnexions

Squash Orchestrator†

Vignette installation orchestrateur

Installation

L'installation de Squash Orchestrator consiste en le déploiement d'une image Docker "all-in-one". Elle contient l'ensemble des services nécessaires de l'OpenTestFactory Orchestrator et des services spécifiques Squash.

Pour récupérer la dernière version de l'image de Squash Orchestrator, la commande suivante est à exécuter :

docker pull squashtest/squash-orchestrator:latest

Les préconisations pour dimensionner le conteneur Docker sont :

  • 2 CPU
  • RAM : 5 Go (8 Go recommandé)
  • disque : prévoir la capacité de stocker les rapports d’exécution et leurs attachements pour une heure d'utilisation

Accessibilité de l'instance Squash TM

Vérifier que l'instance de Squash TM est accessible depuis Squash Orchestrator. Pour cela se mettre sur l'hôte Docker et exécuter la commande (en remplaçant https://squashtm.example.com/squash par l'URL de votre instance) :

curl https://squashtm.example.com/squash/isSquashAlive
La réponse doit être :
Squash is Alive!
Si ce n'est pas le cas, résoudre le problème avec les administrateurs de votre réseau.

Usage

Configuration de l'image

La commande suivante permet de démarrer Squash Orchestrator en lui permettant d'utiliser un environnement d'exécution existant, avec auto-génération d'une clé approuvée (ce qui n'est pas recommandé dans un environnement de production, mais elle permet de mettre rapidement en place un orchestrateur pour expérimenter avec).

docker run -d \
         --name orchestrator \
         -p 7774:7774 \
         -p 7775:7775 \
         -p 7776:7776 \
         -p 38368:38368 \
         -p 24368:24368 \
         -p 12312:12312 \
         -e SSH_CHANNEL_HOST=the_environment_ip_or_hostname \
         -e SSH_CHANNEL_USER=user \
         -e SSH_CHANNEL_PASSWORD=secret \
         -e SSH_CHANNEL_TAGS=ssh,linux,robotframework \
          squashtest/squash-orchestrator:latest

Cette commande expose les services suivants sur les ports correspondants :

  • receptionnist (port 7774)
  • observer (port 7775)
  • killswitch (port 7776)
  • eventbus (port 38368)
  • agent channel (port 24368)
  • quality gate (port 12312)

De plus, si vous voulez déclarez des agents, le port 24368 doit être exposé. Si vous voulez utiliser la quality gate, le port 12312 doit être exposé.

Pour les détails sur le déploiement de Squash Orchestrator, vous pouvez vous reporter à la documentation de l'OpenTestFactory qui sert de base au Squash Orchestrator (le déploiement des deux orchestrateurs est similaire). Cette documentation détaille aussi les cas spécifiques d'un déploiement avec docker-compose ou avec Kubernetes.

Lancement de l'image en mode Premium

Si vous disposez d'une licence Squash AUTOM Premium et avez déployé la version Premium du plugin Squash TM Result Publisher, vous devez démarrer Squash Orchestrator en mode Premium pour profiter du comportement Premium pour la remontée de résultats vers Squash TM. Pour cela, il faut ajouter le paramètre suivant dans la commande de démarrage de Squash Orchestrator : -e SQUASH_LICENCE_TYPE=premium.

Outils de l'orchestrateur†

Vignette installation outils

Installation

Les outils de l'orchestrateur sont destinés à simplifier l'exploitation de ce dernier. Ils peuvent être installés sur n'importe quelle machine d'où on veut pouvoir administrer l'orchestrateur.
Ils requièrent Python 3.8 ou supérieur. Ils fonctionnent sur un environnement Linux, macOS ou Windows.

Afin d'installer ces outils depuis PyPI, la commande suivante est à exécuter :

pip install --upgrade opentf-tools

Aperçu des capacités des outils

  • opentf-ready attend que l'orchestrateur soit prêt à accepter les workflows.

  • opentf-done attend que l'orchestrateur puisse être arrêté en toute sécurité (c'est-à-dire qu'il n'a plus de tâches en attente).

  • openf-ctl peut être utilisé pour

    • démarrer / suivre / arrêter un workflow
    • générer un jeton signé
    • lister les agents
    • générer / modifier un fichier de configuration

Détails

Une description complète des outils est disponible dans la documentation d'OpenTestFactory.

Micro-services exclusifs à Squash AUTOM Premium

Vignette installation micro-services premium

Installation

Afin d'installer l'image Docker des services exclusifs à Squash AUTOM Premium, vous devez récupérer l'image compressée auprès du service support Squash, puis exécuter la commande suivante :

docker load -i squash-autom-premium-3.3.0.tar.gz

Les préconisations pour dimensionner le conteneur Docker sont :

  • 1 CPU
  • RAM : 2 Go (3 Go recommandé)
  • disque : prévoir la capacité de stocker les rapports d’exécution et leurs attachements pour une heure d'utilisation

Usage

Pour exécuter cette image Docker, la commande suivante est à exécuter :

docker run -e BUS_HOST=<IP ou nom DNS du bus> \
           -e BUS_PORT=<port> -e BUS_TOKEN=<token JWT> \
           -e EXTERNAL_HOSTNAME=<IP exposée des micro-services> \
           --volume /chemin/vers/clefs/publiques:/etc/squashtf/ \
           --volume /chemin/vers/dossier/temporaire:/tmp/ \
           squashtest/squash-autom-premium:3.3.0

avec :

  • BUS_HOST (obligatoire) : l'adresse IP ou le nom DNS du service EventBus du Squash Orchestrator avec qui les micro-services communiquent.
  • BUS_PORT (obligatoire) : port du service EventBus du Squash Orchestrator avec qui les micro-services communiquent.
  • BUS_TOKEN (facultatif) : token JWT accepté par le service EventBus du Squash Orchestrator avec qui les micro-services communiquent.
  • EXTERNAL_HOSTNAME (facultatif) : l'adresse IP ou le nom DNS des micro-services de l'image Docker des services exclusifs.
  • --volume /etc/squashtf/ : volume à monter vers un ensemble de clés publiques acceptées pour la validité de tokens JWT.
    Il est à mettre en place si une validation de token JWT est nécessaire pour l'échange de messages entre micro-services.
  • --volume /tmp/ : volume à monter vers un dossier partagé avec Squash Orchestrator qui accueillera temporairement des fichiers générés lors de l'exécution

Agent OpenTestFactory†

Vignette installation agent

Installation

L'agent OpenTestFactory est une application Python à installer sur un environnement d'exécution de tests automatisés. Il requiert Python 3.7 ou supérieur. Il fonctionne sur un environnement Linux, macOS ou Windows.

L'agent se présente comme un simple script. Il possède seulement une dépendance, vers la librairie Python requests (elle sera installée si elle n'est pas déjà présente sur l'environnement d'exécution).

Afin d'installer l'agent depuis PyPI, la commande suivante est à exécuter :

pip install --upgrade opentf-agent

Vous pouvez vérifier l'installation en exécutant la commande suivante :

opentf-agent --help

Usage

Résumé

$ opentf-agent --help
usage: opentf-agent [-h] --tags TAGS --host HOST [--port PORT] [--path_prefix PATH_PREFIX] [--token TOKEN] [--encoding ENCODING] [--script_path SCRIPT_PATH] [--workspace_dir WORKSPACE_DIR] [--name NAME] [--polling_delay POLLING_DELAY] [--liveness_probe LIVENESS_PROBE] [--retry RETRY] [--debug]

OpenTestFactory Agent

optional arguments:
  -h, --help            show this help message and exit
  --tags TAGS           a comma-separated list of tags (e.g. windows,robotframework)
  --host HOST           target host with protocol (e.g. https://example.local)
  --port PORT           target port (default to 24368)
  --path_prefix PATH_PREFIX
                        target context path (default to no context path)
  --token TOKEN         token
  --encoding ENCODING   encoding on the console side (defaults to utf-8)
  --script_path SCRIPT_PATH
                        where to put temporary files (defaults to current directory)
  --workspace_dir WORKSPACE_DIR
                        where to put workspaces (defaults to current directory)
  --name NAME           agent name (defaults to "test agent")
  --polling_delay POLLING_DELAY
                        polling delay in seconds (default to 5)
  --liveness_probe LIVENESS_PROBE
                        liveness probe in seconds (default to 300 seconds)
  --retry RETRY         how many time to try joining host (default to 5,
                        0 = try forever)
  --debug               whether to log debug informations.

Exemple

En considérant qu'un Squash Orchestrator est lancé sur orchestrator.example.com, avec un jeton stocké dans la variable d'environnement TOKEN, la commande suivante enregistre l'environnement d'exécution Windows et recevra les commandes ciblant windows et/ou robotframework :

chcp 65001
opentf-agent --tags windows,robotframework --host http://orchestrator.example.com/ --token %TOKEN%

L'agent contactera l'orchestrateur toutes les 5 secondes, et exécutera les commandes réceptionnées.
La commande chcp configure la console en Unicode. Il s'agit d'une spécificité Windows. Cette configuration peut être nécessaire suivant le framework de test disponible sur l'environnement d'exécution.

Détails

Une description complète de l'agent est disponible dans la documentation d'OpenTestFactory.

Environnements de test†

Vignette installation environnement de test

Certaines technologies de test nécessitent que des composants particuliers soient installés dans l'environnement de test, ceux-ci sont indiqués dans les pages décrivant les spécificités de chaque technologie.

Plugins Squash TM

Vignette installation des Plugins TM pour Squash AUTOM

Installation

Pour l’installation des plugins Squash TM, merci de vous reporter au protocole d’installation d’un plugin Squash TM.

Plugin Version de Squash TM Version compatible du plugin Télécharger la dernière version Community
Result Publisher† 1.22.9, ou 1.X.Y postérieure 1.1.X 1.1.0 : .tar.gz ou .zip
2.2.0, ou 2.X.Y postérieure 2.2.X 2.2.0 : .tar.gz ou .zip
3.0.0, ou 3.X.Y postérieure 3.0.X 3.0.0 : .tar.gz ou .zip
Squash AUTOM 1.22.9, ou 1.X.Y postérieure 1.1.X 1.1.0 : .tar.gz ou .zip
2.2.0, ou 2.X.Y postérieure 2.2.X 2.2.0 : .tar.gz ou .zip
3.0.0, ou 3.X.Y postérieure 3.0.X 3.0.0 : .tar.gz ou .zip
Git Connector 1.22.9, ou 1.X.Y postérieure 1.0.X 1.0.3: .tar.gz or .zip
2.2.0, ou 2.X.Y postérieure 2.1.X 2.1.0: .tar.gz or .zip
3.0.0, ou 3.X.Y postérieure 3.0.X 3.0.0: .tar.gz or .zip
Actions Library 1.22.9, ou 1.X.Y postérieure 1.0.X pas de version Community
2.2.0, ou 2.X.Y postérieure 2.0.X
3.0.0, ou 3.X.Y postérieure 3.0.X
Workflow Automatisation Jira 1.22.9, ou 1.X.Y postérieure 1.0.X pas de version Community
2.2.0, ou 2.X.Y postérieure 2.0.X
3.0.0, ou 3.X.Y postérieure 3.0.X

Configuration de Squash TM

Vignette configuration TM

Attention

Squash AUTOM nécessite que l'URL publique de Squash TM soit définie (voir la documentation de Squash TM).

Déclaration du serveur Squash Orchestrator

Afin de lancer un plan d'exécution manuellement depuis Squash TM, il est nécessaire de déclarer le serveur Squash Orchestrator qui exécutera les tests automatisés dans les environnements adaptés.
Cette déclaration se fait dans la section Serveurs d'exécution automatisée de l'espace Administration :

Déclaration du serveur d'automatisation

Déclaration du serveur d'automatisation

  • Nom : Le nom du serveur tel qu'il apparaîtra dans l'espace Cas de test.

  • Type : Sélectionnez squashAutom dans la liste déroulante.

  • Url : L'adresse du service Receptionist de Squash Orchestrator.

Attention

Le service bus d'évènements de Squash Orchestrator doit impérativement être accessible à la même URL que le service Receptionist mais sur le port 38368.

Une fois le serveur créé, vous pouvez préciser un token servant pour l'authentification au serveur.

Token

Token

Focus

La présence d'un token est obligatoire pour la bonne exécution de tests automatisés depuis Squash TM.
Dans le cas où l'authentification au serveur d'automatisation n'est pas requise par ce dernier, il faut quand même renseigner une valeur quelconque de token dans Squash TM

Configuration du projet Squash TM

Une fois un serveur d'automatisation déclaré, il faut le lier à un projet Squash TM afin qu'il soit utilisé pour l'exécution des cas de test automatisés du projet.

La marche à suivre est la suivante :

  1. Allez dans l'espace [Administration] puis cliquez sur [Projets]

  2. Sélectionnez un projet existant puis allez jusqu'à la section Automatisation

    Configuration de l'automatisation d'un projet

  3. Cliquez sur Pas de serveur, une liste déroulante contenant les serveurs d'automatisation déclarés apparaît

    Configuration de l'automatisation d'un projet

  4. Sélectionnez le serveur et appuyer sur [Confirmer]

  1. Allez dans l'espace [Administration] puis cliquez sur [Projets]

  2. Sélectionnez un projet existant puis allez jusqu'à la section Automatisation

    Configuration de l'automatisation d'un projet

  3. Cliquez sur Pas de serveur, une liste déroulante contenant les serveurs d'automatisation déclarés apparaît

    Configuration de l'automatisation d'un projet

  4. Sélectionnez le serveur et confirmez la sélection

Retour en haut de la page