Aller au contenu

Configuration Squash TM — Guide de démarrage

Ce guide décrit les deux seules étapes manuelles à effectuer dans Squash TM après le premier déploiement automatique via perfshop-squash-seed.

Le seed configure automatiquement : projet, SCM GitLab, serveur d'automatisation, workflow et tags. Seul le jeton RSA du serveur d'automatisation doit être saisi manuellement.


Spécificité NAS Synology

Le NAS Synology DSM 7 ne supporte pas seccomp — aucun docker build n'est possible. Le docker-compose.yml (prod) utilise des images pré-buildées : - Images applicatives : depuis le registry GitLab - Image perfshop-test-runner : buildée sur Windows et chargée via docker load

# Build sur Windows
cd test-runner
docker build --no-cache -t perfshop-test-runner:latest .
docker save perfshop-test-runner:latest -o perfshop-test-runner-latest.tar

# Chargement sur NAS
docker load -i /volume4/docker-speed/perfshop/perfshop-test-runner-latest.tar
docker compose up -d perfshop-test-runner

Les compose docker-compose.desktop.yml et docker-compose.build.yml buildent tout localement — aucune image externe requise.


Prérequis

Les services suivants doivent être démarrés et sains :

docker compose ps | grep -E "testmgmt|orchestrator|test-runner"
Service Statut attendu
perfshop-testmgmt healthy
perfshop-orchestrator Up
perfshop-test-runner Up

URLs d'accès selon l'environnement

Environnement URL Squash TM
NAS prod https://perfshop-squash.perfshop.io/squash
Docker Desktop / build local http://localhost:9086/squash

Login : admin / perfshop


Ce que le seed configure automatiquement

Au premier docker compose up, perfshop-squash-seed configure :

  • ✅ Projet PerfShop QA
  • ✅ Serveur SCM PerfShop GitLab → dépôt perfshop-tests (branche main)
  • ✅ Serveur d'automatisation PerfShop Orchestrator avec le bon token RSA RS512
  • ✅ Workflow Squash simple, technologie Robot Framework, tags linux/robotframework

Étape 1 — Vérifier le serveur d'automatisation (obligatoire)

⚠️ Le seed configure le serveur d'automatisation avec le token RSA pré-configuré. Si le token a été perdu ou si la DB a été réinitialisée, il faut le re-saisir.

  1. AdministrationServeurs d'automatisationPerfShop Orchestrator
  2. Vérifier que le champ Jeton contient un token commençant par eyJhbGciOiJSUzUxMiI

Si le champ est vide ou contient un autre token :

Champ Valeur
Protocole d'authentification token authentication
Jeton Token RSA RS512 ci-dessous
eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzcXVhc2ggb3JjaGVzdHJhdG9yIiwic3ViIjoic3F1YXNoLXRtIn0.kGOOzOetXc8kRCekQnzwbZ58A38SWFI99fQUQ6ys_eWqH7o1iSfp9xEIdRMTAPOtqNxK8LFwMmj4DlSCT5bB-Hjdi1wP5lyW1408FYfV3pA-ut6mQAJkrOjiRHBs3WwasUhMhwoPvWm5R8u960XQQJbL7e_BWogZCGL6Oct-HMnjevLji1PF-33i15DMdTfhdg0dP-2N2ZeLoRWWnFXXJ0LxQ5Hx13qLZ2o94hlbCoIVAClMpgqvg-saHJY7ym0Zm8Qv76PJcKONuocek_nTRgmRl4XuEH8_WWZShtkPiDEOHZDSctUkjIAi460ka1U4_WZHCIjHtJkbStxDQ-TuXymB7MmwSuKFFMCYGP8-O4PVreGtOru9Pi4ZP6IcdO8zPTOkKTUIYAXR6ckf86uM3WJ0CCEMHOgGe6ynZVOyqfWczTiQB_KPuntIJGSCcXN9YMBejk5OpGPwWHOhfC-m0vZJSp_hZrBPDBhBoJfuwEnVevpud-IdeprmW9ZM5qa4zKtQnVfrgxDDQDDAfLtpcPqi5vxEIcly2pDNQvYahAYzL48O6bWbxzCwFYodsZ0D3GbWHMzoBoIEOZAGdQ_lr0v5vom0vj2qSbjObz1KPcMZUA3LmCZ35aPXcFilqDHUSDQ8BDrAZ1F0T0sE18b2qLwyd1XlJ4lv6zx1ulYTYXE

