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— aucundocker buildn'est possible. Ledocker-compose.yml(prod) utilise des images pré-buildées : - Images applicatives : depuis le registry GitLab - Imageperfshop-test-runner: buildée sur Windows et chargée viadocker 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 :
| 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(branchemain) - ✅ Serveur d'automatisation PerfShop Orchestrator avec le bon token RSA RS512
- ✅ Workflow
Squash simple, technologieRobot Framework, tagslinux/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.
- Administration → Serveurs d'automatisation → PerfShop Orchestrator
- 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.
- Enregistrer
Étape 2 — Vérifier l'environnement disponible¶
Administration → Projets → PerfShop QA → section Environnements disponibles :
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.
- Espace Cas de test → Nouveau cas de test
| Champ | Valeur |
|---|---|
| Nom | CT-001 Smoke test API |
| Nature | Automatisé |
- 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¶
- Espace Campagnes → Nouvelle campagne :
Campagne smoke test - Nouvelle itération → Ajouter des cas de test → sélectionner
CT-001 - Cliquer Exécuter automatiquement
Résultat attendu dans les logs orchestrateur :
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.