Le test de charge est très important pour évaluer les performances du site Web, de l’application Web et de l’API pendant les pics de trafic normaux, lourds, voire soudains. Ce message aidera à comprendre les tests de charge à l’aide de conteneurs Docker avec des outils d’intégration continue (IC). L’approche Docker pour charger les applications de test permet de partager les tests entre les utilisateurs et de reproduire facilement l’environnement de test à l’aide de conteneurs Docker. Nous expliquerons brièvement ce qu’est Docker et utiliserons les conteneurs et outils Docker utilisés pour charger les applications de test via CI.

 

Quel est Docker?

docker! Vous avez peut-être entendu ce mot fascinant au sein de votre équipe ou lu dans des blogs technologiques et cela peut aussi sembler intimidant à première place. Docker est une plateforme de conteneurisation qui empaquete le code source de votre application et tous les packages de dépendance sous une forme appelée conteneur Docker. Il s’assure que l’application fonctionne dans n’importe quel environnement sans penser aux frais généraux du système d’exploitation ou des configurations du système. N’est-ce pas cool!

De plus, Docker est un outil populaire qui facilite la création, le déploiement et l’exécution d’applications à l’aide de conteneurs. Pour cette raison, notre application peut fonctionner n’importe où avec avoir le même comportement. Et l’important, Docker est open source.

 

Qu’est-ce qu’un conteneur Docker?

Un conteneur Docker est un logiciel léger, autonome et exécutable qui comprend tout ce dont une application a besoin : base de code, bibliothèques système, outils système et paramètres. Un conteneur enveloppe le code et ses dépendances ensemble, ce qui aide l’application à fonctionner rapidement et de manière fiable d’un environnement à l’autre.

 

Avec Docker, les développeurs peuvent se concentrer sur l’écriture de code sans se soucier du système sur lequel l’application s’exécute, ce qui rend l’application portable. La façon dont une application fonctionne sur votre machine locale serait aussi proche ou identique à la production.

 

Principales caractéristiques de Docker

  • Facilement évolutif. En raison des conteneurs légers, les contenants docker peuvent tourner vers le haut en quelques secondes et peuvent facilement l’échelle.
  • Augmente la productivité. Il facilite les frais généraux techniques pour le développement d’applications, la configuration de l’environnement. En outre, il aide à exécuter l’application dans un environnement isolé et réduit l’utilisation des ressources.
  • Isolement de l’application. Chaque application s’exécute indépendamment les unes des autres et exécute les applications isolément.
  • Réduction des coûts d’infrastructure et d’entretien. Il aide à soutenir les plates-formes existantes à être déplacé à Docker facilement, qui fonctionne d’une manière automatisée réduisant ainsi les coûts de maintenance.
  • Essaim. Swarm est un outil de clustering et de planification pour les conteneurs Docker. Il permet à l’utilisateur de gérer plusieurs conteneurs déployés sur plusieurs machines hôtes.
  • Maille de routage. Cela aide à acheminer et à équilibrer le trafic vers les conteneurs.

 

Avantages de Docker

  • Docker permet la portabilité de l’application.
  • Docker permet des cycles de libération de développement plus rapides.
  • Il brille avec l’architecture microservice.
  • Docker fournit un environnement d’isolement pour les applications.
  • Docker permet une mise à l’échelle horizontale plus rapide et facile des applications.
  • Il permet une utilisation efficace des ressources.

 

Docker à l’intérieur des outils CI

Le plus grand avantage avec Docker est que nous n’avons pas tendance à nous soucier des conflits de dépendance. Par exemple, si nous voulons construire un projet avec Golang 1.11 et un projet avec la version Golang 1.12, Docker peut aider à séparer cela et à créer des images pour les deux et même exécuter les deux en parallèle sur un conteneur différent sans conflit, ce qui ne serait pas possible sur un serveur. Les images cuites avec différentes versions peuvent être enregistrées dans le registre et peuvent être utilisées dans le cadre d’outils d’intégration continue tels que Jenkins.

Jenkins fournit un soutien dans ce cas, où il choisit les images Docker disponibles construites pour le test de performance ou de test d’intégration et au-dessus pour la cuisson des images Docker à partir de zéro est enregistré. Docker calque mise en cache permet d’économiser beaucoup de temps ici. Dans le cadre de notre pipeline CI, nous devons créer une image Docker pour un test de performance et cette image peut être exécuté à l’aide de CI pour effectuer un test de performance d’application. Nous pouvons même automatiser cette étape, à chaque ajout ou modification de fonctionnalité, nous pouvons exécuter un test de performance pour comparer et protéger l’impact sur les performances dû aux changements récents.

 

Limitations de l’utilisation de Docker pour les tests de performance

Bien que Docker a de nombreux avantages, il a quelques limitations tout en faisant le test de performance:

  • Lorsque nous exédions une simulation de test de charge lourde à l’aide de plusieurs conteneurs Docker sur la même machine, il peut consommer beaucoup de processeur du serveur en cours d’exécution, ce qui peut affecter nos résultats de test.
  • Rapport de test de performances via Docker manque de détails d’application suffisants.
  • Nous pourrions avoir besoin de peaufiner le système d’exploitation hôte et les conteneurs où les tests de performance sont en cours d’exécution.
  • Comme les contenants Docker sont jetables, cela peut entraîner la perte de rapport.

Pour nous épargner toutes ces limitations, nous pouvons utiliser une solution comme LoadView, qui peut être facilement intégrée à Jenkins, pour nous aider à automatiser le processus de test de performance .

 