⚠️ Token RSA RS512 uniquement — algo eyJhbGciOiJSUzUxMiI

❌ Ne jamais utiliser le token personnel HS512 (eyJhbGciOiJIUzUxMiJ9) Ce token ne fonctionne pas pour le serveur d'automatisation.

  1. Enregistrer

Étape 2 — Vérifier l'environnement disponible

AdministrationProjetsPerfShop QA → section Environnements disponibles :

perfshop-test-runner    linux, robotframework    IDLE

Si l'entrée est absente : vérifier que perfshop-test-runner est démarré.


Créer un cas de test automatisé (CT-001)

Le projet PerfShop QA est créé par le seed. Il reste à créer les cas de test.

  1. Espace Cas de testNouveau cas de test
Champ Valeur
Nom CT-001 Smoke test API
Nature Automatisé
  1. Onglet Automatisation :
Champ Valeur
Technologie Robot Framework
Référence du script perfshop-tests/smoke-test.robot
Statut d'automatisation Automatisé
Éligibilité Éligible

⚠️ Format de la référence : nom_repo/fichier.robot — sans espaces autour du /

✅ Correct : perfshop-tests/smoke-test.robot
❌ Incorrect : perfshop-tests / smoke-test.robot


Lancer le test

  1. Espace CampagnesNouvelle campagne : Campagne smoke test
  2. Nouvelle itérationAjouter des cas de test → sélectionner CT-001
  3. Cliquer Exécuter automatiquement

Résultat attendu dans les logs orchestrateur :

CT-001 Smoke test - API PerfShop repond    | PASS |
1 test, 1 passed, 0 failed

Scripts disponibles dans perfshop-tests

Fichier Technologie Description
smoke-test.robot Robot Framework Vérifie que l'API /api/products répond (HTTP 200)
CT-002-prix-coherence.robot Robot Framework + Selenium Vérifie cohérence prix catalogue vs panier
test_prix_panier.py pytest Cohérence prix via API directe

Les scripts lisent leurs URLs depuis /etc/environment du container test-runner :

Variable Prod NAS Local (desktop/build)
PUBLIC_API_URL https://perfshop-api.perfshop.io http://perfshop-app:8080
PERFSHOP_FRONTEND_URL https://perfshop.perfshop.io http://perfshop-frontend

Architecture JWT — référence rapide

Squash TM ──token RSA RS512──► Orchestrateur
                               (vérifié via trusted_key.pub)

Orchestrateur ──JWT HS512────► Squash TM API
                               (signé avec squash.rest-api.jwt.secret)

SQUASH_REST_API_JWT_SECRET est absent du compose orchestrateur — comportement natif attendu.


Problèmes fréquents

Le token spécifié ne donne pas accès aux ressources demandées

Le token dans "Serveurs d'automatisation → Jeton" est le HS512 personnel (eyJhbGciOiJIUzUxMiJ9). → Remplacer par le token RSA RS512 (eyJhbGciOiJSUzUxMiI) documenté ci-dessus.

Invalid algorithm while verifying token

La trusted_key.pub n'est pas montée dans l'orchestrateur ou ne correspond pas à la clé privée. → Vérifier que squash-orchestrator/trusted_key.pub est présent dans le repo et monté dans le container.

File or directory does not exist

La référence du script contient des espaces : perfshop-tests / smoke-test.robot → Corriger en perfshop-tests/smoke-test.robot

Environnement absent ou non IDLE

Le container perfshop-test-runner n'est pas démarré ou la clé SSH a changé. → docker compose restart perfshop-orchestrator pour forcer le redécouverte de la clé SSH.

404 sur resultpublisher

Normal en Community Edition — non bloquant pour l'exécution des tests. Le statut PASS/FAIL est quand même publié dans Squash TM.