Qu’est-ce que Test de charge Azure ?

Test de charge Azure est un service complètement managé qui permet de générer une charge à grande échelle. Il simule un trafic pour vos applications, quel que soit l’endroit où elles sont hébergées. Les développeurs, testeurs et ingénieurs d’assurance qualité peuvent l’utiliser pour optimiser les performances, la scalabilité ou la capacité d’une application.

Créez rapidement un test de charge pour votre application web à l’aide d’une URL, sans connaissance préalable des outils de test. Test de charge Azure réduit la complexité et l’infrastructure pour exécuter votre test de charge à grande échelle.

Pour des scénarios de test de charge plus avancés, vous pouvez créer un test de charge en chargeant un script de test. Test de charge Azure prend en charge l’exécution de tests basés sur Apache JMeter ou de tests basés sur Locust. Par exemple, votre plan de test peut se composer de plusieurs requêtes d’application, vous souhaitez appeler des points de terminaison non-HTTP, ou vous utilisez des données et paramètres d’entrée pour rendre le test plus dynamique.

Si votre application est hébergée sur Azure, le service Test de charge Azure collecte des métriques de ressources détaillées pour vous aider à identifier des goulots d’étranglement des performances dans vos composants d’application Azure.

Pour capturer de manière anticipée des régressions des performances des applications, ajoutez votre test de charge dans votre workflow d’intégration continue et de livraison continue (CI/CD). Tirez parti des critères d’échec du test pour définir et valider les exigences de qualité de votre application.

Le Test de charge Azure vous permet de tester les points de terminaison d’application privés ou les applications que vous hébergez localement. Pour en savoir plus, consultez les scénarios de déploiement du Test de charge Azure dans un réseau virtuel.

Le diagramme suivant montre une vue d’ensemble de l’architecture du service Test de charge Azure.

Diagramme montrant l’architecture du Test de charge Azure.

Notes

Cette image de présentation montre comment le service Test de charge Azure utilise Azure Monitor pour capturer les métriques des composants d’application. En savoir plus sur les types de ressources Azure pris en charge.

En savoir plus sur les concepts clés du Test de charge Azure.

Scénarios d’usage

Test de charge Azure utilise des infrastructures de test Apache JMeter ou Locust et prend en charge un large éventail de types d’applications et de protocoles de communication. La liste suivante fournit des exemples de types d’application ou de point de terminaison pris en charge :

  • Applications web utilisant HTTP ou HTTPS
  • API REST
  • Bases de données via JDBC
  • Points de terminaison TCP

Pour JMeter, vous pouvez utiliser des plug-ins JMeter dans votre script de test, vous pouvez tester davantage de types d’applications.

Grâce à l’expérience de test rapide, vous pouvez tester un point de terminaison HTTP basé sur une URL unique. En chargeant un script JMeter, vous pouvez utiliser tous les protocoles de communication pris en charge par JMeter.

Test de charge Azure ne prend actuellement pas en charge les infrastructures de test autres qu’Apache JMeter et Locust.

Identifier les goulots d’étranglement des performances à l’aide de tests de charge à grande échelle

Les problèmes de performances passent souvent inaperçus jusqu’à ce qu’une application soit en charge. Vous pouvez démarrer un test de charge à grande échelle dans le portail Azure pour savoir plus rapidement comment votre application se comporte en cas de surcharge. Pendant l’exécution du test, le tableau de bord du service Test de charge Azure actualise de manière dynamique les métriques côté client et côté serveur.

Une fois le test de charge terminé, vous pouvez utiliser le tableau de bord pour analyser les résultats du test et identifier les goulots d’étranglement des performances. Pour les applications hébergées dans Azure, le tableau de bord affiche des métriques de ressources détaillées des composants de l’application Azure. Démarrage avec un didacticiel pour identifier les goulots d’étranglement des performances pour les applications hébergées par Azure.

Le service Test de charge Azure conserve un historique des séries de tests et vous permet de comparer ceux-ci visuellement afin de détecter des régressions de performances au fil du temps.

Vous pouvez également télécharger les résultats du test à des fins d’analyse dans un outil tiers.

Activer le test de charge automatisé