Intégration du test de charge LoadView avec Jenkins

Chaque fois que nous testons une application, nous testons si elle fonctionne fonctionnellement comme prévu. Si cela fonctionne, nous nous adons que les fonctionnalités de l’application fonctionnent très bien. Mais dans le monde réel, la même application est utilisée par des centaines, voire des milliers d’utilisateurs, ce qui peut entraîner ses propres complications. Il est crucial de savoir que votre application peut résister aux demandes de trafic attendues, surtout si elle est essentielle pour générer des revenus.

Évidemment, toutes les applications ne sont pas liées à la génération de revenus, mais quoi qu’il en soit, l’expérience utilisateur est toujours un facteur énorme pour amener les visiteurs de la porte en ligne à la caisse en ligne. Si à tout moment au cours de ce processus leur expérience est lente, à la traîne, ou tout simplement déroutant, ils perdront l’intérêt immédiatement. Ils ne se soucient pas que la raison pour laquelle leur expérience est mauvaise est parce qu’il y a des milliers d’autres utilisateurs sur votre site ou application en même temps. Pour autant qu’ils le s’en ar pensent, ils pensent qu’ils sont les seuls à utiliser votre application. Difficile à croire, mais c’est vrai. Tout comme le monde réel, ils doivent parfois faire la ligne comme tout le monde. Assurez-vous juste que leur attente est transparente, agréable, et pas trop longtemps.

Nous devons valider si notre application peut gérer un tel trafic. Ainsi, à chaque changement ou développement de nouvelles fonctionnalités, nous pouvons exécuter des tests de charge ou de stress sur l’application via notre plugin LoadView qui peut être intégré à Jenkins.

Nous allons maintenant examiner les étapes nécessaires pour exécuter des tests de charge via l’intégration Jenkins avec LoadView :

  1. Avant de commencer à utiliser un scénario de test de charge LoadView pour tester votre build dans Jenkins, nous avons besoin d’avoir un scénario de test sur LoadView, où nous pouvons ajouter une liste d’API qui doivent être testées par le stress.
  2. Pour commencer l’intégration avec Jenkins, nous avons besoin d’un identifiant LoadView Unique à utiliser comme jeton LoadView Security.
  3. Dans LoadView, créez un UID d’intégration sous intégration de > compte Ajoutez une > > API Web de test de charge d’intégration. Copiez cette intégration UID.

UID d’intégration Docker

 

  1. Pour définir le test de résistance, nous aurions besoin de test scenario id. L’ID scénario peut être trouvé sur la page de configuration du scénario comme indiqué ci-dessous.

Scénario de test de charge Docker

 

Configuration loadview plugin dans Jenkins

  1. Connectez-vous à votre compte Jenkins.
  2. Dans Jenkins, allez à Credentials > Ajouter des informations > d’identification LoadView Security Token (UID). Configurer et valider les informations d’identification :
  • Type: Jetons de sécurité LoadView (UID).
  • Portée: Définie comme globale.
  • ID: Laissez la valeur par défaut ou spécifiez un ID unique.
  • Description: Entrez une description unique pour la distinguer des autres tests.
  • UID: Entrez l’UID à partir de votre compte LoadView. Une fois ajouté, sélectionnez Valider uid pour vous assurer que Jenkins est accessible à l’API LoadView.

3. Ensuite, sélectionnez un travail et cliquez sur Configurer

Docker Jenkins

 

  1. Aller pour construire des > actions post-build Ajouter > post-build action > LoadView-Run scénario de test de charge. Spécifiez les paramètres de test de stress LoadView pour la build :
  • Informations d’identification : Sélectionnezla clé API à l’aide de la description.
  • ID descénario : Coller l’ID de scénario de test que vous souhaitez utiliser dans la build. Copiez l’ID à partir de la page de scénario dans LoadView.
  • Seuil d’erreur: Ici, vous pouvez définir le seuil d’erreur acceptable pour votre scénario spécifique. Si le pourcentage passe au-dessus de ce seuil, il sera signalé comme un échec au sein de Jenkins.
  • Temps moyen :Spécifiez le délai de réponse moyen pendant le test. Comme le seuil d’erreur, si la limite est dépassée, elle sera enregistrée comme échouée dans Jenkins.
  1. Cliquez sur Enregistrer.

Voir les résultats des tests :

Lorsque le test est en cours d’exécution, l’état est affiché, en temps réel, dans la sortie de la consoleJenkins .

Sortie de la console Jenkins

 

Résultats de performance Jenkins

 

Résumé : Test de charge d’application Docker

Bien que Docker présente de nombreux avantages, il peut y avoir des limites lors de l’exécution de tests de charge avec une charge lourde, comme la consommation d’un grand nombre de processeurs sur le serveur, lors de l’utilisation de plusieurs conteneurs Docker sur la même machine, ce qui peut affecter considérablement les résultats des tests. Avec une solution comme LoadView, qui peut être facilement intégrée avec des outils CI comme Jenkins, nous sommes en mesure de créer et de gérer des tests de charge avec des milliers de connexions simultanées à partir d’un cloud entièrement géré.

Cet article était une brève introduction à l’utilisation de Docker et Jenkins pour exécuter des tests de charge basés sur le cloud. Configurez une démo avec l’un de nos ingénieurs de performance pour en savoir plus sur la configuration des scénarios de test et la configuration des tests de charge avec LoadView.

Essayez la plateforme LoadView dès aujourd’hui et obtenez jusqu’à 5 tests gratuits pour commencer.