Intégration du client API JMeter avec les pipelines CI/CD
Ce guide explique comment lancer un test JMeter LoadFocus enregistré depuis CircleCI, Azure DevOps, GitHub Actions, GitLab CI/CD ou Jenkins, afin qu'un test de performance puisse valider ou refuser votre déploiement.
Table des matières
- Approche générale
- Intégration CircleCI
- Intégration Azure DevOps
- Intégration GitHub Actions
- Intégration GitLab CI/CD
- Intégration Jenkins
- Bonnes pratiques
- Dépannage
Approche générale
Quelle que soit la plateforme CI/CD, il existe des étapes communes pour intégrer le client API JMeter de LoadFocus :
- Installer le client : Installez
@loadfocus/loadfocus-api-clientau début de votre workflow - Configurer les identifiants : Enregistrez votre clé API et votre ID d'équipe depuis les variables secrètes de votre plateforme
- Exécuter les tests : Lancez un test JMeter enregistré par son nom, avec des seuils
- Traiter les résultats : Lisez la sortie ou enregistrez-la avec
--format json - Prendre des décisions :
run-testse termine avec le code de sortie 1 quand un seuil n'est pas atteint ou que l'exécution échoue : l'étape du pipeline échoue donc d'elle-même
Les trois commandes, avec --name égal au nom exact d'un test enregistré dans LoadFocus :
npm install -g @loadfocus/loadfocus-api-clientloadfocus-api config set --apikey "$LOADFOCUS_API_KEY" --teamid "$LOADFOCUS_TEAM_ID"loadfocus-api jmeter run-test --name "My_JMeter_Test" --thresholds "avgresponse<=200,errors==0"
Bonnes pratiques
Lors de l'intégration du client API JMeter de LoadFocus avec votre pipeline CI/CD, tenez compte des bonnes pratiques suivantes :
Sécurité
- Ne codez jamais en dur votre clé API ou votre ID d'équipe dans la configuration de votre pipeline
- Utilisez le système de gestion des secrets de votre plateforme CI/CD
- Restreignez l'accès aux résultats de vos tests de performance au personnel autorisé
Configuration des tests de performance
- Utilisez des noms de test descriptifs incluant la branche/l'environnement testé
- Définissez des seuils appropriés en fonction des exigences de performance de votre application
- Envisagez d'exécuter différents profils de test pour différents environnements (par exemple, des tests plus légers pour le développement, des tests complets pour la pré-production)
Intégration au pipeline
- Exécutez les tests de performance après que les tests fonctionnels aient réussi
- Envisagez d'exécuter les tests de performance en parallèle avec d'autres tâches non bloquantes
- Configurez des notifications pour les échecs de tests de performance
Analyse des résultats
- Stockez les résultats des tests de performance en tant qu'artefacts pour une comparaison historique
- Envisagez de mettre en place une analyse de tendances pour détecter la dégradation des performances au fil du temps
- Documentez les métriques de performance de référence pour la comparaison
Dépannage
Problèmes courants
L'exécution du test échoue
- Vérifiez que votre clé API et votre ID d'équipe sont correctement configurés
- Vérifiez si vous avez atteint la limite de tests simultanés de votre compte
- Vérifiez que le nom du test existe dans votre compte LoadFocus
Les seuils ne fonctionnent pas comme prévu
- Assurez-vous que la syntaxe des seuils est correcte : une liste séparée par des virgules de métrique, opérateur et nombre, par exemple
avgresponse<=200,errors==0. Les métriques sontavgresponse,errors,p95,p99,min,maxethitspersec(temps de réponse en millisecondes). Les opérateurs sont<,<=,>,>=,==(ou=) et!= - Dans la version 1.1.7, un seuil illisible est ignoré avec un avertissement, et si aucun n'est lisible, la valeur par défaut
avgresponse<=100est utilisée. Vérifiez les premières lignes de la sortie à la recherche de "Invalid threshold" - Vérifiez que les métriques que vous évaluez sont pertinentes pour votre test
- Vérifiez que le test génère suffisamment de charge pour produire des résultats significatifs
Le pipeline dépasse le délai d'attente
- Ajustez les paramètres de délai dans votre configuration CI/CD
- Utilisez
--wait-timeout <seconds>pour fixer combien de temps le client attend la fin du test (1800 par défaut). Quand le délai est écoulé, la commande échoue avec le code de sortie 1, mais le test continue de s'exécuter dans LoadFocus --poll-interval <seconds>fixe la fréquence de vérification du statut (10 par défaut)
Pour les détails d'intégration spécifiques à chaque plateforme, consultez les guides dédiés pour CircleCI, Azure DevOps, GitHub Actions, Jenkins et GitLab CI/CD.