SCOP d'ingénieurs experts du logiciel libre depuis 2004
+33 1 70 61 60 16

Écrire des scénarios de test de charge performants : le guide étape par étape

Découvrez les étapes clés pour définir vos objectifs, analyser votre audience et élaborer des tests pertinents pour garantir la performance de votre site.
Exemple de scénario de test de charge

Notre prochain webinar

Vous devez réaliser un test de charge en vue de la mise en prod d’une nouvelle feature ou avant un passage télé et votre expert vous demande de concevoir des scénarios.

Vous êtes alors partagé entre l’incertitude, comment rédiger des tests pertinents et adaptés et l’irritation, vous n’aviez pas forcément prévu le temps nécessaire à rédiger ces scénarios. 

Sans parler d'un violent syndrome de la page blanche: vous ne savez pas par où commencer.

Cet article vise à vous offrir les outils nécessaires pour aborder la rédaction de ces scénarios dans les meilleures conditions, et arriver à un résultat satisfaisant.

Rappel : fondamentaux des tests de charge

Qu’est-ce qu’un test de charge ?

Un test de charge consiste à simuler sur une durée définie le trafic entrant sur votre site web. Si l’audience est fictive (une série de bots qui n’apprécieront pas vos contenus à leur juste valeur), l’activité de votre infrastructure sera elle bien réelle et aura un impact significatif sur la disponibilité de vos services.

Événements déclencheurs,  :

  • Déploiement d’une fonctionnalité majeure
  • Passage médiatique (TV, campagne publicitaire)
  • Modification de l’infrastructure
  • Préparation à l’arrivée de nouveaux utilisateurs

Il est aussi recommandé de réaliser ces tests régulièrement pour s’assurer le bon fonctionnement de votre applicatif tout au long de son cycle de vie.

Souvenez-vous que vous n’êtes pas toujours à l’origine d’un pic d’utilisateurs, ni à l’abri d’une régression de code : les imprévus arrivent forcément au mauvais moment.

Dans cet article nous n’essaierons pas de vous convaincre de l’importance des tests de charge.

Si vous êtes là c’est que vous savez qu’il s’agit d’une démarche importante, et que son ROI est significatif. Il vous permet par exemple de tirer profit du coût élevé d’une campagne de pub.

Et si vous cherchez un prestataire pour vous accompagner contactez-nous

Pourquoi les scénarios de test sont importants

La rédaction des scénarios est sans doute la phase la plus critique d’un test de charge et il est souvent de votre responsabilité, en tant que responsable projet, de vous assurer qu’il est correctement réalisé.

Il est important d’abord parce que c’est lui, en premier lieu, qui assurera la pertinence du test.

Vous pouvez engager l’expert en test de charge le plus compétent du monde, il ne pourra vous aider que sur la base des éléments que vous lui avez fourni.

Par exemples, si vous omettez :

  • de lister une page qui fait appel à un service essentiel (RabbitMQ, Elasticsearch, etc.)
  • de lister les soumissions de formulaire
  • de mentionner des tâches planifiées (CRON) qui pourraient impacter les performances, mais qui pourrait ne pas se produire durant le test
  • de mentionner que vos utilisateurs vont s’authentifier

Les tests réalisés ne seront pas conformes à vos objectifs et à la réalité de de votre produit.

Il est donc essentiel de prendre le temps de préparer des scénarios adéquats.

Ecrire vos scénarios

Étape 1 : Définissez vos objectifs

Il est essentiel en premier lieu de connaître vos objectifs.

Ceux-ci varient d’un projet à l’autre, et il est primordial de les définir clairement.

Vos objectifs vous permettront de choisir le type de test le mieux adapté.

  • pic de charge anormalement élevée suite à de la publicité
  • charge habituelle sur de longues périodes
  • charge habituelle après le déploiement d’une nouvelle fonctionnalité ou d’un changement de l’infrastructure
  • charge croissante du nombre d’utilisateurs pour connaître les limites

Un exemple d’objectif correctement formulé : “Je souhaite soutenir un pic de 10000 utilisateurs connectés sur mon site pendant 30 mins”.

Cet objectif sera contextualisé en fonction du comportement attendu de votre audience.

Sur cette base, l’opérateur du test de charge pourra vous aider à concevoir des scénarios adaptés.

Étape 2 : Étudiez votre audience

Comment agissent vos utilisateurs ? Se rendent-ils sur la page d’accueil puis sur la page /contact ? Visitent-ils 2, 5, 10 produits avant de cliquer sur le bouton ‘mon panier’ ?

Vous êtes les mieux à même de rédiger des scénarios pertinents puisque vous êtes les experts de votre audience.

Bien sûr, vos équipes et outils marketing sont les mieux placés pour vous aider dans cette tâche. En principe vous utilisez des outils d’analyse d’audience comme Matomo ou Plausible (ou google analytics pour les plus téméraires).