Vous pouvez intégrer le service Test de charge Azure dans votre pipeline CI/CD à des stades significatifs du cycle de vie de développement. Par exemple, vous pouvez exécuter automatiquement un test de charge à la fin de chaque sprint, ou dans un environnement intermédiaire pour valider une build Release Candidate.

Commencez à ajouter des tests de charge à votre workflow CI/CD pour identifier rapidement la dégradation des performances de votre application sous charge.

Dans la configuration des tests, spécifiez des critères d’échec de test pour intercepter les régressions de performances ou de stabilité de l’application au début du cycle de développement. Par exemple, recevez une alerte quand le temps de réponse moyen ou le nombre d’erreurs dépasse un seuil spécifique.

Le service Test de charge Azure arrête automatiquement un test de charge automatisé en réponse à des conditions d’erreur spécifiques. Vous pouvez aussi utiliser l’écouteur d’arrêt automatique dans votre script Apache JMeter. L'arrêt automatique vous évite des échecs de tests occasionnant des coûts supplémentaires, par exemple, à cause d'une URL de point de terminaison mal configurée. Découvrez comment vous pouvez configurer l’arrêt automatique pour votre test de charge.

Vous pouvez déclencher le service Test de charge Azure à partir de workflows Azure Pipelines ou GitHub Actions, ou utiliser l’interface Azure CLI pour l’intégration à d’autres outils CI.

Comment fonctionne le service Test de charge Azure ?

Test de charge Azure utilise Apache JMeter ou Locust pour exécuter des tests de charge. Vous pouvez utiliser des plug-ins Apache JMeter à partir de https://jmeter-plugins.orgou charger votre propre code de plug-in. Test de charge Azure prend en charge tous les protocoles de communication pris en charge par JMeter. Par exemple, utilisez Test de charge Azure pour tester la charge d’une connexion de base de données ou d’une file d’attente de messages. En savoir plus sur la fonctionnalité Apache JMeter prise en charge.

Les moteurs de test du service Test de charge Azure isolent l’infrastructure requise pour l’exécution d’un test de charge à grande échelle. Chaque instance de moteur de test exécute votre script de test pour simuler simultanément un grand nombre d’utilisateurs virtuels accédant aux points de terminaison de votre application. Lorsque vous créez un test de charge basé sur une URL (test rapide), le service Test de charge Azure génère automatiquement un script de test pour vous. Pour test de charge du test de charge, vous pouvez configurer le nombre de moteurs de test.

Vous pouvez héberger l’application en cours de chargement n’importe où : dans Azure, localement ou dans d’autres clouds. Pour exécuter un test de charge pour des services qui n’ont aucun point de terminaison public, déployez Test de charge Azure dans un réseau virtuel.

Pendant le test de charge, le service Test de charge Azure collecte les métriques de ressources suivantes et les affiche dans un tableau de bord :

  • Les métriques côté client fournissent des détails signalés par le moteur de test. Ces détails incluent le nombre d’utilisateurs virtuels, le temps de réponse aux requêtes ou le nombre de requêtes par seconde.

  • Les métriques côté serveur fournissent des informations sur les composants de votre application Azure. Le service Test de charge Azure s’intègre avec Azure Monitor, y compris Application Insights et Container insights, pour capturer les détails des services Azure. Selon le type de service, différentes métriques sont disponibles. Par exemple, il peut y avoir des métriques pour le nombre de lectures de base de données, le type de réponses HTTP ou la consommation de ressources de conteneur.

Le service Test de charge Azure intègre automatiquement les meilleures pratiques pour la mise en réseau Azure afin de garantir que vos tests s’exécutent de manière sécurisée et fiable. Les tests de charge sont automatiquement arrêtés si les points de terminaison de l’application ou des composants Azure commencent à limiter les requêtes.

Le service chiffre automatiquement toutes les données stockées dans votre ressource de test de charge avec des clés gérées par Microsoft (clés gérées par le service). Par exemple, ces données incluent votre script de test Apache JMeter ou Locust, des fichiers de configuration et bien plus encore. Vous pouvez également configurer le service pour utiliser des clés gérées par le client.

Résidence des données dans la région

Test de charge Azure ne stocke ni ne traite les données client en dehors de la région dans laquelle vous déployez l’instance de service.

Commencez à utiliser le service Test de charge Azure :