Aller au contenu

Gérer les serveurs d'exécution automatisée

Ajouter, modifier et supprimer un serveur d'exécution automatisée

Squash TM peut se connecter avec deux types de serveurs d'exécution automatisée différents : Squash Orchestrator pour l'automatisation des tests avec Squash Orchestrator et Jenkins pour l'automatisation des tests avec Squash TF.

L'ajout et la configuration d'un serveur d'exécution se fait depuis le menu Serveurs>Serveurs d'exécution automatisée de l'espace Administration.

Gestion des serveurs d'exécution automatisée

À la création d'un serveur, le nom, le type et l'URL du serveur (la plus courte possible) doivent obligatoirement être renseignés.

Ajout d'un serveur d'exécution automatisée

Attention

La suppression d'un serveur d'exécution automatisée associé à au moins un projet ou une exécution entraîne la suppression des liens vers les rapports de résultat et d'exécution mais aussi l'association des scripts d'automatisation aux cas de test. Les exécutions des cas de test automatisés restent néanmoins accessibles. Attention, cette action n'est pas réversible.

Configurer un serveur d'exécution automatisée Squash Orchestrator

Configurer la connexion à Squash Orchestrator

Pour que Squash TM communique avec Squash Orchestrator, il est nécessaire de configurer les URL suivantes :

  • URL du receptionist : il s'agit de l'URL saisie à la création du serveur. Elle est utilisée pour lancer l'exécution des tests automatisés avec Squash Orchestrator ;
  • URL de l'observer : elle permet de récupérer les informations de Squash Orchestrator. Si cette URL n'est pas configurée dans Squash TM, elle reprend la valeur de l'URL du receptionist ;
  • URL de l'event bus : l'event bus permet le passage d'informations de souscription et de publication à différents services de Squash Orchestrator. Si cette URL n'est pas configurée dans Squash TM, elle reprend la valeur de l'URL du receptionist ;
  • URL du killswitch : le killswitch permet de stopper un workflow en cours d'exécution. Si cette URL n'est pas configurée dans SquashTM, elle reprend la valeur de l'URL du receptionist.

Il existe deux approches pour définir ces URL au niveau de Squash Orchestrator :

  • Squash Orchestrator est installé derrière un reverse proxy : les URL du receptionist, de l'observer, de l'event bus, et du killswitch sont identiques et communiquent avec Squash TM via le même port.
    Exemple :
    • URL du receptionist : https://monsquashorchestrator.com ;
    • URL de l'observer : https://monsquashorchestrator.com ;
    • URL de l'event bus : https://monsquashorchestrator.com ;
    • URL du killswitch : https://monsquashorchestrator.com ;
  • Squash Orchestrator n'est pas installé derrière un reverse proxy : les URL du receptionist, de l'observer, de l'event bus et du killswitch sont différentes. Par défaut, les ports exposés sont le 7774 pour le receptionist, le 7775 pour l'observer, le 38368 pour l'event bus, et le 7776 pour le killswitch. La base de l'URL peut également différer.
    Exemple :
    • URL du receptionist : http://127.0.0.1:7774 ;
    • URL de l'observer : http://127.0.0.1:7775 ;
    • URL de l'event bus : http://127.0.0.1:38368 ;
    • URL du killswitch : http://127.0.0.1:7776.

En savoir plus

Pour en savoir plus sur l'installation et la configuration de Squash Orchestrator, consulter le guide d'installation.

Pour que le serveur soit fonctionnel, il faut également lui associer un token d'authentification généré depuis Squash Orchestrator.

Token

Info

Avec Squash Orchestrator, 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. Le token peut également être renseigné au niveau des projets.

Page de consultation d'un serveur d'exécution automatisée de type Squash Orchestrator

Page de consultation d'un serveur d'exécution automatisée

Dépannage - Accessibilité du Squash Orchestrator

Il est possible de vérifier que la connexion au Squash Orchestrator (depuis le serveur hébergeant Squash TM) fonctionne correctement en l'interrogeant, par exemple en demandant la liste des environnements d'exécution :

curl --header "Authorization: bearer <token>" <Observer URL>/channels

  • <token> est le token d'authentification au Squash Orchestrator.
  • <Observer URL>est l'URL de l'Observer.

La réponse devrait être de la forme :

{"apiVersion":"v1","code":200,"details":{"items":[{"apiVersion":"opentestfactory.org/v1alpha1","kind":"Channel","metadata":{"channelhandler_id":"907f43e2-b5a0-4594-a1c7-31f6bf667b38","name":"dummy.example.com","namespaces":"default"},"spec":{"tags":["ssh","linux"]},"status":{"currentJobID":null,"lastCommunicationTimestamp":"2022-09-16T12:18:01.640489","phase":"IDLE"}}]},"kind":"Status","message":"Known channels","metadata":{},"reason":"OK","status":"Success"} 


L'image docker de Squash TM ne contient pas curl. Vous pouvez utiliser à la place wget:

 docker exec <Squash TM container> wget --header="Authorization: bearer <token>" -O - <Observer URL>/channels

  • <Squash TM container> est le nom du container.
  • <token> est le token d'authentification au Squash Orchestrator.
  • <Observer URL>est l'URL de l'Observer.

La réponse devrait être de la forme :

