Intégrer les tests de montée en charge à la non-régression
Nous allons tenter de comprendre pourquoi intégrer des tests de charge aux phases de non-régression via cet article. Lorsque vous déployez une application ou un logiciel sur votre site web, il est plus que recommandé d’effectuer régulièrement un test de montée en charge pour anticiper la régression.
Qu’est-ce qu’un test de montée en charge ?
Le test de montée en charge consiste à évaluer la performance de votre site web lorsqu’il y a une affluence d’utilisateurs. Lors d’un test de montée en charge, la plateforme CloudNetCare envoie des automates sur les sites internet à tester afin d’effectuer un parcours défini au préalable.
Ces parcours peuvent être :
- Fixes: tous les automates jouent exactement le même parcours sur le site,
- Aléatoires: les automates jouent des parcours différents de façon aléatoire. Par exemple, l’automate va arriver sur une page contenant plusieurs articles et cliquera sur l’un d’eux de façon aléatoire
- Variabilisé: la variabilisation permettra de vérifier ou d’injecter pendant le parcours de l’automate une valeur en fonction d’une variable. Par exemple, il est possible de stocker le prix d’un article, le prix des frais de port et de vérifier que le total du panier correspond bien à la somme de ces deux valeurs.
Un autre exemple très parlant : sur un parcours de connexion, il faudra injecter des jeux de données de connexion. Ces données seront des variables à intégrer via un fichier. - Conditionnés: Certaines étapes peuvent être conditionnées pour ne pas être impactées par des services tiers indisponibles. Par exemple, lors d’une recherche d’adresse, si le service d’auto-complétion de l’adresse ne fonctionne pas, alors l’automate passera par la saisie manuelle complète de l’adresse.
Dans les campagnes de tir de montée en charge habituelles, un nombre d’automate maximal à envoyer est défini en fonction des objectifs fixés. Cela permet d’analyser les performances de vos outils face à un pic de sollicitation de la part des utilisateurs.
Quels sont les objectifs des campagnes de tests de montée en charge ?
Les campagnes de test de montée en charge peuvent avoir différents objectifs :
- Le premier objectif, le plus évident, est de vérifier que le site se comportera correctement en cas d’affluence massive d’utilisateurs. Pour cela, il faut estimer un pic de fréquentation du site et ajouter 20% pour estimer ce que le système doit pouvoir supporter comme nombre d’utilisateurs dans de bonnes conditions. Ici, l’infrastructure qui héberge le site sera alors optimisée pour permettre d’atteindre la cible de fréquentation souhaitée.
- Le second objectif, est de déterminer à partir de quel moment le site actuellement en place avec son infrastructure, ne permet plus aux utilisateurs d’avoir une navigation optimale. Le seuil d’utilisateur à partir duquel une page d’attente doit être mise en place peut alors être défini. Ce projet permet d’avoir de bons résultats sur votre activité, car vous pouvez anticiper les flux en mettant en place une solution de substitution.
- Dans le cas où les parcours contiennent des sélections aléatoires, les tests de charge permettront de vérifier que l’ensemble des pages choisies aléatoirement répondent correctement (exemple : structure des pages catégories, des pages articles, …)
- Il est aussi possible de s’assurer que les services tiers répondent bien aux sollicitations des utilisateurs (Exemple : Service de géolocalisation, paiement en ligne, appel API, …)
Pourquoi les intégrer à la non-régression ?
Intégrer à chaque phase de non-régression un ou plusieurs tests de charge permettra de s’assurer que le code de la nouvelle release n’entraine pas de régressions sur les temps de réponse en cas de forte affluence.
Ainsi, lorsque vous avez comme projet d’intégrer une nouvelle application web sur votre site, il faut évaluer son poids pour éviter tout risque de latence dans le chargement de vos pages. La gestion de ce risque implique des tests réguliers de montée en charge lors du lancement du logiciel.
De la même façon, les nouvelles fonctionnalités peuvent entrainer des régressions. Il est possible par exemple d’ajouter un graphique sur la page d’accueil d’un espace personnel, ce graphique sollicitant fortement la base de données pourrait générer des lenteurs en cas de forte affluence. Cette faiblesse du site ne pourra pas être repérée lors des tests effectués manuellement ou avec un faible nombre d’automate.
Le fait d’effectuer des tests de montées en charge peut permettre de vérifier qu’une fonctionnalité active uniquement en forte charge est bien présente : la page d’attente par exemple. Et que l’infrastructure répond toujours correctement.
Réaliser régulièrement des campagnes de test de charge ou de lancer un tir à l’identique à chaque non-régression permet d’évaluer la capacité de votre site web. En effet, vous obtenez des informations sur l’évolution des temps de réponse dans le temps et de pouvoir vérifier qu’il n’y a pas de baisse progressive de performance.
Les mises à jour des navigateurs supportant les tests de charge permettront de visualiser si une nouvelle version entraine des problèmes en cas de navigation. Utilisez des outils d’évaluation performants pour optimiser la capacité de votre système à tout moment.
Nous avons ici vu que les tests de charge peuvent parfaitement être inclus dans les phases de non-régression afin de s’assurer que la réponse du site en cas de forte affluence est toujours optimale après la mise en production de la nouvelle version de l’outil.
CloudNetCare
Pour que chaque clic soit une expérience réussie
On pilote vos tests, vous gardez le contrôle !
Grâce à notre expertise, vos applications et sites web restent fluides, sans bugs ni frictions, vous permettant de vous concentrer sur votre innovation et garantir ainsi une expérience utilisateur irréprochable.
Notre cabinet français d’experts en tests logiciels, automatise, gère et analyse vos tests quotidiennement pour détecter et corriger les dysfonctionnements avant qu’ils n’affectent vos utilisateurs.