Dans le cas d’une campagne sur de services ou fonctionnalités à venir, vos outils d’analyse d’audience ne seront pas très bavards. Il est donc préférable de vous appuyer sur vos études marketing.

Sur cette base, vous pouvez définir le parcours type d’un utilisateur :

  • arrivée sur la page d’accueil
  • visite de quelques pages en lien sur la page d’accueil
  • l’utilisateur s’authentifie-t-il ?
  • visites de pages aléatoire, par exemple des pages produits dans un catalogue
  • actions spécifiques à un utilisateur connecté : messages, ajout au panier, commande, lecture d’articles …

Toutes ces actions doivent être traduites en terme d’url, de paramètre et le cas échéant d’entête de requêtes de type POST et de payload.

Étape 3 : Pensez aux détails techniques : paramètre d’url et cookies

Tous les tests de charges ne sont pas de simples connexions (par milliers ou millions) vers une infrastructure. Parfois, des comportements plus complexes doivent être testés.

Nous vous listons quelques exemples rencontrés lors de nos missions de test charges, de scénarios plus ou moins complexes qu’il faut identifier.

Authentification

Si l’on doit tester l’authentification, quels profils peut-on utiliser ?

Pensez bien à fournir la liste des utilisateurs et mots de passe concernés.

Si l’opérateur ajoute des données en production lors du test (création de panier par exemple), bien réfléchir à comment les supprimer par la suite.

Si le parcours utilisateur repose sur l’utilisation de cookie pensez à bien le documenter. Si vous stocker des informations qui devront être réutilisées dans tous les appels il est préférable de nous le dire à l’avance.

Randomization du test

Afin que le système de cache ne produise pas de résultats biaisés, il est souvent préférable de tester des URLs aux paramètres “aléatoires”… ou presque. Par exemple sélectionner des produits différents dans un catalogue.

Vous devez alors documenter où est le paramètre d’url et les valeurs acceptées (/api/product/386, /api/product/id/386, /api/product/id/detail/386)
N’hésitez pas à définir une liste exhaustive des valeurs à utiliser dans laquelle nous pourrons piocher.

Bien identifier les variables et leur relations

Si vous transmettez des urls avec des variables (notamment dans le cas d’une randomization) penser à bien identifier ces variables dans votre document.

Si un appel utilise plusieurs variables, sont-elles indépendantes ? Si non, bien définir les liens possibles. Par exemple, “/api/group/12/product/42” : le produit “42” est-il spécifique au groupe “12” ?

Étape 4 : Affinez la distribution des utilisateurs sur chaque étape du parcours

La liste des url transmises constitue le parcours utilisateurs.

Vous devez maintenant définir les proportions pour chaque étape de ce parcours.

Exemple de scénario de test de charge

Comme toujours, les proportions sont connue de votre équipe marketing ou peuvent être déduites des logs grâce à vos outils d’analyse d’audience.

Étape 5 : Formalisez vos scénarios

Vérifiez en amont avec l’opérateur du test s’il préfère un certain formalisme pour la description de votre scénario.

Notre conseil : bien mettre en avant les paramètres variables dans les appels. Il doit être simple de reconnaitre les paramètres qui changent et ceux qui sont fixes.

Communiquez les données les plus complètes et utilisables possibles vous devez également formaliser les valeurs des paramètres qui seront utilisées lors du test de façon claire.

Par exemple fournissez des fichiers de type CSV complets et documentés listant toutes les urls et le pourcentage d’utilisateurs y accèdant, les paramètres (statiques ou variables), les entêtes et le PAYLOAD pour les requêtes de type POST.

Si vous comptez laissez votre expert retrouver des informations en base de données, transmettez lui bien le modèle de la base.

N’ayez pas peur du résultat

Rédiger des scénarios de test de charge peut être intimidant, mais c’est une étape obligée pour garantir des audits de performance pertinents. En suivant les conseils de cet article, vous savez maintenant comment commencer la rédaction de vos scénarios et aligner ces derniers avec vos objectifs.

Vous avez acquis une meilleure compréhension des tests de charge, ce qui vous fera gagner un temps précieux.

N’ayez pas peur des résultats : ils vous permettront d’identifier les points à améliorer pour offrir une expérience optimale à vos utilisateurs.

Contactez-nous pour profiter de notre savoir faire en matière de test de charge et d’audit de performance.


L'équipe Bearstech

Inscrivez-vous à notre newsletter

Mieux comprendre le monde du DevOps et de l'administration système.

Abonnez-vous à notre newsletter

Hébergement & Infogérance

  • ✓ Service Astreinte 24h/7j/365
  • ✓ Supervision, monitoring & Alertes
  • ✓ Mises à jour en continu
  • ✓ Certificat SSL letsencrypt
  • ✓ Hébergement dédié sécurisé en France
  • ✓ Backup vers datacenter distant
Découvrir notre offre

Expertise Technologique

Notre équipe possède une vaste expertise technologique.