Connecting to 172.17.0.1:7775 (172.17.0.1:7775)
writing to stdout
-                    100% |********************************|   464  0:00:00 ETA
written to stdout
{"apiVersion":"v1","code":200,"details":{"items":[{"apiVersion":"opentestfactory.org/v1alpha1","kind":"Channel","metadata":{"channelhandler_id":"907f43e2-b5a0-4594-a1c7-31f6bf667b38","name":"dummy.example.com","namespaces":"default"},"spec":{"tags":["ssh","linux"]},"status":{"currentJobID":null,"lastCommunicationTimestamp":"2022-09-16T12:18:01.640489","phase":"IDLE"}}]},"kind":"Status","message":"Known channels","metadata":{},"reason":"OK","status":"Success"}

Définir un environnement d'exécution par défaut

Squash Orchestrator permet de déclarer des environnements d'exécution par le biais de ssh ou d'un agent.
Chaque environnement d'exécution est entre autres caractérisé par un ensemble de tags qui correspondent aux capacités qu'il offre : OS (obligatoire), navigateur ou autre.

En savoir plus

Pour plus d'informations sur la définition et les cas d'utilisation des tags d'environnements, consulter la page Exécuter un cas de test automatisé.

Le bloc Environnements recense les environnements disponibles ainsi que leurs tags. Il est utilisé pour définir des tags d'environnements par défaut.

Le tableau Environnements disponibles contient la liste des environnements ainsi que leurs tags. Ces informations sont renvoyées en temps réel par Squash Orchestrator. Les environnements affichés sont dépendants du jeton saisi dans le bloc Politique d'authentification et des permissions de ce jeton sur chaque environnement.

Le champ Tags d'environnements par défaut permet de filter le tableau Environnements disponibles : seuls les environnements possédant tous les tags définis seront listés.

À l'exécution des tests automatisés, ces tags sont proposés par défaut à l'utilisateur, tout en restant modifiables, pour cibler un environnement d'exécution correspondant aux valeurs sélectionnées.

En savoir plus

Le jeton et les tags d'environnement par défaut peuvent être également définis au niveau des projets liés au serveur Squash Orchestrator. Dans ce cas, ce sont ces valeurs qui sont proposées par défaut lors de l'exécution des tests automatisés. Pour en savoir plus, consulter la page Associer un serveur d'exécution automatisée Squash Orchestrator à un projet.

Associer des variables d'environnement et définir leur valeur par défaut

Les variables d'environnement permettent de définir de nombreux paramètres, tels que les identifiants, le type d'environnement (par exemple production ou pré-production), la branche Git, ou encore le navigateur de test.
Contrairement aux tags d'environnement qui sont renvoyés par Squash Orchestrator, les variables d'environnement sont à définir dans Squash.

En savoir plus

Pour plus d'informations sur les cas d'utilisation des variables d'environnement, consulter la page Exécuter un cas de test automatisé.

Le bloc Variables d'environnements permet d'associer des variables d'environnement préalablement créées dans l'espace Administration>Entités et de définir leur valeur par défaut.

Pour associer une variable d'environnement au serveur d'exécution automatisée, cliquer sur le bouton Ajouter et sélectionner la ou les variables d'environnement à associer.

Association variable environnement

Une fois la variable d'environnement associée, il est possible de lui attribuer une valeur par défaut, qui pourra être redéfinie si besoin au niveau projet. Selon le type de variable d'environnement, différents caractères sont autorisés.
À l'exécution des tests automatisés, cette valeur est proposée par défaut à l'utilisateur mais reste modifiable.

Bloc variables d'environnement

Pour dissocier une ou plusieurs variables d'environnement d'un serveur d'exécution automatisée, cliquer sur le bouton Dissocier.

Paramétrer une configuration additionnelle pour le serveur d'exécution automatisée

Attention

La gestion des configurations additionnelles est disponible avec la licence Ultimate de Squash et le plugin Squash TM Premium.

La configuration additionnelle permet d'envoyer directement depuis Squash des données à l'orchestrateur lors de la création d'un workflow (hooks, variables d'environnement, ressources…).

Pour se faire, un espace dédié à la déclaration d'un script YAML ou JSON offrant une coloration et une vérification syntaxique est disponible.

Cliquer dans le champ pour éditer un script. Plusieurs boutons apparaissent alors au-dessus du script permettant de :

  • confirmer les modifications effectuées. Il est également possible de les enregistrer en utilisant le raccourci clavier Ctrl+Alt+S ;
  • annuler les modifications effectuées depuis la dernière sauvegarde et de repasser en mode lecture seule ;
  • vérifier la syntaxe du script.

Script de la configuration additionnelle

Le bouton Aide affiche un volet d'aide à la rédaction des scripts de configuration additionnelle présentant des exemples de hooks, metadata, ressources et variables.

Aide à la rédaction des scripts

En savoir plus

Pour en savoir plus sur la configuration additionnelle d'un workflow, consulter la documentation de Squash Orchestrator.

Configurer un serveur d'exécution automatisée Squash TF

Lors de l'ajout d'un serveur d'exécution automatisée de type Jenkins, la case Autoriser le choix manuel du serveur d'exécution au lancement des tests automatisés (Implique que ce serveur est un serveur maître) permet de choisir le serveur d'exécution lors du lancement des tests dans le cas de l'utilisation d'un serveur maître avec des serveurs secondaires.

Pour que le serveur soit fonctionnel, il faut également lui associer des identifiants : login et mot de passe Jenkins valides.

Page de consultation d'un serveur d'exécution automatisée de type Jenkins

Page de consultation d'un serveur d'exécution automatisée